From 20d6f4b854960537bbd3ba92c6ff95530aa143fa Mon Sep 17 00:00:00 2001 From: lana-k Date: Thu, 5 Aug 2021 16:39:32 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20build=20from=20@=20lana-k/sqli?= =?UTF-8?q?teviz@848112979b9925f8451ebcef7589aa4d5609f5fb=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist.zip | Bin 3281274 -> 3284124 bytes index.html | 2 +- js/_worker.5e0dd41a.worker.js | 19 ++++++++++++++++++ js/_worker.5e0dd41a.worker.js.map | 1 + js/_worker.c13cc3a9.worker.js | 19 ------------------ js/_worker.c13cc3a9.worker.js.map | 1 - js/{app.023944c6.js => app.e4131c1b.js} | 4 ++-- ...pp.023944c6.js.map => app.e4131c1b.js.map} | 2 +- js/sql-wasm.wasm | Bin 1330242 -> 1323053 bytes service-worker.js | 2 +- service-worker.js.map | 2 +- 11 files changed, 26 insertions(+), 26 deletions(-) create mode 100644 js/_worker.5e0dd41a.worker.js create mode 100644 js/_worker.5e0dd41a.worker.js.map delete mode 100644 js/_worker.c13cc3a9.worker.js delete mode 100644 js/_worker.c13cc3a9.worker.js.map rename js/{app.023944c6.js => app.e4131c1b.js} (99%) rename js/{app.023944c6.js.map => app.e4131c1b.js.map} (99%) diff --git a/dist.zip b/dist.zip index a9f980de8ef90fbd7f436441f059b561dc5c6087..213e1e80ea6e2ec93498f93d0be8e1c51eee8598 100644 GIT binary patch delta 843481 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%0DeOX?`TznJtUZ#7~O0ZBUNV#b=MNj5a9aA?; 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

&%sOWs)a>8R?kbNFE! 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

  • Fdd@GYei&NE^kCjJ7D~p7i$t_u=0tZWzVZV0c&7X z{h09Kyr$P>U*IHe*FG@>D0Gk|m!i$6+2O=941dkTKU+<7pmy4W740plVGca9Q+LAL zLi+EK{+oU5>3`r_J4<_k4wlt@Z&SX1G60;sER?W>ZNkn5W0o+I2JS@l@I4WMN26=p zl==rxR3HDoXpFjP(HNf|`Do}{42pTvGHHUT-rGYy=QdQI#MwJANlZRI(ktTY_*>V$ zIYP7$dkLgcWR@|4w8#la>^!qUyH>lyJ6Dh@*H=Tmq+8LJ>zORUCHD*Y=>^rjeWYf~ zje!cftp@mss^6bhTv6?ecK#xIV&whlKKh>(t|-PMhdY11CxZ?|L_BO2OScsccA0HO z0lQ34J@PqeSNjixYL-IW#X1LnIM+B=QG2c;0wuQRDzdqvaCIS%v8say*Wd^NBcvJK zR(&#HRo8&I+l&;s8z!*oOK)*1?nXkF_~P{EE%ox3-pA5Aup7%ZS(0Z}cb~pn=KT)F zw-;1qKK`a?Y{gWzsV^reF09`BUd*4UbT<=lG|-K-UWA%ei++tlxj^23dh@Bnc&kUC=;L{ zO5i6rhV0u9Dm!-BJKEcE|JVvY;2?e9x4-crIqcL9?LmJZu@gY;SW(+76g6g{$m>T@ zgNG2c%|emakD|xHLvU?>{m7jQ9s;MW%NhSXQ8%_uo;{}0w7aH=!g>5zW z!X~r$LO;_NYGyHJ`oeZr@r8b-FVw8!iJ5*v6Qcb;K?Q-6enJR;{xy9hbcNX)W0@q? zq`JG{7-kM}xBA?#JB8T%uYZ~lW3#&F)1bF%d-c)R34P{IueRI1of~yjakMblunM%` z2w#Hzpq>Yd@WGSM)t!)+Nz7>+aJLB$m(3>IU?xF8QhansAK+Z+s?Yu2Bd>~%ihSUz zx4!XxpAC;L@~p~#4=(V;3rf*=u!9H?UZ1p~voMJ(v|&&)=MIAOMbUyyyHa}a=CzPAjOcRg2M zZo`YB;sgyUPT)~-0`u&0xf{=JK!r6RLnPzRgaBWegz36FB@_gm)}jxADEyB;Pyu0nYG!(+a--AhMd72+NYu(3!2Ic^GR7ule#Z)w|xlTMs$<(i#LN= zPRKkw#m2EnB^1d=iCmGOCkf2l3_GeQv-DT`r;6mkmB-v&Cs+2}31lvi^|+KVB)BJ) zCT)Mi2)SVE&l?5=6XbsZOQ-NZ(Y6VU*Ix;W{+;rFA-gKV!5U)y*GCDsyB1QHJ9iHs zmjw!8N|O2IZyQp+7&2`$HP+F|;0Smn9jvz9UgA5<_AQJ?;iSmN^mfR4vi3jtn-1?* zOLRa!&s;}YKvcnip`=0=IDxDF?Fqf*v%FBWf(+20h$8~im!12zYH&r0+OuWE}Fbup|_K}f|Muj z8|7a?4hIP0K*=oq)iUuz{o-T6U9IcpB;hEc71oE>hx)b z(S_=bo9tH^;(2m-YWJvk3Sa0+j}9wypC_*g^4qZ?Uvpae)&-kqdq*fF?oR%@p5gNR zHphLh4*EJJ`$hOl(1X0y135Cux2AQh%{0mEFdHYR*7H53Lts;YQzC@K1ln}@F@7U| zZ=NZ)2T#Vm`J74!Zcot9e>c)!@@J1i@TZaRK$YY|jIYq~$?wlY2j%MQuexD)Dp|+) zo$TWIHPxqd$=QXjMym$-?}yVoGP|Q-qT+;+TVNE{abX-sNh&c3C2qC7UiQ zS(1J^2(ILg{&$}Vs2ayIWHgnluZnUE7L`04!<`*R&NDy%STt?2c4*5aQ__CC$P1-) zya=TS(WV}NzaU0MA6UftKpaG5eE`If5X$u=>CyjGU~MZ(SgNix23*f zxPJrf5I0P2ieXW8<3!6NB=V$jR%$12;%UbTCJaEJq$XV+srI|&M1*IXh>v0-zRXGd zyE9Ir8<*Y3naPgMWba&NQmb`;_z3`OK$O4TFq1t$leT&`pI_F9u0G?EbekpVKJg_v zYbXAm)5=4G8;f+Fy*_q{iS5ZQimOn79hB&>tx1LF>%t1#0wyP$eD_0Hs6X+^cj14fbY+D+Db4@~kjex#XUc`CFVy>6#rG->mPEffwC4f208U zU2@A^TaP1Xk0UszaqzquaDqe1ovt8sv-I#rvKYl>-bd+O#L$q2D`9dfB3djkFWyJf zHB}$*`>6F})j3g}ek@okqT|{w^zA}XY+CK6P88|!>M?EWud-_*y#^=9IRDBK^#;(8 zFMYAE;BxOCXO3VOuQ$v{h8M$~%3^(x4p%Gxdv(wEdcJTG+j zUI++p|Je^*1M;&f1qgfqJ}j)rUENDBcUlx-P^zMY_w(i~khcs=5y|>O+2>ROWfU(W zF~}tu>u^%`r;f@>(?y)U%+AmZjf92s%(TqZi z$qXXlgZ%rW>Vx(zq*Q!uOQ27NVftso1vGtmlx3e9xbC_oXe55JcBz`$)eR-ut@5T2 z)lhOC?og(3m<@2l_rIE0|Kt2P+U$k(LB(tuyOcVu_K8(_*ykpv&*9R2YE-&iQAe#8@9~*_ zmq6eS)m=y*by)WzWiL|gMXJ3>SKbp4mYmxFQS8vToy@F8-*0-*j8$g1L^W`I$c9IR zaBg87GoT-S>cN0;Wsqm}JkQDeB2?|ZzY{H|()h}?~bD4KJe{n)|L_`vIRK2cp zAz>*)N*TN9jXbo9;_Ly7f<_1A?p>R${g`24v0x7EFMiRzo$5(QT2 z9P@CHI#^e&9XA%ef0g|!S6a1`_Xj8sRYr^X)07`;^}SHb?y=wd^wYAw%_Z z4MZFZVPL*Sn7X3G(tvYgseP(W-+TIQ$G;)5h6wJe)gVrVL5VpmWoQCF5yGBpgdQHktTZTp-Gq@;CHfWe}oGj41C!`Kk(mt??3v$ zpRwh@&9oS-?1w`IYMu5e(mqAnr%3x0X`dqPQ>1;0s_)fugKuWLcwmIjEKD!6-lXL8z;=`G;n~hP-{iYMULbacq@AAvAB_IDeH><{6fH6`p7OLRQM>z1UW|rK- zX+ z1m=zGfAyET+$7&^yR3d1k^`nKHfD;}v{9}{cvlM^Dd<43I2vL$hDi8OBk!Q>8z#F3 zK6h>2yVX96t58bn)|ETD?aCcat9GO+EA<(9p?Fk0rc0&?YNS!Zhw)?q`ixmgc3XZl zx7Tn_P*m$Lg~hU@ZCr#r6}}k&A5^=?W^&(+e~RKoHpZ64*O0Zdv3XUIkE?+;pqran zHike>eM%fGBiSF1W;D*}b|enhqy8{fDk^5`VfWg@)-?2J=9=+tsG!{s@ww$W*Q$t$4V=({O<2S3|P ze>FHRgIL#G`ADJk5odAC0RMZM@3Ys$E+2mcgycR_P4YL=vwD2QKM_f8B1_ zN#n2+M!ih6hHYkOo)D3Bq#>-BA@aLvr7>ST9Bz;yLoYC3x_e>y8ufr-HH^|91#sWIBu0MCUs(^p|(N)O6=SuBjX z&W7VM;3{pgUOlW=c=q+;l#y*NmEkdEuZ3(H((5V@WuyWjY(kfwd{llLLthFRhz1O= z!FV)%mX)7ArR>&oX?Llv%2a^=3ETQhfBte4rbJ>R?Axwic z7lZsyLv^e_x!d^f0s}ERD<7KBt^5}IyNUhVzUia5Y47}aLvP~Vj|P6SKoJT=P+yBo z;x03ZDN!{WH#pPA&2&fge+~~jt>&FAn)kTRI}|RKiox|mIHF?RG(GH?G;6I5@;5VG zo354T4*e2ETkKpeQ3K%-Y=H3S)w9`VFjt`XR%?Z};xFDz(ox3JSH^M$ClLqX#dnm! zDqTl?**40=`ZV3u@-RxsH5K&pD;6-Jf5z7N#VDxvK|1jO z2v4wTsLXt(x$Zo%eZZ&+F4U%zr#aQma`MDF4F<;_D|3r=(&LF^EdW~Ab18UI*NCwg zs%!LYnoQT|k=S2cCi)DnQKn5|uWNMa_|8<<$W+&`_BwBIqiaxCo&2#NL~W+JMhHFF z>l*)uoWV(JZzg9ve}j`P&fxbT2X0FDNc?zvWQtU~@*Y?WuhOavLlgqpL}u|B$PcxA zsv&0|idML}KU0uBAE!IEmsI<%Et^wTCt}krf0vZ0_lzEIh}i@i_}x056?jM#;1kQl z)d}Yy!;Nf-nNPZB0J9j1E>=09Bu%TqHu9>Q)))&+D&K0)f62W^aFwaJ?J!+@AJW)n8r8NOwW)G3cole9>0NzFnw$Ao6=)hKkwQ`O-P4qmink znX03GRYzMgf7cd6&L($$Z$c!<+Rw`PtV}6Q0Xeix8ESJiJN|Y>Y7bgw0vy{pkL^TH z^gbA0Zpm80Jb>Slqd1W1ajpLKTmAcOBnf4${`K4a>nkXO_OGv#(AWO;<byH7D(`u|7=)FU|_ealo zZ*uEtIa@AiVN`Ftxt1tV)8;^4rnSBaJD!}0TYJox!33qoc65y*ng@ISGH)L2*6=Mj z5;wuOOxJQ-`W8XHl!4>z~3Ugf+^NW?apgV1FdAPY4~%GicO zwRv>ae`U9c$6iyo^Odxmve;{Q|844d{HuTO!d>g>DJ#YafDE(21zM$!KzhfD9R3&D z%PTYf1=Vw|UmQ(k3RiicaWf+s`yDi4<*fM*%k-!JFhBx7x_SXpz-0{|`}=53R`h~B z!HreEwpfm;Vy&E6EX(Rc!R@mCUr5H)%hrTbf4nakKbSvF_S*#-gHF6t9D)~EyypcX zXDrL%C6B*=5ue#jtbcrgkND(Ujre5ohF=VEGGD-m&+G=@_MxW1LpV4aM|O6;j_j2R>C0E>%VAa^MLp5#5t&&=&<5lDve8qatri*2H~>9luzr^p zE6zhk|3wvD<94g>d719z17rQ3saP4z=3l1;PCpZ|Jn5fleY8wN*xXg&3-o7{H_ZTZ zaP>liABf7+2s%^djU5e0kEDpMj|l)2qpUTL5kuPw*ATAO=DP&rA-YAV zKo*gT{;&Kl1G2b$piWEm1SRmKB)hY^B(NQrZFhuHqqFP$rFZ|rmZgsR<9qmg;`_fSl zRY$wj(JpnW2ic{L?-J`C`dZe#Ne@-0?V;+ytw#?PfjkQHP~~;vORsiP_28rms%K$L z`7NUatGZjm@mMB#U;Zl%j^4$Xf0g`a-2$a35vgX)>Wc!bK!hU~k}qUYP_L96V2bqu z_Q)QpPKRr1U%xuo%ed$2ksko2%5jp~3k(j7#CWl4z+wKM8E$et0vk~U!}4NOFug#9 zC0y&V+@zBT64vPUIrtZ#M(hdtAg%yWsLLzCS2Izjq^E^~u5#Ju>&pw3fAzjtUbYb_ z2w&a`o9Q*~Me_2;+)oKHNwH;%B)@v0$oIMzX%MHz!(>R9$n*afO4MH0uj1p^xPC2F zcE@UOqiY@Y-q?kH5o<<2^BHUt~z}m0x*z0 zTv;pzLQbmgShIo@KnaLbf3jSeq3FmqSe=Rj7ibWQ0^$_W(_Mj3;yCjwZ`J#l*w*J$ zl_Okf>|hrI>7hOYG)}vf7Z)oW^u^#rIk?vgIlF{on#LiTuY^|tQo4G1cunvPh?Ax} zNFI8koF(uc64``MP8}th6Y&4b-d=D=W^Ek>Y^%C)a&8gNT!wrWf7%zSC@Kt;43axO zyT-lVqd)zOQwSVsyIfB#Fl{F;22-lOgpG*{!Iz$I*S{*xtRO;kSybE_b7BXeKg3zf zzeNO5`)9GvpU}0Iyba1BxM#TGSsj)PUbp4$`Q=Wi2PCaUA2f?T_%auLuP``FbTNx8 z!K0cWWpp6?F~5}oe+E%v+@@uCWv|K-u5s=sj7G%iGfN(!p3E)8l93WujZMrRPRY?!K;}uS~$77!GbfcJ4$5T{|KnDUOyHgT; zg@zVKqeL@blos2h$ZUe@<-1tZO4mTc^M{uKSgks=dRY`8f5Tx&ckDZMv4D_pdM-U)gc|}# ztf($k+s+WXXJ~k7Aw;7&c5xRERuIb$4YK&fw1As3f=nadUI9G(E5pw-Vy#QdQiq2o z#RS<yGT@tYfR0=U>FJp_Qh#x1khJ`8JPSB#^nHVR^RWm`+i8o zx?{#Qe_`gK&i0J`Aal&YNBJY@9&r4Mr0)ni6^U2Fa z1i^wCc087>ZsCXXl+Fu4R7#mA8HyrL<}St7PbzqPTD$Y^7z5koDI>Hsz2*Mo~C(iN^2~! zG|(=@&E88c%_xb}8hRiH$&$%c#hD}4&$ly~?ur60R|iWPg@H7t`ccW@xcHh{n3z({6wjPL ztWxzQ>@K8M;VI?i#qPV58&bVuq^ntxAp^sx0CiB#k4V{}D1*i2cinneoirk}B0L-P z&k(0wP+j-2xE8`SOIc&ELY3?5e+wfV-YxZRA9!X*dFJIS>#r>K+%?)m_bR<5MGR4- zFJp~4NW=xM;$421oD-NDQFJr&OYVlGxjHJDvwOYb^lFNp91tgg-h0LP%J5``MSvkD zT)^+Ym}2N;B}}VP4YG2hA*BOp+hyBIl}o6h2k#4Tl4%o8$b!9uK z7BdeBm}7L-5~__t%mqkhMBy&3mx5I%#Evwmw(zJg)pm?Heldtbx}+iY15-vzvQpKV zHOl``X=>92TzdNHMq%y$e@e6xV9~99l2vW?Sz(_Lg?$F9s~w<}qtBYbp4k&T9W|ZU z{z}og{v=4MKQ@#Ld`EQMF#jp1o9OB2BOs%nbG^a>@2WnI{X=|YN@L~jTiNGC;{h=T zyI0)vWp(7`-qCK;hqSOkw?gvUov1tHBO;DX1dt#qba;&m3>@nce^E_5ryq56>J-Qy z?7fA^Ul3opM|E1UkpSC_!J=wJs2F?m)JN5y+|hzl>SFq+f3rRKR2epzvnWx=Y_Bm- zYv6Y?krk&zK)f89pW@LDeYQ{+oBSo3y)l2|hQyb7jY6MqN1@L@e&Wl;Ag~Tz1|{u% zql=j8j2;TZNx}YRM2I=XAgsPx4GfuddXRl|+t^As`n z!secK!ocJzb`5hi(XjzQIPk_+WYYN_5v~ul#iRio0_qx{VqXP2QKUJjxXQ(QbT0U-Hw7 z%kRA(fAQmZx8m+@eF)nhBKsgTb@@tsQo6o-CBC!V&G`^^w)a-$cg+pi(xK&E=|{QO zx0FefPJiWUv2SJld5hx`6*pvCPkl?(q0enjT1c zu4|?~y$Yg$5u5gMVAE=xvj{lb8IN#T2^|=hf3dz+znHzo?Z=Bq6;Q+b#ayv{T+XTc zJ1piH1`+f9)EF*~X+#F#N=C2us|SF|S6rlfF1$gfmm4Z<(|8CPpW2ef!#0gic^VJf zG#-M+rIRX7XOd{qG5_n1!5O zQ+_MZoZI0Ju@ZxFHg=fU1?`r*BRc~{JE2)Jc*N;~vo$3BB_-*-{#&6!(4bsG*|atK z@EX&7v=``RyC1dzwz{x_8T4$|h6uL@f5C@J@Sza=t%phPyOFT&do;NmXYUYbMz%dc zTI7g90s|zaw}U3C=P(web+71b_bT*Sc*8;!AVU?Hnj5G&b*o!U$|J?V`#xiht!Q$o zK8e$Hwv|g2wNJ4P!635}0UMvxcoWJSge#GqEAmF@ivj}(;JKRL^GJkIa8sC%f0__5 zy8Q;_1~{`&QSPI*N**;Tc?-@g^l;BnTNiJ^nT4C+o}Wmryk$7Q7=LcJkQNb{^jVF_ zB*VIxCcn7cLHR=XCG~|6btCswxdE>1;Zrp|f4N$EBaJwo^p{6{n_s1=9Z=bL=66_C?x+gUf$Yw^82UL| zeVFx_JJkocsbJ+F&1&s9#;SD`(WnDaWNewf9i8<~^|y+K+Cgc!j`!Y0J_>KsE{8=U zJ;$_fO_5s3nDsqV%sth{b4^Gz8Vr zlfFr{1wloOe6(eTpY?H5ds&D6aq}Cd5GQ9t6k6GQ-+58AHlz&qd`JsJM25tnH$$L; zK@Eyg{!59xsG?ZFfKsWidK;=#$-g10E1(RN{JZEWsBW`b&h4^NT9+zM-=#b~rHfRR zww)RSx4jsM(&mGZe^hl_IaPEX{0`xEnI6>YVhI;`*o&T_gdz%tNRx=#$S#YHiB!UH zVU%f*4p5XGK%&hxFmSbe3Ru>lke7LxP%3km7TU2!a@`P=JWyoQO~Jq$fC#p>Mksm2 zN*=KR5#Sg%x`+;OfFI%pd?Zm{*!9dIm;Ky9SzdTUI+;d|e~p&SapZelMnc#%et@|?mzdLdB7E6Im|;8Qv@;pwt|79zwYqhRdACV1-xwon_nhKh z8C2QT!LwwtI|defc@aK%@BQUGQb`wzoiM6Qt8q_R*^(^A&bc0Rv8IZ zug-Aqu*F8te(!X`c4qh9xhGhXgJLIXZ7WjfF;%2@e^yf1n4YIlDk^rQRgZN8zO7m> z`injSzLAcZVgC(ko$O5J&2%hprsp5CCvX`phbi;=kJfna)APVAcG&{VIn! zSV;JyetBZS1yZgr6!E9%F}U$S(Lr9 zC~xA$BBf#n)EKoW(fbxRVRI}(Ib|6iQ=0EF41F;I>qp(S!xjh-snbwvR!|tyq6lwu zM-YUuCkW->Az-k4`5hD(;_4xHlzp5Vn~XG9e=RXm$>QLsjBi&dMMi$DW;5Uvi6@s@ z?yOK08$;Ad!z?v|9UbGPtJcAIG@})f(@mVQKvnSR^WuyeFi&O{Yve8<0<5l8ZCN(p z63UI|k6iMs3E+|ma1yfl`D0q;Ok-sc`Z;H1m?FO_(pSvr%ClIVT2UWRfdCspI}~e& ze`0-TtUaM|e7~Y;@6#`r^#zG#Z*yuuw~m235VfUv0{S zG~y#(bV|MGl-8otL;>@GuLim4@VvMnf6o5-kVra_405p@bU)+BKV-`?Ox5;nJA4## zFEU1ZAt(fh z$e;NB1=8>taxu4^LoVhvl*HS{FlOoGHlCU+Oer_0WG>use~ix|!1>P6HpQYfe~yXU zH5{{V9J6m&t)63sv_ZBwraLpo3~P=_MAR0?3=z_^kz+c~F|8kAn`34=k}FrU>hx<^ z46n)UYGq4DX{=;x+KrJ1Ej>Z77_c$A)}p%QLq1L3Ad zxSdJD?QBiBp(osQu?U-^K2*Z>M}4^As1HH7p%Jc?No^nXVNJLLqXNh}e_j|W7OLc> zU}LeY-H~CqL2256*l?HovT+6Oa%aF5fb1(f<-A}8Y^U@l2r_Q(l*a!WZt%bU7ik`7 zT|GIKVzSx2Zh@RRHg!0{SM%kNK32wL45?)lsqt$0?4w6B6`^Nv$&$Cc?BLz=`lzd; zP0QImA`-i`38osWdKzoRe|x4q$0(xiMbmxqZosxDeA@*$2bbhjCR;u7(jq=CKV&q~ z$iEvFIgS{5r&dIcF$7kwhnC5B?rDv$ow0cCp2c%(OrLcB6vQ|bz~T^hRS%sm*5LhC z2>UiBx?{c_qntpoymPM_T8XLeIpJ8q$iw z3d}H*t-rL0klrh!f14(9X1IEk)pLof6eF}1UK4EQ_i5bGz@)0O4#eU8;V*=uwkLR% zYrchnB~*i4jjA*a1*g7YT;H(1o%NVtk3A)P6LXLT*y0(l(W4Ku)Rm9lqaSgknxId>G5bo|x9nKm^KZe<30bkqwoYyJbg%f$Fdq z!~=CkKFV*d>?l;RlE$==Mz?x|p76cy3T!WgQ~YI^ZJ^`KlkN@~%7q&0_5ze&Jf^N% zl}GgZ7r|RjF=7#dDbtqHHS?!dk3GlCP_YVU0CC)I7y`t3M7%-F`?JJ_niW!_a%o+i z>VeZS4L!GvfBG~Z5gPQTf0#K~(uG-~J*bzlr&xEzcytLqv5Qk^G3PreZ$V+w%OTGM zo|D$ILru?wUbky#FG^>G@079$6gioFJF392`^9 zW-0$sC(E`+m;zYN6^haNO?j1{9-06DSLxqP>&C zK-NIJf5>PTG*x`MSmLdUO}8qxzEzzqy|Wdkv~$u|;%kX_3RN zlrdqs!avR}C4WJ+upO#}4b(|lr>vhjSv_RUo_4Z&anYV&A5VKQl#4V3vx%^y{WYQ- z3n@^yR)iEfz&RNGfrMLhl7XOEorNirAmM$Yf9YHu?31VEKkej9AL1NXTO19Q;~+#W zUN<+ghoFpVvj|*o)AQGk z&xsCeq-?L~H_;+ z#NI2=JwlkOxpJVH(`ogYU_82zfT0T4N>^9I8LY_LHr>wt2C^P!yg{)IgGuY!lzna(U`96s@EvV{Mi{U zYo|5d4-ihT=1ggA{Z1R}ca2NiQ(W3u9ikryJeFgz4RKY*6Si@M5)I}q77x=_v^ZAl zdJF^EkTnZgL##(5&o(Fv2-b(Ff1_5N2iz*Rm8E%jGf!tyRen9-B9kNuoB!yjtUeD% z??AJ6QXa7k(>1Ti(_K-5CWet#>qDtvE|_WtFjEuJrK4_^Z8~jnYub=1wynl9N^7@7 zx`kU}o4O@B>Xrbk8M875oRKW6{oGEo8XTvq?CcJR^26cx@;gNEe@Aevf4mUBS-cyf z;Nd%i>uLCYXKdPkt3&17P@RHL9_-YGBCc}87hhb!fy2p`)J zQa#XuzGkdo#YbC%9@pSPU4sjC4T3O8oBtxNv~&)Wb0HT)I(C@f9a%#^w;fh$co)t4 zy}hoertioOw|ZPB$QDPff9@72Wl^&%!!xh#bRliQ@GCLrx0Wle76l5ZPuS`<`Zy zV4VL}qOAK0@Cj;wi!8|4*S@_?l!-n)aJ0e1tg3927;_T)I*ENVf5i075EGjrCN@LN zNZ7Gj2yNqt;CUkpy|Zu{I(KjEo8ZFB48*qUnf7oj-J>>34IlNM`)IhtL`#_tyZw-X zH+;M4+P+<@Hcg@VRXOG!OjO>JGfIIrQs(J_*m(a2;fyLWEohMS`-{cG@e1zU-r{kY zfV<7eIE$M#$6{acf1bM47gc%{sk7>htNu6HF|!TA)GYFNc*OKK$%Gb21MxkV4<-{X z>AK-Sr-LTM5K+jzLLftUjGePCZN9meA?te=z18;ZLv?%w1PK8(rAkdbkr0fUrj?qe z8)`~h)YLO->d=2UFNgBm5=JiJ?Sl!d3G>94!in0Zs`PABf0Y_lr5nt9N=X+gB~3$c zkw(;AhAI*+X)(zOatKBjW@atQY+u4}!<}h?e%pmSn7g)}fqsh!^jpLS4fNw%4fKV#xY!ExOWT2d=@|n37AMM!(s;YM%bj+YJ2%mXUU#|E?s8|c z%XHIp+FkB!f9i7Qe7oFfXWE%vQz-eMkL}X!H76QTT18{hOjpEL*{vszSFhSYznguJ z76^!Q9d3Wy9NWCY)LbzkBc~9mP`$Vos!~J7vTZdh{b_G2;fP!JC_EFOtRnnQV9M^a zbSYp*pmfvU;5Nfz2*DG-F+GizG8Pia6#jrG$_$~be;a+876yfzpy)iI#(4Dpwov#T z6wT{!%CifF45th=5G7PCE|fc%W?1)&>K7gp72)D?h$v+Cb9jY&+DdrON_?{1&D4PD zyBJv?c>_i`A-RW|wG$M(@6RujV{7NF_?4;b{i3g`u|;?*GGQdjV2z;Eqw-lrERb8BTqAfwU#+ZrU0x-3C>VYb zj`_7azVR3RK0L$s(dO@Ed3yj_?iI6Dyjsqx(T`S&tsl$_oTU=2meX4BJ1cu0;7P|m z-0OCO_pSnnk&*4xRW)2&(~xOV7O}dB$0pw^f67rYuTe5A(GaSJ6B<(qt$wpwp_&TL zVN=05^lT-x3eFlC*;H^2JzEK_f^&F=3eM-0z#C77Jd=v8ZiLeEp1^5^U1_?eVJM;M zVPW-`&Rk)&U2Ce?afC;HWOk<5n=WBz>a?tvurt+mOW2uW*eE|2(u0lnwmap{EO3zG zf0SD{V%7juMzGVsFVsnr9%=-XtVe!=qF2WnwBzqIib>eV$xK#|vg9V@=MRIWbXq9F zXLHf?CUn0Y6S|)P7GOZ7rQCL_3uT_3BFFp{bc}CeeIBZ?(}pSxseT7O`K~bTh3vJD z*OkF$VEbh$ikUsZ0W*1$nZWn}@D`2Re~2`0BP!Im)Oh*}Mn)6QbFN@+cEDV$c}~26 zC}9~UFikquDe9v#;WhA2tda6SDnYII}I-!=@Z z&yox~>HwV9^aqQF(!J@B_du5`!eh$R13RhkqmuP3dea{gr?p?>^vpImJ*>7)e}}ia z4>j9DXS{kO$VRc^o(?o1VizVtGy(FpV$2R_Y7f^Q=w`PP32=kZ51RT6C|=abuZAa7 zR8Yp@Ay%@3msJER`NZkLlXyErUctgC;YC6zz;(px?Xt)op~U6RJ5JHa_u&aYBf935ojnwK4fk-_gCz?p+6)<(S!7J~*QKKPCHk+rx zVYT61@Xm$;*eR*Sn_2u8-3*L9fj3#Rfb6&qaa<1+ECI}5SR=&sy%X9>Kbvirk<)Q8 zr+Z;ecgCDUa>_Rd4e)zDVm2VyA1 z;0VQ8mUTUs5ur1OvFc)nvh-kl2j$aU?y7LV{0QWxXUN@8!O%8`ysZ~g2WH^T&p7T+ zl5TogRFsz&d+xfGKE2B|n=fsFSf#Sw5mQ%+co8#E-^2V}(Cab0e^^uMEjIVCo^F99 zzE}WhVjSBhvnEr55p3($eENuv;pz?oy!4x&TdDh|;LBlI7%cCZe zhCf&;u%;mEP};=Ve{w?ZYh`hy>OsJ5MtiVgryY_CXojB$J7D$O#4^y;52L^n>ge&= z=!|;F@?V6qE>GHZWq6WUw7-zl=vSE@wiyB{a#75+tk}b07_LXBEG|eb_$(ebpr~Jq zdexwMxRu@Zs!vj?%Wjfi|JR;Sxg_maD?w^UZW>TGeS<9RzZ8E+isJ^J8XAGO7yjPdl zgbb<;g_-;iyML1i0P>CvA=VC>$I&rCpOj3=X-j;R`8y4*$+e>LtspnVV>gouqs*RV z#Yp2)>rxlae+=vprEi=Gt>*XurQdwkXPA8^a+$9r>VSN_*UgVub)!FGk)2-I(~ONi zrDWNkC*WvKk3)0@nwh9z@)@~{44#=Ai;Bou?!mS09r% zzlN)?fAv=%s(W&16*mCpiL+vUVfIev;F#PUTw59jUsO9~%pdbImb2XxEL9$|W=>XE z$n#~?rCwGrdkHm=5I!s~_tM?Y%C~!hYnkC@&hcvgL^b~{9#>T;)I^)PG^;lV}{ZAh-}MQ^|9OYe`70+sTHR2eW1Y2%VXU}v3i>wiwPGN z6&?73&@hw)h^|vFq?O)KjG>F#)~Y9*2MC0 z^)sLQ=wE&t9NR1aScmazC{Ln$KX^$MogjdTy56DvqZVOzoQ*6O-;hn2R;U~lJ-~Wv ze;kYMK4FTgEu=)&QJ+f}RR?R0A)P?>tV3k2%5KIKr>y!>)+f$>Dha#m?i6kgi*NO+ zNHtcu>+2)R?R+Sdh>$oXsm4)l8h#4!BG~5*N;Ky1JFqR+!;kCXza~Pbg6egVOh8)w z(5LE*z@Y4E$WRwE(N+DyQVYTw3RPVZe+q?~ncjq;KZHLux>L3l#;HySXQEq&dk`-X zwVAa_WWJk)u7w+>)mMm8``~DRIiXElPc(Vio0;E@?%~UT$_ZpC5amHRY{6JWtiCz` zAtuyJpUn`~_T&%}`aw=*DIQZ^me|d6| zhF@o)ps!J>O*EO|ZQ;4L|U zC9lWXlT#p_oS6{U((k$3i+Ehkt?Icb1TH)C2X?xl)!gg~|LfZJhSz0^C&Y-KqH=na zD;M0Y$tNr&fE5{FR%@@M=`-s@e~GHz?ufir-S?W1j+~g(C10(@*#fCA&^%!CsL&7m6%D^y&c=H(ie?Otx#P|Ei zBHp{}@M6PTMBUaHxShx{KMLTUVsK<_QG*5t$X<5Jk;qojH(C%!uHDt60CUyu1lnK5 zv9|gIK`VsqKrRdnnmF*rHzja}bD7LyY<%c&(I7>m1f3vPg)-tn}SY$h%fY;EF86i-a2{v>qKM92cgO zJ;F5V2ng%ul;yeB0LYd(7XfDwgcnpVch_kI-hjlW*M)ZW#d`8v3cX*kdV)GSbMeF! z#h8;0=cKdoWH{rrAkd|mmX1zKry(urs*I4cgMo@_VACT+a+FDif9=U3nM68R?4k~B z4M^IdS||E6tBlC#A9*=P0(1L+cgNSR4tn@fj}EIvBHsxIx;p6VB=sZcIYOPnj*8VX z-KFUA-Kr;xu-gty3|sMR;{1oE}ZKe3ETj}xG5!e}n3}9MG zWk)$B1d@2)lXzx*&Fa1q9Ck~p4%j{Z4yx|+MrWaFP*~H$e?WT}G(BW;XGR~kl4vuL z;h|=4O>Vj~Po+EKRK|s}(=T@_V*?(r2n$5)4H??>F{0UbwUik84NOcDUb*>P{YUA! z2J3v(`q^-A(XN6cppmU-`OA?39AyCaA3=cr{M#zyK8RG_C8 zKNm!UM7hF=e?h|F>9nDqx9cqt;Yk#8&UJ{gs6z1al`FCv7B!)V+$2PeZjs}Qp&V?G zD;@L5Gi>9GNBw3|jwkJtBfWJvtj?FeavTJmGOdHR{Kr2rVemLY-6E$kwynTTs&hy6 z=YURIimAZNMKCO6HzF~@!WH6U}aLT4G zj-zfr4Bdqn1yc(%`Rw%E1@k+1Y~MBhCCK?$tAypjMw_5dX!l}1VHzPYLSu?EG%6+*;FGakU*-l>Xrqz_K zmXC5$f88-N#RmqPR%&M<{mak(E(8INtILiq(rkfu^dE%d=?r6vs;iIIIi)4TQus|% zcTuN+D-{nHvcVEv(q-%i8ILEXxMH0HU`xW5(2Qjm`{{xo-{rrZPLu1n>e8d4{krN0 zX@?Efe6wK=%Vt1uaS&(-*Rk80LhQy|g``z7`SMQ#`_@&T z4Q%n);4AcZC5r)m-;Z~B*03OHv^o_Ae~tp*5kGtlz%{?o4g>I(5U|&+a{S4nGe|Y<8 zzKwb4VF-?GcUsk3SM4y|Ja&K25h@wJR*MnyROSNzp9`|~cK1C{Uj66v=w$e$<5DiW zaThz=#C7Lw_RPqdD9=6;ADSREl*Y4Cx-I@GkE6yZjELm&`Jm}e>lFC~-^(h@-al}i zbv#m&1G}p-|3MY6!j$O%M;n-Sf2};wRS}WlwFqSikb~+YpN1lM9XY%V5i9m_ex)?~ zn7c`nkh&!}UUY}BgXl!{`A^5=BMXW!IVd4mRPX-ph<8?fNQU*HPph$%Qfkn;cfI<<2%X@h;j7A?m)P&P z?T6-9#6GteW$y zHbPLNt`kn^!ks8Jj99)yUubCxEG4w7Wfcq*B2q6|pf6Y%VQ?2imR3Jq06$4bAK8^h zO7~8G={aKrS9RA)c@T0sPk;PkeiN^i;fa!3)ahw{6Rwr%HNBR zES^w8p}Ji-P(sY@aD;#&7v3>qdN5i+5RTWzWk;xsjGC0C*}8NN7%bpZT=;MoMH<2a7!HKI}rb9-gWcf3gMO`h{D0%>NhMRVD`4 z{dW2EHAVZ=S1k^S>i^ZUUhON=i7V2LSI9MY3#p}d-_0@^;1ET0*GhoEi*+8i;cfWp zx%eYjPz`w{KD_d7d6Izp?%@9sOxVPys~=L7m)?=;L5&x?$#X? zBZ`S=&n-0dyY5DbvP3IY|8?k`jXd5JDE1djey+(qe>eMNwd<&7P6H!iniv@0JQ(Mn ziWOdXP&zA>D$>q&=231po>sm7(?BbEMj0>`)6pTxqhUo<_i8=gv%rA(+LafyTzRhT z%5!IMIysIH1@Tj@`GEH_t zx(t1=X?34kO)aWn6(4$59S9f`S=0;;9nGKGf2y2S?P^71IUkMn6d#SXYcd*ZY9bnI zx|otams49tW97H9MDo;~#q{$S(A_Xa1GB#0;y%yw{PQ0S+5eaZEu>nQ_n!p;C@K$*Xqu5YfX6#7o4lVN9A z&0_puzJCu{15OLn=e%-6_f%p5C)(6Y4VbfBYw_9=kv@v9hNI7ygM2sQBCu#0U9Q;s z4+^OaneYKB~kCTjx(&rWd6z)pup1{L$%m3QRd7vl-mSi?NKzEW~PAdWzTjRtZDHGj}*3WY``GDA6N7uS0ttmO=8Bj*%s z5Vy0@(oC!0g|ya3ngD{gZnbhZ(6^Xq1QR7gd0nD4RskOhmiZyt!_pYeSvqNj3U)DD zR`+!JpzUb|XfetQbu*{j%#a$2R5|nyyHU5cBcLBsy~t@&cpx2pll*LR&m3EjC4k5D zqkp_B@FIMlsgjIk{1Lf?nKpP8*79a~Mfz8lk~UeEM%{D`9vNaaNbD%nhEA=Gx?Eqx z9+tgviCBLKxr`14ALA&wvGoOP7TFZX$ACDrw!Jg9b+9l25hh$MyBaWLz^wYrap~&2 zIK9g-*mx5~=-dZZ@)4Or$1-17p6a_lgMZ<0qPk$Z9R~jDuVK-ZsiJzwvjp(;YI>^P z^SiF-=g$CcMonw!`O;cCS)3C2)px;+9?1(yfYn)KU&%M}Cq7&kB%9b@3Fkj)?Jo=E z{fFCMsQvgP?XkWdxk>gbPDPzZH0j5Oy@I_QRy#wi=pSHp3kvVLR13;0@1>OWvwt7B z=Bg-fFtU+RqM+H`F?MSHa;H+qz--4fYA9o*l7Cq1HD9P8fVeDwk-=&XD6}adFtCY9 z5sxtQW0^Kj9%Nm=93Vjh=7Ud%FRj>cBtdK}qT+farJAj7cYQ1_TR&N0G zq$8tr>pAYU=eYCub6fJGBzXdi2!iWT^8Nz zR@~Pqf_Huh%?{GS9Ux9FuHO2__kEU1aa_IPOVKs%dt^(jyj)iOB?$6I7Jmpf0+i0( zRiHM~=N93j)wT=sXJ!iDmOpzTGx=IL{9lAFYOP#QJ*qg}O`Q6pj-eWGY&@K**ec(C z(W%7&@8^^$yyZe&*DK{m4zDw!(UXfy*m1Bdu=NkdSsAF&7zbn#Q2)+a8o<(Q=Z)=*q4_wbm*vw`HC;rDiowKLRGT0r<~fcJL?<_&WBJPbPn=Sv4q>GGS0N`O9fJc$A?}Xt zm7kZh%9N6;gRUvej#zc8$SB!O4T6`=QDc!-(Cg-gdaS9Q;uPa4$R9;dv)9gt3+u6I zDFY@-Iy@cqT`>2jU4Qj*?t{;|#Zj*JnZ}>63fD$6YSZYm>dR;c-EE`U0wANKohZl+ ztj4g)*G4dg6lIiDwYJab-<}I@E5L0 z@*?4Cu`6|j@PI8di#1-xS)>WJ%Vh_sv$8eUMQE$!?IKPJ5ws37l)1aCIh|~LP?PQt zB3)OQH#5-}^K10uVn$#=pw}*Id5d5*(~Qv!0$ISmKvJi;lax`h!wz`MSE5Gj^z`e~ z>LvX{1TtlugMW(3?X(E1uoTwAA=osi>jLIYA~&^6jtyB15?1Q#g@wk1c1`kYh6uSB zvGfUH6gfZLdg1vrO2h{dTj?~dTNYfdbY5|oqW@@W)Xgj+j=L9ST(@bRGT!I__7X@J z^rD9M0S4>+*s&2l9wlrfaiR>(iXh(#{|s3@hQI>X zFG4M2-mYT`IE#oCgx=&X&5_wa5XlMQ;hztYtrzHvxo zx*{FpyMNuns+p*Xgv{dDB2)=I6cpMVkX$L_>h|##JSOyDm^>};c+@9G?RT!{ZfHA0 zZb2rPLV_7;kwqI6Mv{LuKM3Q#wN4jLG`kE;Z%%Y4A)M>Vg~Jw#%DtFyFLre=CN(rK z3fwTWqOYzu?oy^~6!{F?_t+#f9i`R?ziZZnVt)##o*~^Xgw`u{$Y$X_7 z7$Mh}r8)N^+6U zVeaaDD8S6l!~bctlIlt?J{Da#SSXb3nqds1$Xx^2V<0c&yHlAcyq7vWCiI!5U*c zfhWn>q-e5b*tE2!C@M6yRnw@|)Y`&@yM3#+al5TGh7qP(Vry-bcrWolb1GOmh~W)0 z6^$;(7KcH2s=aM9O~t&hxae!;&=LVA9DnpPe7sY)WAi(VUHrY56&Dp3-kFUqCNj&# zqa|67rIpj}HgtDsrE~9SsqM1XR1@jI?4s<|F+EdcT-U2p2<$3q*p&!`1Ov41S)?^!?7^?xnyPTtJH zJb6YrBB(cJWE(T3ua$<=T9!y#vV`oGz*H_hSpz*;9q>r@Z;~+_guSlDw$wj$vYS{)ZP%#UhVcZX&FuojbkeMlo^c*sK_0vz*rxlKkr z&3T*$y!rr$=*vLkN-60h6S0M!cA^p#y3gFiK=vvizx3E{EWaIV*OTv#=5N zfsE(pseia>)F0*A5&|wU*onP1#JRT&INWLG30h~cVnaGlihPtIpBbeqWe%oR+*J_- zRNP4M`lc%4`tW70ip$<;P=zA|lTD$J_>4ZW?DJF~EB^Zoo;@R-8h;42&R(a1iD2Bb zV*oM@Zeg(X4DksGtTR}GeXn7S_Z@F0WaHrb+I-MzJHQ-e z%u3gZm=Y?&J_6}rBia@y2W6kO!Gwm^F9twn8xVly$RhIWbARxWIc%#$i=^g25y{t> z(n`^B$e(a3$~H=>zYVItYi@yDA>BtkwGv6wnIwQdg3}Qfr$+mTZcIRK1Bj~l`3P~` zhlp>QW-*3h8eYR(#wEj(p9T}V5$M*!JfvIRMPxV9qU8gbppWBMt)2kEs-uc$Ui9SX z$CCk{SLBC}AAfGE^m$9A@3&R@{uxyId=mE$0G$>C)#Wr*(`$<17ijtm-}SxULk{rbf-7s9TEac8EbVTj!jfleIf+cW!8Q47u@geq)AL*dJIWr+&ond>=7v9)Se{ zi$+RA3NuA!)h%PNy)Kmn=pvcH9S<3>JRV{Ux4VlZ$(+^MCnq zS4`*60F4?dL|@I#pca~&TgJcs`4*V&Pnes*u+fQ^NT(3s`oL&M5$q37hoiY7d|7H@sp2#+6&D`x+&W$6* zjES7{pv<9+*FA6w!##PXc?&np8%`;qGti1JzmXv!GQYCSgdrSdMK|*6R2UKkfy0C= zn&zXw6_`5HobPXiy}egO`M1it_Nq94$tYJ5f`6d&(wmpjZ4b=j*SIRVjv2l8xiS2V zKk*ts;f=MCTBmOer~krfidCABjDE zS+rcv0b(*X3$A7(z(JdHsf54%O(eV`X4}zrk-%NCeKeQhb1~WuN}DdWV{rVI`;QrH z#edwb08Rxk7t}qbjOM73Jj|50!tO%087bmdWcGN10?7|#tUIoX=7rI1hl6T>B>_lo z2kHI;L$?C+8xl7@XB8f(0l@oLmP})HPU%{PB)k~2AW~I3M!`oVPzNjKR@|L3oXqpo zsKrxe}k5Ys zVzw(#euwzGcoC)B)!EemGocVgx-!23m}$Nh3e@wVKs$XX(EMa5(42+>nezzYK-&St z^*}kdWjN3dgahp;=I$)EBOIvP3J0R2q1TGhfg-|?pxzS&XtIDHZRi1-GS0N@sGi38 z^i)^tfjNKCVc{ufeGxoN=A?z>)PGZLCZ>3NZud|;x^!h}!(1=5<~sIsz3At9Y0J58 z&2xN?^BlLsuHx1l4@6Ah91osE5Ui*H!HO~&Vr%LKL+2Mdu-L1C&fuVefBs6m)43e@ zxnw>20nMWDb9{t|J~6)j2=>o9qK|tTR@*By5es1ApzXcxbz$}G;Z4+uQ-4GS(qx9W zKdJ$OKN@nc);DpFODSYbzKu+}P`}FGj2yZK&ADC?Rz?RMM z%}?kzKM~f?X_LdfVT&FTPY)ab3F6-HTy|e_j#QCs+<=A zG{P|!TBz<00gsTOg9nQYY=3dTzUVtQi^8kgO8=J+BP^%oR+( z?Oq++>(r5d5@>czD8Jz9-~yOB^6N_jQFk=z(>|<0`)T!42c#1s8{Rx(a1~J(h>C3S zodnd038+Jxd)x-pi5ozj*aPas2B;G;Dxv|@i9MiBY=Ao9831+8$$wKHPC_GhP@cPs zm)q4CL2ONhNAA!`_H71_Oz2E437}IDSAXL%eCb>c)$vU9a4kRvRAEQBaxF zc)s&0mS_C;#6s61=|d$7qN@&#D25`88c_^M6#biM^Bj7j;9DgMY3qq%NTTT9;M+db zG}u5CPeg+=$?(N$HC*@gy^}(iHUXTKHV|Lc_q5Sh(A~ZwJAZqss6!Q*>G`E#bt-aU z5D_U7G*HC(kFt6#>QD#yNiEPelxI%CAmEGZA=mvou?#;EZ(gUz0xQUL$pZbeXR13E zK)iiSjneqoW0Y8sV_qk_(v_S2ywmqf`TG)mynZh7wISDF;xt69 z8iPOiIL{5goPX!S2G@*wM1$Ma!6DQ>z+%oQy6%jE>jA3{`z?Q!ThLG$^w8!1nha~1 znN*nv5fC-`r6X27AJC!Cuz;~*1ck_o$-l}<@g6csy2Bc&TDn4!%R4sEPWA5AK*654y0&c?dgS+RWDMP%fuWz%-VG-;E91AUv_zQL7mrZ3V;Wjy{(C93 zPR?_zId3nPFH`^=V63|#RVC2BVUK1K$Uw8ZdieS@u^RdIZvM!FPwt<;n}vY61% zyJkrXlJ4v^OU_9{oTyon@(Kr?&+vo>E#j9gtM8N!xjIoch*$3`>hfU5BlJmdBX*(*I83&CRkA;4+ z9%Xm3LT9J})TyQx6H`5cwTjUPim49s)PGK!x%>d9L}>AWPsJmiU~Oo1&ID+YI7~IP zx)zX`&MerLb^mz3IR6@px(-UZcH?7ed}TOm{;~|HC3L2S*D||4VzQg%aUwUSWE9*S z?P1IrRv33ppohzdZG?np#vrAc>I*2NQY|4X)gmRfTmehWWxA$3I{WDMC|!?Fxqp)_ z)JemAUynCtX5yWlUYOUn~HMX0`fU7o%*9s|LR*)EdcY!AN!f_ zO_9;sss8GnZ+@e^P4(M1rU0KLpnv$Ezw`UPw`0w5<&mM#MD<4>`dOzlIeKh6O7F!`y`HRAU*$xU5h<~cKDw!?PpJ#)D#=wGunO3QhdyN8S}6`7;4x z<)gt`)jfWV(?s|c(Mj&4pCj>r%18pyBaQtjD@XlfYgGJUhW2KYEiryKG6=};@k$PiAx`nYK)m$QP ztmxBNkt(W-3~|C%(IpVeIZcQ={|RyDFd<(%gunC*>6B-k5Z9Uz=YJ=}Z80I1n>cB` zab~@loRGsq;%*gVwdN&qfZMy)%e=ni*blVZF!L91Y=*>Uo~qO~5@hKUZ(FwyA~ooKR`E`Xc*4ZJn89m8)z zfr{~i`P0B=n0a>-y?=V)DoZ^%#htC(9jIs~ug3|E6ILl88mivy2y&cW6Rz6d;)nPI zPh6z>;j}-dAnd%`$SK?UM_lGjcJd9&96ssG95>4xZ(=Y!YUD+^i# z49@hCuG+1mbANznls!hAgOCWi3IQ}Euy3E@JC>l11Iu$~sykqz`{h8vZhHu(V@9e5xkDdQff}X- zRSj8low{;tRv%{-EHP+>M-B|F0$y_HJU`_N7IYbD+J9kQj2DM}Dv~e8$11(h2<*0H zj8a_;5Kv{ESHl{aSzIF`oA(3?kMiY=Eeh3^Q6qd{id3&IjooXN#A za7PWaG&aJwyAw64!igGHn2-)rSo-<XK3c_0bLcigcgVn zYcfVO@P9WI89Ply#*Vi@bef8copwdWj<-N`9;YJX`KF|Lw}UzzSbx2WS4jo3Pq(d# zGDhB`6R)a&Gq=_3s(J*jahgm5V#pYPZgF^)?FCZ1k=k+>ks?Kwy(e~qbp_<^>ExQmW~7%v=@v zd60O}HC`Q(7iMOoJ=-j~Cpt^D`N%2AdHg6nDdLgt#&Qls2|R)&&{AsGWCVn~@x zF48iLV=!&YMTi(YuVy%Dt)c$5Pgy=?wT#ERWpUq$(EQARM&@w9G;$^6$dEd#`hPS6 zs{|NS9|;t~m2Ni>JWjd@FSp@EPr9f%=^}s9MRwBB%F~>5kw57oJL#r91TM%UXdET6 zl1HqCw_-&gh^0RYfzU2|iy`ITFl|}FwXZCg^p#Ou_?t>V@<;?3Njq6>26BnyYNW=024J<-mqmBYC zeTlAO-yqD8flU4Cfj7JA18SDmbSJL4R)-f$2JW zrZZOH1dNAM*G;61Cm@iTnbDBpX#J2 z=>QT1i9@KVJ{l0i|HHwNMZ#MvOmPc|mt|y;Kx5!H1QU&pDkfk!F5;`196}sVB7>V{ z5bBZ2;o*ohV`tm|Xpr1Fgd9Qzl{rc^y{&1;o54R|7KC z=TvtrT!@z{BHL-g25OYY7u`%h*bqA6&MR~ze7w++GkF@*whWh^OI&;mYz&15f?jU5 z{-Es@`qI@G`*L1ia(^weU0@NR(gFQ$ok13R78pYuLPJWcSHx@b&yXJahWQ|STT7%k zsBB>s=2vAZR{4pPWA#=j6zH4GB>;3z5!JzEZQ9i=+JAWZ4JYY$vT#{wdBW#Fzv21P zZ+C)z!!yxuVB~B4?rXnMEQ=5b%x40;*VIU4piyEI*s}@jmVa8tg*kkk$*KXZ>9dLu zR;nP?BF>wqPZ%6$tLJB{qqEh)Y;{yvcRE|$$=Mp}Y)vyS9iq;thuIp|vo-xVv(-`X z1SlC@#;z}j`ue~F3KcCA=O!l((yG;i9*e>osXGERk)Y-*Qw|faCn<;=hV(Mnl~0)K9^vNkA*iH* z8Vn;cyec*f#dzfF&JjuX$;tKMgGb)Cso9#y;Dm+;S$`SA>E|H_5MDihrz=B`>7qzK zIIFMK(VW1Nh=PAu%S&l_FZ^>#9_D(B8lwg>D>B5L*rkd3OP^MP2MHw=6QpYCa zA7C`!F)*#U8rez)%fmLoW{!OUZX#39U#A~lNM(>1JB*Rb|0$1N1!f|OjZCBbeZ9MZ zu78<-$*$)w$h25=gw(Gt>Ih@vf?Xx-ps<`66&=TWBcO-`1n|A_<2So9*aZ@sx40CI z=K@aHfpPv@k@Srm=>WE|YmfU0jyO7p5yyPwfr>iVeo>|J%NEGMW~`0?0B7QA|2Y3K z^5p#`XQ|_n{X(6w<)Ao+*`hUI-wo`t?SHYj`pbu6MXRd!SWWP{$INUKR|jpjLPZ8j z`P}$iR*81CD!c>Mu+`S{0n+y9L#&b<*Hw~R&oAux0P^UrA_-X@dMy79=jrJ{ajp~) z`{sxmd|b|SWzhAyu@R1H$;V2bl_CZX@Wo!Y1eB*W+qExbeoa#S`D4*ql^?&xEq@UR zuQ{AJ|7zrG98#y_tvtMsMcyTKI-c}N^(K5$u$#LF%HG+0QoTEi{+AD#8?}5=k@rbO zTll0D6n%s1F*4WV>3B0{E^ASDMpn{;f%=a|2-J6qyuyR#kOJO0b%`m^eg0RJ5&{;C z=QH+G)I#~h&AU6C*xeb)M|U4@dw&3aC{GRv$swu9Au)2G$=|jrh^foy)W;{I!c?&X z-fiNK$729dG^q%uWl7uyFBP$4Dix7Wt5g)A$Tjz#k9GX=?@}FFWfq;fnKW0#)5ST(ThaaLMfzuH3aeT&xW7PJdq>NFNny z!IIr;8mIRZnbBv zjLf+vLbB+M-{;Uh+&)sw&!KQcCVP z20+|O|8&`3>7Tmu{%W6xSARjd?e0ns;4OXlomf#Gsi`aLUrY9vkBewr?IF$zUE)O3 z8CNsotlC~gtNEphdkKkamts^d6}5*bQI1`ZgNG*}_V}Lv5=SYklRY~M_@L^?KLPXH zzbL4S72Z08ap${7k;+efnm5(ZYS`bHxmU!;g}Gw#VSiYZNz{En5Pt!JfBv#tFz|S} ziEL(K!tB!!%~LL1Zw2NCH1|e_eAMTG+X=X&2T5b#x!dP^HGx9;!YS`^zNdv8a zg_RxvR``F1xfCoPdP zP`FcGPqVEs;3~`%<5+H7J)lifx!rHMFxJBEtf;xUIGI*qnt!Z>R$5)ceMhVm9D!jc z3Yb|5_&UNPM(D?bccUg`U3)CqSow`+v6c893(`ZS6u=gQL@2BB>rwOr7cEY!6*s6o z3Bq6g+GYELI%p3`--un*sNC;%ats?9tXm`rx%`>Pr&!2dABB<3fZ9A$1<=$OfI#n* z|E|;M3gRkso`31mmE}__2TlS6QxhB1Y24L{?_E@UPZZZzgEESaW}d<7PG1weX(>g0 zxRAs9=?i#|f=Oy@0E4ZiRre;fRhTl9R-bw$m6^0wW++#s`O~Y+i*>%!nb%ETQe%fU zvGhqhmfix>gC;P&6-%E?#?o70dMlRx$qr0U)d=FU?|(@x9^9bsfh0hKybkMx*{+1k zJsjLV29g!3Loh+(u-PucI*KIBZ?{B~dD~)h%u;CbIbv^TjoQBQsPUDzGCJbPj1Kda zw=z0nn-m5bZ0#^VCu3{82~l?*ucy^)S}lV|c0`7fz69!wYmZRl2mXPF_~ebQ9*wf@ z6Lt2@VSjZ5a}e`V-8Q+=J3RiA$hVBZ@^cs5h_)$ILH#_etF0V z4+HGfL5liCBlTj?{a)L_6Sayjj}>S9`VsNQRv|89TC$&rMOXsAwymuiAY7+zY*xV+ zTb}F#EAF0^XBNp~*|p*nG*j#k?{?2qT~nQ^p?^A6!zbcYwW9R1$b+5&d0oa@K(lNI*LJ0#k~K zMSr+Ea9Vat-i63;hSr%@uer}x96VfCcP-TGEk`4>66AsiaUUuXYJ!C(UkvKx3*e2Q zMk7!!RZs2^yp7xCb~v01`m<$DvRfUG^{9F~3(ex{L*obU9f^EJ07^})3FT)Y?Fa9H zE$P8BzW44C-B95+1W;u75_fasH4~;l|xGv}sljR{iN8LiBvbC~l?I#$I9994=qZBFK-3n#7sLL9q*d8(Hl* zd$Q_VpwE$l1F<ySPPMOM$U3ZV_uNacspc%-Q&O)h+z@LCNGe%>uUa79q=9;5Mji z5wMy=9j~yUzSIOr&>jW|f`7~*IK~bVR5j2#1T_p$Si=B?4Gd7IFhF5b;Ua-f6KjPF zWR3$6YnSG$X_X5Vr?U_4bo1*i8%v>(r&z1}m7S}iWA(BV8A?d1pTETc)XV>n6KfTb zd8K#hE8LX%`E!lLkk#A9W}~?(p$dYK@^V1jW}M}Ff}{*Riu0iAoPVfJ6S(>KXi%l9 zGD(}X^hnRpqom!`i6S~)J*I8_RmU~@xC7UiHa>0VSppqJ!$; zX<|Ca>-DS~lCZ$Xpnn?NUM-DF!ijY(VpG`QWpeZnn0w9RQuN5aS_QjfB)iEo6^Wj= zrZ9)PZ=;>^-qUh>-qCnMS7J@;K*up%s z`dRY$QCjyc^UYH9Eb~3S&5aNt|IK(+j)R&=UPU#mi2ma z7u17|6ll_~Cx5rXbnC}@uBMN-SCe~Tw%tzVY}U`&bUkP7we*`ofwr3&)0GT$CAa8Z zd``V9t>yXk&tG-+9$G8k$LWb3VR_OG(M_Y5t!FoTVwTk1HA1wuVL9J!EB&1J{hXcH z72Ov3P5Yi^8+xkkfU&JP(<6qYWXBkBhFYKH_9I3%a(@^Th!?S_hKUUyWlxByNEZn- zJU}t>MP!5Y0ZrZqvT?EV2r&@R!2jAioW+NTmt4*igX<9Qt1Wtm0rY%S`n8DD4}g%g zo09Pm4+p-$j-o(nbcU8Mao20Ly16p+Mb07y7)79J7JO}DLD6A1+KK&rjUr@e*FMx$eey2NA!88TfGO!d6s^~UqD7hE<4=VA zT7NS6;od`C?Xvt|~py!|m>xqs9(2NNX8Awn7D!}2(PRR?0A&ar7rY5p8w zszGo%!rTSY){C`Zh=$8(TGap4a=;_PR=rsBdmWb#RYk81kAW^TqwuWA<*3^d2lt%z zOuj*&Pl_ZvT-PC?pUOPhlGJ%vucc(kMKL-#>(Q2Y+FD zR5Fbkg(s>No~TiHB2{=Ik9&&ri6U7%%<@G^{!GS_RO=Lk3r4#*6Q~0Qy-8m`AD5}_ zS7e3_ibPKng@Y*vOc%pmLgiKJS-eOx1x#L9Ex8oRiR zvHQEN*yR|p%bFsgvC9=U9-Sbv1^s!a2}mQjTReIUwv&5L5?MLkpQmXXzzzhvON zd`T?)k`T#VJUVVYx?4XQl}%OHjrnNwAirv4nDV%A6l+z;(5q?9l>@yFo;Lc?bAu2b zAR|(a8)$ZJfwA}nL!c2xYa{ID&(B5%Gc_Ncq8$R$ueH?s8p4y0tC$YM?|*jq>Y#`v zGhM7vXMZ@KK^;Yy)_`HcG0H>=`?<3m!h$wj3BGPfMJ62(RW2oPw~*X0^xxKD$A^8S zDO=nr$6*HcuN>bBEuN8R<1deB15dW5rH5Qdk+3or{Uxbo>Y^64PbOo~Y()c3!$v$D zn|J3$&~|JuMt(0wx)&qci+>@iY=-&@sVmdc5TPc8wTuwalVXI3TEmMtyfVRJbHALJD5 zUetp1N0YpNfh^cQrYWJ2q#Y+{QyWjOrMt#Nj)27!tA}3`k_hGXh(;eo;7{~1BbN!5 zQrOyjrrHb6TygRI%XxB2UZC^1zo|xks7xDdJoZcls{x)JY3h|6gilH*3PcHFeo`M( z(L~0>s)VG&x|ArW;eXhzhDExf#Z+eofgXh#7;WUER3iMY^r@SNaJaMUayFp2M`E_t zV-}1atE7}5h`T~jBxlyufhar5NSnta=cJ;^|2|jtSAwrzB(!$jCCz4e=(SDlQ`c45m|xoC?DG9WQuSBWy_VgG&1 z1DiGJ3dX_W9%anxl^qKWavB=s>d+u!0~DD?fwx10aDNRBauyuK81raTaFF)eT!9~S zdepZEq`Oh?|2f9qE!iCDmSSi+J(2Qew{3)Zpfga+;eX`}T`zpx#C*}aNyWomFgEBM zb!?70%%AmhMBf3wiaGC0QNu@@9z^eTJoYm}dNDnndU`mqTTPFjoQ_RSXY0vPNYZr{ zQ9;=#1Wu(*3{|>0hRX3Q(-&34QQBl>R{GFB)91=IdO55MUY6>BU-+CS_Fi!i7f+2fC_QJFlZ<3e`!pTM$+15yP9oW_j5Mcj zpvb+TQv8P0YF}q5JGtWS0fqo`U8|05OCAh!2$o!8bQ)oNHHSRXq(c@+iwAZ{hSp;S zzOay_94MeuxNk!3RepbmGL1Pq?Hxy@Y=6pWyDgt;0OVEx#*n~6OWfM3_IQ z#K$2dMQt!cP`285>u-(TNxHgYmkg4%G^x1h3gpVeI-PS?rjhS7=a(_Cx;xlSZ#vZ> z8ka#iY=-4j>mHtf<#Z#hfB1Y@k-Xy4^#ydg`BR51fR0kxUAT0*K(rv%F)O8}EElTC z`aBzB0$htyEeb<^De_`97rdjSoPRL5Qv*gxtx?firHVzeP4kb13tLlUuf5W}$EQdf z4qa3q?<%^;))umJqMx>fOyk-I9mX?k-P3b27EeTk+D#M08uyA0Bui77uxe15xUG69 z0?O}pmmLL~q7}2y`1&Q%3e%gdN=RSy|3M7Fpi}g&SHNanhnUPI#`iwucYg_Izh59k zg(H1=H3RX`QQNJ)?U=$z$-03QSVFP~TYWOIKcCQCARb?ZryfRx{20cJkwT2S36ZGS zi&3(QJi5PHo5|0p6rK|eO(=!jN=sFc5!UTV9A==!cbS01$qzMXsz7*EsQklB!VrwX z7#hZ;bz9*S3$Dj~Qhy$QPk*;{9((YoCLhxD5tW4IYmETO@ikZ&MJ&hz9i}VjCHdhA z;ViPqC2nAo!NB|#A-sZ5z54v0p(#B5uhK{$GI4p&LmV^onoq^}XUNx_wAXzK=Ep~Q z>5ZD3^*V;C-5^W)x=;Eft`ExGesE(F*Q1~CF>Q}pwioS24+y2k;D4PH$Hp0M{2{sV zhm0B2H$H8_asl3HL)M?SVz>E^hm9IH&rJr^4UsjGtX%cFTITM;3;ue39HBZe)xLz7 zI->R^Tc~|-5EMNT!tu>+jl-`V`sJED89q6Ws8irJ>nZZEk0Gy4e@f}`2I>0U_8!A% zPv5GJQP&7dfE9`+mw(4kGM6W^3On-F&Yj>Vns$La>xBrDRL)1RevybZA{fB9<2#^d8z>0y||2lQ0)&KMW z0%e~;$2yPfNMQ!(Q-7uN_V6QZx$6mqFa#=LN?!n_FrWwnx=HKZ;I_q7$X) z^sE$pPP7$HCLNKY(=91FZBz7_rJQpbUh=pUeZKp?rsz~DI%aLP7Dan%u9;qxeKd91 zB(&U~pi6uu^PD1PcE(4$jt0cM(UOo%Td^d;zjJE@41tv@P=MDx!K@jTTyp z4ANRu!G9|su9hsz3IKuRo29caS%oWTTs`z_u?efYzWK;v5r}|rg#Q0%;-`|({#~N@ zBtA1PsowUcSb-cj;in{o6(LU~z`-tg-24fE{nqFLK^=AzXxL59_m5p;lojAW!&~C@ zW*G26XVQDbqZfVYayVwGD#*A+Z#*u7ZyxJlyMNa~2)SWx70Hw`Hz96|i3#e73C?iG zA~=$vnuo%jbrj0#GvrV4@vd&ZzA$TvKd_^@#rc(@V|&|sfAibH-E@s|BJ%i zX?_lAM2QtBG5?NEiJzGb4WlH`ztt)L#rUvnC^;D6TJ9O)43N&AGCe>=-v)Mr=Ht|0 zH-939-9Xn^0Vn^bmZ1XFjZhoBj{X=$-AMC)sSVQn1*2wV5sh55KkV`!T5F93KCyYh zuMCzjPUHZ^Fz0QvDs+SV`y*2TfmtBry^R6xAa3U3v0_aAchM-UF%QG+u}EYJ8Yb12 zz$$h_`ouL~n%D=aCVtrt~ttpN&OD!~26Jk(gJ3(ahQ8$HlCSaVsM8&_oifW|&-HZloG! z&5RXAvxsEB8YryBAgSG2l#8jK5YIXY2h$$)mwqk0EsDD@p?!<4x8;}T7T)$}X{@0rK61W?y5CpCzD2d7N zt|h~}EoFGOL56pmWq9Xhc(*}@cju_&JTdWBOZ{Y49jFNNpNBi#rZQx7$|}P%bRI;h zk-0v8jhjb4$mjYlv1H=VS8?*Cr4Tmux!-%_RT0E`rx5~27kTpJ2N#+WM1Lr67WwjK z@QGUHH_Mwvb$K&4QQj=!`$!$9QM!QRh@Lfk(5xlC{Y4-2?z5I0 zvzACAZ17OiU_;hYbiQF}(PTY2CJg!HYcp5_h}^0v6~uF6{u*5bGMLw@?D%nKu1B5e zE9DDw`B|LD0ps)j^L3UST7Lt$dY=cUDP($ANXf8C?h2dauFy|Y*d%v_?c}b|PgD3f z$zA8GSv0{2q5)l1<^G&2&N7hbJO&ay-ax`9Yam4pYHD4L+H-EC88)QZ>S{DO=SG^X zu0F}6=}FAsIOWqPT>jqBOR>?GGyi|~aPAJhvtE%dBZJ@lzhoB_k$)v9{%)FmZwR~? zgx9&fZg&yh41arvcBjs`df6J!^al+#7Ljp)i(y;&KEHHiKD~W#?^XxKiY>nZ$s%kc zSr{5X(4Yadl0C!8WKTl_XeE1kGywI#Z>d?H6P(3_W-09M8W}qeg?*wOWT&0eQZ`yI zN9&Giw5kW-MymKvGk^Fp@UAzFer`eTKnG!lE)s!%C2R$e(K{H_kz@n?ohX@9(z2H) zVQ<}?vI2NWW3E zUVo#UFuI5?<&EOUzmW)dyir$$LBqy~n~t3EYWRZ+dh2l7brh{ptEBGIcl#_XSD3xp zo3)@U!c&4vkX5>-l_vGk$1IQU+#bydfc27y8;5vH{V2D(5wHc) ztnq>TeF+pOR4O>M$^`cVR)>$|q7>P~RoR1GH*Hqe!7dH|K-QsmZva$4tG{;*uJq|{ znG(7P;8R2}UM7;~-0iA26;p}<%-YhT8l`m_hNwV^#;9+~xj27faidWU0&Edt#2ku! zJP3_A#-0)lWay~pE%AkFAVc<8f!Q4!O|v82qPN#wft}mi6I^*%YnJTNV2@%-+D;#) zzqOBB^_m(rtSFeMD;Y1*+K7gD!bB_XZMQnP29O(Q2w(un?tm%+^Ls>%Nij{pN6OTG zN;muzp82O}>z{vOWYof$C0a#Cbsgzx>-nL7{w{6qtYpS2%~C|Hh9aC})N)x4k~lGb zx(ocuHj4`F4gu`LozbQjIrXg z8dcw^p`zm!RP;6v6|GYI%($4-=&A z+h|~c$EMu^{3$vQ@TchUz@Ne=3H(VDYkQgnDBO0S_R3CnwR7uD{fxu@WPdRs&BtZ1 zTdk0J{tbVI*DNnT<4_wY`=i)-$j;lxp12hWOYI+=2Vm5tF1ry~HjcDQ;(WIr(g?^r0TQq5Dbm69XejyFiH!$M8hm}u+aMig79 zvo1l|E42vP;G%F zng~B@YJ*z)?E!2t$->Ml@_OfMS#zM6mqnNgw`ZSstisb&Ucq#x7U-vP29J}FCIhQ1 zqB4H~j+6XSk(UyW;>b{+6F~NfG=)p86ku4cDL8__fsY2X1+m~rf@zX{@5msD49%h= zDGx*B7n!S)Oei_3nma;@wCbW}u{R8i(3J)&*_2mNFOyLA_e-1m63DSmgIo)ZVj~VB zDHbYz{Z*m3hn3+U(yVL3`+=+pg2U(QEarb~^7GP$_VcaJ7D4I3!v5jagC_|r%o~P@ z__B4!qx0x^^mrW)pFEVa!xkIUAnr_O=M1+q{Wxel(`V2`&*?B}Yogh^Ll5ovaA1WL z2+Y#4@?0#QNTke|1%gyZN<{d=qc5Wgn%Vs~B9eqDUDazo8&n_q1C;P`Yl{G1kE?(G zbv3ZHR`Z*cotf#BY5FlDT!_4682AU|&1+A030ACLnte6?{l2k>ag3BMT=m^QCp&ym z6TSc7cO231@toQqz~YF3_7Xz6mR+d++q(k=)W3P8E2W)k*Bf~K>F#8`0bgsN$}$#$ z1gs*EV}2?Q<5O;Z%ev8SYT&{sPSSr)r`ru&&tgD<1^aT3QOLVP%T$m%RXFzrfg+h% z`4>3N0b~WYBBpUS7QB`IMGwyL2M7nM&BBq>)}1X{qujS#lAk!P*AU=%d9u~x`h<98 zyrEO_v}XhfLIj=>#4tZUBS8GLyo5q6&45H?$nPoAmHB(_F5;E$J$K)2-8z5%;7W1N z-MDo+O_S9#0=*~Nx5Xc4-v;=$W{)f*9wN@h`9jTepD@u^PddMaM;m({G{PSWL~C3>>2IUk$V|55|8H#!g-1j(E&d zts~-R29fgB56NLYV?|Qi1w|e>TS1Xn%Y#79+3V)beR2cbjm$OELNnWLZa5dJcf9NV z$En_tWE)D1xDB;R{-%x?n4|9|gf7T|UgM5wc?5ixkt*CdJbzY&1cgr^mDRh}ao4(f z*E%ghk`}GfEQg1Y3^jkEP3>Ak?APidSO!*)*|L9i%^N3tMCkiS8ME+8t8xts@UWup zh5|VN$~d9Y-=>;8gf3`m@`N7EJ={=}N1mt|HYeavi~%VzUv_R$7h?$2FD;w6W#^6R zOrt5g=y|8;a*1zJ_qBXQIWIvbq$0B5zA+E>{5Qgh(ku7G9%X;P%EA$yvak3uvBK<% zLT;0=em#vP-5Ri`#%1cXz@bD{59>Ce9J+OzsS`!A85T;~N7i1n>+U#zwL`^MWHe3P zU#%BY!qHBj&Tm_U-q`VGA>qt2@SD`6Ba-!X`Yr?x(r`E7ryp}`qdpVgft6o5;wcrw z3E-%H8!@Uc9ru52!ZMz~1BxNWhJYBJ<-qDFN0kFA)zeB1puTq2!>24Y{r9>=;wa{ zH<8XwLY99E;aM?L#}BHTCw>;fm7W#uI`uV892jEZKK;iVW8vafEFANxLX8qc9M+AB z^sM+142OuVS{H zMU@;l#Xb!CyA;@(^&AMaM8J8ipZr?H#1 zYN^+t`JJ}iv{g&pgXW(lY3BSxv$_wA`X0@yu-KHodX)OCN`S*7)mkHoA|2v%p_rc{ zM`C|ofhstk7UPsCdU2vTbBW>`Ct9&1(TW`jpiFT^^`T%4l~_Jr;|?G^4O=JC!nUN8 z1YOJJ+$s%?Lv6KsAHHBr*?&l)cs)K9o~*0Af$&)qR4dFRC}Kjr8f8GKjIV0Aa#ZbB zkfL-=1X!GG)jG5_U`cn7BovfgV4jOu@H~G_r3wkQrL9l{M;HcP2H!Y@v1;%lZI$RL znJO|D0GN2s{DX=a$ZPU{7Xq7RAAA#{lpv<;vZyF~cv&v{`K!Va!qYl9xn)J(<3!TO z92{F@ggCp98f@5^JIq|t#Fxv^U4={OoI)8I=ljL+NT(`9od@Veu3ekgt_9k)ZfSpg zS**MEs?d6+Q0l?4U0(VAkDku+cGgh z*&;y`%?ZVQZ&dGJ4hyHZZdy4OI=+t*99-sbkQk;WtDI{wpddN~01hq0JWLj9tm>m` z0InZMg;JAGS@k($Y#^E1Y7s1&ku87F;y&SOrsb-9<)uG}>QoZ2Y(Qb?_zx&d_I{Y0 z=Bt51+@xbI&$28xBEl!Wg6CW-4hb{uK#Zn#OelCpBzNz)I!Nrp)d4dVml+=XOqi*H zieQ#3%XVV5>{%J0tAj51Vb!e$#Fj%`aoJg|v^LNj`=()Wb^T&jed}5ku1u(+ zh8b4-M^5Vs!QWi%7oJ-^OCAguy6Vd8%J5c1Ctn?~>h)fC(KQZ0ufJT$wb5D_nDl6>R&O}x9o_1wa4TJ zT>_j@cR)q#+Hy22foXOV(;QY`aP4^}6kk2pFer7XvFR*dIZ8d=UaE7Q=v+ISYiD!a z(%CuJXVKZ)qSTweJKowRxYdFnTCL>FPq1LhfB%1FnCDe312OOdnX3 z#Ae+YO*4&97ck}m9>o3j2FRllsZIXeaU6O%Lf^ZqRr<|_QFdJ;AOfuGZQrdpEKNPa zW(Isc!n)Wiq2!^C!zu#&D0-VgT+Xz1UZ#ECSi_Pw!Me`eP)e&Srn9yyHbs)yDzpuu7wC zD01};i^MVRk5P~{R5dkhBvC5+o9!j-*!YOc+->WWYE0ODliCvIjEx z86`^Lb+!U+5hzyPv$!jma&MJzz@lqM9&gM63^!o|jKc$)U^-A6PPB1ON(POhgmI{4 zw%Tm5LJZGAKyiPrj(X~zqg}FK(i+;q>HtWWKB_dD&J!OOxy@I`6;kbebJ_KE8l1W<9lD%g zs%~Eee8}N)DDO=|mi^qmcIkdD4t;D;oQ7IGkXybN0T2#Ai zRiOnvZ>WDl8!J7>H9bQ>$ZC2{_+IIm=@>c$OA;~bB>Gb_e#~1Z`53iMrkGW=PR6J; zDT47TZL4_B7%~t5oVsuy6YAn1{pPxX>fO=tXHuv7g&&Un$^acgn${!R4)7B zC<;%yQ;|O~gI_J9mEzv}VR$?J_TUy+{#VwYr_q1j+ zp2@Yp^{wE=kZS+<*Deuit>*3+|3ZoDKK`YZr~i-Vyv4dYeHWknoVDsr?|8#w(U`8G zU$1|=eV<64?%F#Je%rG?`|MAD#aqyA|L8;ay_F#d{)>-4=PhqRlx*SNQt}ToAg=w9 z_rC1m-W%TaoVQ&2wwJy7!uPDb|2g-)<=Xgff8Ymy@CW};-WI%tw7d4Jzw*D&{^dKR z-N&Ne`u-Ok`3aotMc}F%h`1_swb8NBt()6lYd7R8V;Cy}4JkX|hz2th{>q{Mj zK;PKlo)`1a^^4V`(_>#{^s$ai>i&Cv{Vmx&jXedPU}dx<{sBe4EdkswIs@;JQ60(k zkp06b3{QpTBs0ynO}Ay_Z+iORokjiOv3CV`-i8TSiSH3j`QW{GLtm{goW8466ifWq z{d#T&|MBg?N!4!r%}$>_bSLDl`eT3hl`Fwlvv_5+;_f=B$#uc4t*1X0+&1y)tGMBs z&iIZ*eo9V1`dDx`Z{)xD;$u|HtmUuEfWBrJtmt>L4rNlk_6t}7RbscEWg&6dnO_K2 z^ZQ(({-c+F5$Qvicc`-H5H(w!B7T`u<-J>m_~68h-Mw+j!WHMozF}$t{C0m=5uRka zq4`CmhrZS6^}Fu=brIfOOZ`iHDaux>SLT1nU|FmF#CKiVP*l-a55wBgLQNyoDD4#s zjYGW8#otnjq!hli3?E#PUi=#&wcicKn2-n);OFX<)tg9>53cOH=OlJ0D0++tV2beDz=@x+)#HB+*zx}H6Emd-k?u!gxJAH5p?7TR~U}lYEU;3U#YfiR|VmfKUK9OQhYG=}LU^`P7x-{DpEz;!Ch$ zMn9zYkE{Rr>7V(N^h)Y?#Q%*?UKQoj2BX{pO?EZ(F%1rp0?|4xX$*hRkNe|~Gm@PPb8m46Fk*zlCB z`p+mdtEl1aK}XG?qpg1jEp)7drkWJxAB!|vyO344MY4bTxE51JWNV-=+Fvus zhFz8#*36thjry#m8+la5Ib!KXJ|P8KISUyGg=_3#b>H25huq|J$ZEuhZEy>jcOt?@ z?eZV7gTGm;NAGj>Vr81F`DBK3*q9YB;U6Ygq!Ok4k7HIgSByK^0C^eG+XTDCH9^>L zxIMwuifj37L$QB5R))SZAMyC3sy8kZ;_a33O&SMoTRBDr$9VApRNQ=U)RTqimYo%M z4;9hgZ9_%T$WeF*sQjXS?}O~mlw*xN=zJwAkXjYLI`C7gEX*+^dd@FjlP4H~(P*W1#r`AYuaE!9530P0r zseXTFnsWkyxl=`VRF6IeZ3a0jeYPn&CytXt(W82N;@XF&uRFJEt!!Es03}^Td9gya zlihLB9VW=q3Dv%3Y{;~Qvs;=0GdpS!5y*AYGV`&Pndd!XZ*)qlbs(O=^FwG9f|7@K zP`*HKk`ppG6to*=S}sK+&o@?yxiPl%ve6G*PZ&M`d@A8Jrp3k($ znj9VFm}3^=&UcGo*dw~hABGF&d-L~}U*+HDQzd-H17P6y zhiAvs`@aN3Z(lb0r3(fgKr4U2d#T14jApcmM&N0Kk*%;&95R?kvdBC?A}Ci0~oQ55<)4a8^2^o=)FPx}O$OnF9Zl zCBc0H?+8+{MD~=!9fO;hNnd|O{2bb6=WnVd3~%;8-?k0dJ(a6OZW$xd+EcNjde|Jf z@r|mE>0+Y9!9cTmW0@06H4q}F(32V(B5MAT%}~c;%9thsTWK5R#K`eN!ehhq+aPRP z%jRjDbEfBvl*T8kA%`(ghLVP-R~mtgle%Zxf$rc4k(+;INU=P{nOA@1y(GJal=|>f z+3KO}-2F{m^fElsQZRju^k@1S>H950Nj5poQeshCh4dLKoL;yG%h@|oI^C+HZ_|<= z+ltvciqyRnrnL0*C&P7@FL?1Yq1T20-vJ&0D+`&pKuxWxD8H zEwKrc&J1cQb<3HP<*e%Yk&KQ)fINB@6&GetOQYG-ciw;d?ec%H*LD`{xbu0Dw*hq5 z%8XD20r;9pMNWl8Y}cgWri`}vUlv5qXcivj7zj(p=^j^4AFMF1k1TLk<8(dlQ=rxJ z+=N^-@zkOW+Hz5Fz93FPyMm9&Mb_nwa?ukCCzV;bFN78G-$m5BtH3HFK(7$Z1vm_g zh!zB#d-_1xQ>A~YvmXS4ps4aDnw2;4F~Hh+sVUmmkdtN3Qcq{7IPn}-bC z;Kf^a@SJA3-N9*fYzdD-++TYAqE?Rx;NN8U*!@ST3R8czVoLknp-Y*)-97AU+{aof z1knX%AzMZqqTDwU=8G9$aVS5o*f+6CPI?@(I7GzW;uQKyCH(ki|2x3`EP?mIyxQWd3QFsETb@$6Dnz&@wnhnEg%?b}hhlNsDK}%GtZs zplu);AY@Zlo2Gi>Teg znuOA1%9=zQn^>Dj+HAKr@uoJ`NMzKtYROt9kT*C5lO1hU6<2|URn*bZ4m%oZM?38n z)&%n3lr@PqHnBF5wApTL;!SO=QQgt7)lt+8WI=z3BDvnXu0sZ?T(4MC1h!#G9?PDe zuZu0si`?0vH46ezLV^yiU&Jw&5=B_?$O)TJ_#;GDR58=Feme!Rz-kt-nF(TD1t*5{ zf=;P`i6Gu??Ao(RQ%RhE4}01j>vNX%?24Nj?&c@;jkB7Du*iIx3X#wFTgMiu0BQk0aw3Q44PJ9)5@Af z(rjvDv#8a~+Qrgt`^I*0yPY*mJS710BasG~!HlQ}B-QSxN}lcRr&@rNxk^pVB@*@fszdQ%s4z`Zc3WUOV@Wrix6teNS~%!j}wL^#ppTyayuv zl{4QR8#GOs@p&z)Z329{Vj*n^TX-saQZeJfY$Kd&npJUWk1U^HP%Fl z1J<{$=6)vGhCxnqd?z`eA|FjL-_8`?@H!dthmf_i>}FwylDeZ(X#f*s&FaIo|={X?4euqa9>{(x@L3y#bdnRJXy zHk{3E66qL;Y&e@I$fINAvEgh!3u$Dd?paqjJf{^7&uxXnv#l`W7SFn@iKl=tBXtS~ z!D)hYQ%02Y1|~EMS~++ikS&QmVeGOfKu&HBbL(ayW=nf00fZV+%1|xO{)`d z3CdXb=UptB;2;;pE2rIEx6)@!n-ue;76@e^O*{9joPU<)Ma1YOX|UmnXyS@cu9%W5 z+LuHdFNr5EiR6;)xTJkeyz!c3;u=v$R+e~8`=VsyMd`#viCpv)y{LUvy78*c#8s(W z^)$PxeOYJYW!;I(I&#@F{AKOyx*M#Wvtlsn^Du?jqage6 zLgKz=kA%;Tnf(>nA%AzuC`40J)bh>|<)r3(GXk-G^&KLm@2iRdq*)mnv&DZhmy29ys__hqNck7=#Y0hQ!ijvubu;GwHfIJJE~)-BMa!4gr{G+SI5?zY0Ot(>CHDga~Z|AH{npq{Rx%6&rX7!+MmgR57% zQC$7$Z(HqxXE23G;eHVy{&M{K<3H^Px-Y-7*S`G9E1fF3C#r{jE*jJHl0PH!A@FJC zJ=|82g&ytQT974ua*R>15TPU$qR}&j@PCRAH_&D&K0n>%GF`Ou1|uu9p!6HnAo%$g zT$w_f6pHGYL7nB5q{sV|J-=}_%ot??BW_UrO`!O(?#Lo)m`-g#>|wNv+KV`T>3cD? zR(1)O*p!ylfO-T({cTYFU2{v85Jgo5{K*;Nn9L->VYRBPs+z0NBx-*oN(IbpDSu4l z@O~w%A<%`r(*ogZtufZD2BSItpvZiw7ADqg5dx|+=t+AGa;BR2jqYDq zQnWs|h!MU{MR{hx-}Cm)Zf#~er`yC61${IojlU6$4thW`ZIb$M-!hEu zgTm@P6KZnfWJME`^+c>?*^^V=tAB7tZJd*svlMHM#su-5jnC!nLF0}Q{$Vbd=Xe*) z+bv7n+%4ra-7DS;lZ#3hKTyux`E|I{Cs|;z_QXuzDugfE;hjbPwZjhFoM;hPSKnUy zfJ9fJO}JfV(}p@OSvT#A7G(e=M7UyNmfmYmfHsud{?I4A&qm&9`D{Emn16g8@JF>6 zA72jW%RYTs)|WzG=Jh47x*|66tx?z+3y7RkWJEFnl)#i)2xGXir2#HHfh=rY5}m zk`A#MaplKMoBPNZiqb1l9KYL2g%zR&!r)Jo$MW%6KCWD!TvWsqf_>{$i> zJ;8V+n3B(JYWqyNY|n77HN$-*91e7bJM9@p9osVF3}+@C*bHYIXE-~*8D@IbmNT5G zf3?}lb6f4?ZGI=uJsBJMc|5Jou#vHz+{p138#!rhL}xT_jgTO z1GCST*_^Fg{%cGbKNjD$ep~g8hwFY>BaXDrV!Ll*%o?UT`;d%jVA&Q)E3+Z4Qxw3j zG_=Ul4zMjSdm{ErDSM?cJvgGnpCGc90mGV055q&bede;za#p zhI<s#OYzTfXQIjyGmySdAvcr+{XD$$A>p6=g zZ9(Ry=UihjMsr|i*_LP@Y}JnlQn$b;E}D5Cj!`IBolND+!%8?H@9G30++l5JC#K)9 z^-P2U0DsAGrjEdJ+y@o^s-WjJQ%{=xaTi5#4pf{8S2Bf5C15-6?kV^b04*j!(B-0ig3xeFo__tUk; zMwxS~%dI;sx9-~ImX~iTwq7;tZfOx;xw?)QOMj3>vBkH`64LWl!LD}p+JIEr+G~rz zE7bt6B3nFj6DupgtPU%)BPeG_Py`E*Q6N+a4NUBh-r5)M1(jEM{Avt!KDMA3 zfqYBE`}8L^>1?A~6JZBEoPYVBfLiqJe+7LrWiEi$pi$3i2N?w-Ydju|*yP*#&1-^I z(0^(L;kT(?A z+2vGeamq0Ol&ePij@zEn3A`OId+n_dM0%ydI#h2}=_i80yl9q&T|hnz^G_7lb2Ra1 zje?;-CjBK1r{1h`5X6HV8!%Y&Hp@qj4S%j+baE1*+U8~|nR9o|iNMa?@Ymt@zS9+f zt;%`=seWl!Xy5Qw_b5J=?P7rb_<0v-x0Lic;f`(5ID-5(>C#Y5+^?M#A@Ym*#k6sg ztwYTrKI{QyH%Zr{=@qIDObi&YUE|9t(!N8FHHawRLnij&r8g+eo2iajAd!QalX^c|LtB^2iwY;`5X7Th9Yqc zgRX17YnU-&lJXQis#CH2*Z|ka5P$6ihUTCMV~C@Gj1V1^lcA^D4XIHK->3$WTg#ROuBM<(+{i_wXO!HPKA~>+>ARMe zQqj8TkpoS9s=M^|H*fju^2Pk;q!P^o({c_o z>_Y%~8)Wd{Y8mv|z4<+#%71_5Q!s!Z6cxNjds;1_*_!Zt+m!AQ3mm@OrVGF&tUX4f z(v_cm=+SaPxlq;b-h8a1_(PaWN9Qqtz5L2!IC+35X+oOu6`5^U%}b>oeL(i$WS|o* z<|p7EKU~0gwEzMb)=ASL&GLJB{TKpA;qjvSQ;?sSm+#SQf!Qz?xHQtG`MDUB(m;rk?|9;MVbELW6L+!#Vi z!$L|$bfj~xf-EhQQc4>mSRxTIk>;c$sw4=uSWVGxC%IlO-N*Iv!3Qp=-j*7KY$9@u zJq%HU?{X*2gZ&01w11*>01AD%iW%wpEjw7$B@Gu}X7y!8Uow5!s4pou1)2tC`+0n5 zntHmNEE)k6^c~i2xS?F)raFV*aSpWq%#ZVmNU6B7-WAZ~wtB zKWp_MmOWevA%ulrRUsv zyxWp5z4(GX-+Ne3EVBcx>cT@hb@HUC}iA`*W~ze-5iF->P+}?$2iB3zzTDt7I@@T)0(#m=X)Do2Y^Kl;?O|I*q|V|t;whCGZ&Z{L2_M&q20&nbAm z)VFKu)0)~HO8w0hsZVR_J2bU7l=?4Lq`pH_e@;{TL#e;EBK7Aq_2)HpFqHc5SET;D zroK~Chks@2>}q<(4-!g>q_RR};eJ|{;Y(u9OWyhHCFLDP_U@Nl~z!;UJ zHBKtMvq2;#3-we6Cz%B2{!3@kbuA6w8`vJpL`m}d8=P^1FENyX0XJYt2@G{G0~pX$ zaDS(mNE8ruDj>3kp^2bvR9uiP2t!av!vuhUzJ{28)mmuR;hL2i!c^Hc(yX;#!4tN0 z8s;Glv)l#xSG;WP#QjbR43!ypJmHIGzcYrwP}K6WZxCn>bknS2sqn$$}}L z8)zf?s*VEFZ0s-tV4L99(b}21no1tT^$jZNvyzUwxiF$1hz}l$P~V!cs9-#(pwH$k zt6;1Z477qFV1!vgILg#94n-a5>Au%SkfL<*hRo^hwKpWn^y?S=(JA2cbKX!%_kZux zW^4eqh%}=e>D|+$nk{$PN&o_^X&KGH0iq9)Fzf3_fK;pJpqcWS87&TL-5J9qj=;MI+)g7Fzw* z%L12|z=w#qLbIW|uJHHhprQlNc~Zv0;yaJGo-W|6c~7sfuApnMvq?;4dA63hhZ%Gv z$!ZJ~OY$qF-1Iknoyb-zDenIY-1P3_R=TxAl3$CSalAMsTRG>s!RNnJUw_C_E}eIo zGi#!qE>&=pOM434Q54p&wHUgBIk+m`!}riZ;1XKenh%CJXAb#W{~bonXbw(8LroxC9L>!X?`X!^Z$>0n6bhuXHlTD zh>RPv`r{U7#OMUoW(C&}Sf^}OP;FK)+^pbGk@n0W!7`Ge_X1->=zlQ4w|94gAF0)h;Z}*9+yRkO zrH@JEH2lbb&#BVY-$JqG}OZTooc7U!4=giZhZMX{Z&XDW`*#HIS%H2G1h55+$s>IQJF`K~vYNUDoBI zYp559Rm}9{)t1v-v<*{DeT({{wCR24wa3)GB8I-JAvc`}-+wot$Xo4}`qY_)1G=n@ zrYk;JHU_MOCjFvGY#;GHRcepu@g_XwqI`C~*BJ-NjBK^HWHuD4@m;o@4;QF}$w9-% z(pqP1KFI(L=vJ2ID2Uf6uGWKmCW#@ucnPJoMD=lhE;x;E8 zn}3!)_;W-oS|+0SNQ2Rg*DBih9_tAD@lOm{6t7%QJ2=wFx_b}wX8HAQhrVKWJNWRL z-2vU9q`*ZQ!)Q^Dh)_vI&E#;-3rm^POK(V1Fu8w~Z+}E&-g!_tS#I?J=JH36Tl|EB zWG&w;Q!T%B>DDN#DK;6Re^2Bu-LIFm5s>I3^kggl`q$wqll9VVs06>BEx(?XuZx;h zSJS8p_g|f%we!r-sOoBsnuhcRt@vF?msk7R{CPHw#)TjzP_ZNWOC<0WbAOayigxW% zB*8WS=YQJSo)Kfrz*_FzH2gVQ_PJhs4i!7Xg$k{d?2$$`A{|dXMLOHaaREdZW27&V zmyN)!OK7Ruq%(%~1x*o;A2{Q|dvFqh)KGYhBx@XK1Q3g;(}a~OkXa>@uKpwPj%7Dc zQiDD=6W9m?Mkc~*D$ZgYVlYLsCTC$&W+7;Ovww-Ksq1XxKzl-pp4?%1dL(KY8ZaXq zlE*IlqTJ3JCvK8ffFRP%CV<-5++o!X#9lG?(5T({%?p^O0UcHoy0LLk8Lq^6ozb4( zgJGDi2xyki#;8HR(qW0LNc=dX0Y`pT957X7yjooY(Bn|$!LB5Nig_+cU{Gr1zxFJ| zHGdUxCE+JFOHP++I;%)$5+T-*Yy-OB$-B*5kK2*9b+dlCk!vvm+VLs#78x|+%km8V zBi4J|p`+qVXR1KV|JaSCLZIK>_~eWEjWV}y&dM|&KU%)GtWRS{nEE~5T_qj68_CL& zgL}sAE;-jWWE-?-Ca}BS={5nsGk~x=a(`y^&|fnQbR!HD%`;Pf+P(DjLwRjJf9-Fq zzIKV-Wlk5FjO^Q(k$W9Dz4BV$WWdMmZVRAqHenh#wQ4<9<_E6BdAn<$?tn>H=ZHM_ z5FFs`6ZzB1!Q4Z35o933p*}X8TcjkDw*926C4;uvtF+A>(Kh1cqa~Z(ucjn>?SBml z9kwMu_frcx1L`O8rEK9QJ&(re%MPNWjs6+0idD2GhE1!g)5KI2M4FY1B1-P_?7;At zLG@f@jG-I{f7ia+;|Isjyo9@fm)~KaJI~l~xv}%fo*|>01Ywfe&D2HMMi_CVEb%}s zRnL9uQR(+>MVXrKP^mqx{(w&!5`V_@;!R++$kZQt9w|N}A13F4%c`iQIO)_Cz&SF+ z)so^#%*#8rA%OWi~Sk-*EY!_H-8@CIgKgJg-H5H^nW|Z+ny3A!RVzEt)ebC3 zu#`25RZD(r%C0SH*csG27%X>KnJna;cweX9%lw{be75R;fd@@F==$hq4$-7RaJ^WgS4R#}Q8oeG!CIw-PMW}8j{bUcP*og*kC(j_kYLEoR;BM%J>!}OjM3i!rW>R?r_(cORk!BU7{s@OG{Fu@q7`I zgi^3(x=H@HtDKK;$)i%rqeAE5lpFxUI^|A*B8uz6q++GPjnC7T>`Zjn9Z zh({Ilb(c{Hu0c6wOj%5J+|^bGmyC@qbd|;+)R6dQOia$B#KC zt(?={Lq*y%g9K-sAPkyQw zq81TtZG|*{0f$JdlJzRmTuhiq#rO-hSudOW6y$HC%I$Cga;_L!k4NRNRWDbV=3uhx z3NJd((5&zl@!2o(un}zHf$0_5CE5eJei|hJljFFqf`5_HL_dMGJ)!1d5Z9{m)Q+ZZEgv@HvtpTS zLzpg*rP;J}%*)-X%{JGvMsKh<`jwnN#JM7Cqe7F0nP1J?AKnkSIC>_mvnb(1MXwGm zf9A<7&3_tn0`T(h>#SbUws)*|-MDwE3c!W;-*~Y9#=8H;L;J5|_TQCiFLz(3viq*4 z_Xb0HucvC8?!Ni$c7B^(XlK(>B1gtmLGp?Lstvja$~I%UE^gPfdurA0sSOwHYSF<^ z(FKofMPpnsTqYl2hjF;9Vz_*>RBTo-cTOJ0=YI|Dg1+v8*2wwf>m(u=WAcsEZY~;w zWO`85G!M7=^#U;hO3{P@x32eXG{mFjgY**J-VRLxy-s===`SM?7EYkVG1&!*6@XMX2itWx7#tRrI-yBX zyMM#Ncs7!($<0t9HbUOY)}Vxk_<3B(9--jX%{bTd7hvTd&ss*r>ZO8LA1HW z#yQExG0q7jO>|<(!Q5xjDuW6f7~G(Eoe)YxQmH>j>o6|rhw4w@7PM(u{bOmDqI9=3 z%Xw8Ik1J5<3z#AzKBoRwx#d}vEl=xT2Y*U3cD|PGe4g%n!}U*!`sbJDyK@kdTz2)e z{C@@hhoLG3lCYe2rxhqd*`xHP6q7eFH4E~O0%M9QCUudZoV>wc@;X{GM;91Jw+siw z%7x*WFfy0*o1WqSVlhsom_$)G(SH1#In`1eEk&1oN0)u4n_TW#q$*vW*GEARs(*Po zYs*WOVy&^E>>SSWBZDmM^=0{yVv!xy;;}VmIW}mqR<7-E$p{&rUs*ED!?FciN>Q(? zhePvmw$2unXJ}tn#8_9vqD4BOmJ(p=0ye5Ps4lY0C;JH-l8h3wH?X0k7m~B0KT_?F zH-I#5vg0YiDpJe(x~L`FIIHUdV1KFFjI5u38!T1()!#%u=&F5=tM;hsUBQc&+L~qo z#J{ePHIdd8a&U#|HE$mft7IZBfTl~{UB3UOY2y|!Bp^WNL^$)R0y13WGSTDK<*2d4 z(XA{07b|}i#8ccZR}|?%-&+kX+JAK9a1 zp^wrZGaDwYdl5FWV6ejv39*#n_2E8&JSO`2JL-nXjx_gKOm9=-$NTw`y_dH**+ifG z83FbY9FDNEU)fVd0Nwyj`UztfqfgX{URInpYKCNELJFrVM?~qdq}0vaA3oluOXd;W)A{hk z6lFNwjWAHl{L&zgAn*Bo(5L%kBQ(HN#TSN_BF^i*^ox#OrMziKN{r@=d!qc@*>mSk zE+{BeLHuQK%7N8#oiUq`5?ay|f1hYd^5ZXpZ`m%Gu5F_-TYQJMv45n=Z0MLlq_-^U zApyLh(>+$26p-XjvD-?$iN0tjpHyZ*dtU(v?-+1+x`NSM%dcHEg1YG*dDBvc_cqb! z4uX>p>Y=0N_T;Z@GXJUHrcFbntzD1%6$P_U_v|C8rVJTay^#i1f4PA*P#)A;4}Yc^heG`#GCSR!ByYIDEY+!2pkRYPB;VY7INi!?T{xI}N}gy^ zz>}4&qQwSdJfq&M1IG$$;8UiAufi(qHJ18Sw35*t6>9>Jt9Vqju%^iB z_dzv`OzI2l8NS*_ECog3L4|~a9|JXAFs<0~m6MC%p)Gctuz%cf!oiMH9xYupwK_UM z>>)F}UopcMW-?pNWB|x`Bq&WxX4?!$Z<`_gqK}(R6UGZ{nXgyQrMg;FDkuw}2+Pg| zEP=^!rP(#mgJjxF6;LRHqYJJOeY5~bf~1t>3(C0vO@k(Qy|Tgap-3O{G#N5{@_U%v z*Cz&JFS*6B-G9YG*|san_A^%Q=60$3D5i8N-CVjmwo13%y+uP?faUg#u>tF14^5v? zl7ozAbIx2DGyA+5yIotYKO8K#dq(pw@^vcN{Wo>*0&Q7Uoe8hCALq5tId|V%w;tSE z>OR|2E>KlelS)Af5^C39Rkt31C4!0hGe(<{WDIkPbbq{MNpv)DFM?QYe9%Z6^`}iy z(t-v$WruDb2~rqMutTRSza&jsG!;b!`HJ2PdHVFV;K%u{Mk?yt0@78V0bvsCOl$BnV z;lD-QgLP(&Vv2u_+ny;6;=$$@^9VZ7;K~wfNuUi z@7b!gzCQFpj6+>} zDzp9c(YWl^=h>}=1^TZ=V~d-(rjWUO?qMR5DbfCt(HO_GDPTv6f=066n`ixhw<55Gfh3K*?~~0 zT`qsGDt;8Ho+wQyoP(YQ>2Xth8YJ8qxc#C!wi98sumC! zra4rTy|U4$c0qkVeZ=M_av*xY@fE+3ne-ROsN}u@e^k4-(C&>AkBWBxEVcXOyRlv7 zROM7tjIJ}kX?19}<={A{g3@NPwAFbRfcbyAD$+Z_rVm)1Q_kv6zOG`l2PA8x%&ka*!ViYrorkQnTJH&JksAR^5qK{fG+lBI|XlNxeQ2!e{i?9|^oC25X8{wNc z24JUE*40=6ZZXt;DhPEagBxlUYOgc70xJ`p#tCLkL;1|n9wyH|6M+da?g7D4V`+QfIw#G$Bop(=gYxCN9dsd< z#voCVVo#?_2wq4`;C4?9h`kkZ0p!pMkr3el$GnngFZ+HT*M44!eje{wgy4^t9lUbT z!FF*6qnR+$3O)07hrKTN#(T8w9p$JbfUaY>cQq35=hIB&HXCA$`6bS$|&q~ z;SrOnF;x*yvH+Fx)FS&!R-aDZZe2Pu( zqYRTK<)O>BlW{qQ+!R-rNoukz7)v~uLQ~bOrK+3!w^q<7>B{wp3Om29l}nULXpy_Z zI@^7^o8}EWV6MWfZu?WEI*8lqdQz88Z_AV{lNe!j@Sqvj&CLVi$io2Ayh117|%^IAARc??VjUdK)M;7m^#kirBCq!;}w2 zP1vRQFnrOGiQfT6Or|0*Vn`hhaF{I1UdM-J%MD@iQY`@6Ca_^0c_B6|05&YhI=w_M zPZS%5+ldVefDM!4fDLQl-h;VZn<>N-)bpJs=rFQ8%6JR%}&6(0W)v9`@ zTEin#Q=e$8K2e^qqyX$~VR^z@GW268zA~dm4gDgYb4?#Grok$U3!J3=iv`wBZ!Y-) zi71Jkv3++ZoFb!|&IEr#1hw~N8ld;9(*V8BY0%bbATwrY8nhK6*v2$SKzrv{&y&#* z!N4a+Ul28#dr+MUkES}LGzbY9Q&V1uq!Xc{Z3aV*gUm09=4=O}9r)1>7F#xAwQL{@ zVD;=5SC3Tjuw}!lWutyVPoN)dGc?+EXtYgraE6_oI@%?=uQGqy)dKH;wWYDzBm}*Zn1r1jRI!63jwh4(sxy&7$!J zQs!VIDptzI_5FYUrRR_0Km5Nq2{w!CH5``q4cRR@RBZyL`E|Nm?Q4N(VS$=jEj*RY z#3_c}<2{qBzijhwtm52@ah-p#wl@HUpvA9~X{h07(g_X= z6zLI_S1_TY6zO0=23Q%9YF{(y$E|Nvt_@IU8wkLa@ibJPN$Lr0oJK|CY4=&P`@<<;@wig) zcUYd~26BHqu2y`}#$DHqJJF5%9p2R5!5%`VeJrO&js0mrp>IRUy$Gt5x7o*8H*2ZQ z9;~R08R2Xq>z@HLXoe@k%xIr_|(DR;PbWBA8J#>FZ2fBxl@{O{JDjr53SZ zz!~BhE!|*SQbcumG<111s>`D`ygX`dc{E+|jdFQ37A+5Vg)WbVUml8?atDeM8U;J1 z$f;|KbgmeG)5RK7+^975sF&s}?)S6ZM$A+Rb?I~8I_l%Og zispaHphy%82Z7c^fS;Nd2jwnc!PK&P`U)*Js1_Rx8<^`uSYC%9UZCMMNEGwqO@?6w zc%+Q>C3?ve*s6kx?G2Tpw!Rjdn0L7Zt&r8a!c39z1{L?MxV2SwOb>6lY7;r&t|%tCQQxt<{aC zTIem7();9vIs>)Vxh(V+TM7y9kPL?$lBt`%br%A>Oge#{LWR+*TxK?Rl>9D@V(3xT zsa6qmFTu%cxY$9Is4@}`q?mQEfl)I6Cri?Mmovbs6sy+aAB^9vPEw6U%2r#e@ehBd z+WTg>(BUCH30%z=8dnP)S!8miMJ7W3;aneF$#gQ}ee`vV|#HvP60eFz!0rep-9+n+|_sekh! zU}v8W5d0XB6!so)*Vv?IGb)M%UD1DLkiNO2K0oLCY^lH{bl%O8zC2c zH4&zoG86p0O!Fne9r!^xEEHdc2?<2nYBiTTv$S8*mbFAROI?^rX|kyyo}pf*4YgI{ z4SwS@DL9Cilc{+;5Vi9AA4F4+OH;2PZV=}CGCgd>b8tVE`ng@CpNAdxYN#I3JFq>AuJZxBrkjG>-S@Y` zrYEm=g~g>MLH@k_c5B#2kY;}YLseJJQ<#F9or1{|n}{~3YnT*%${k%$2fg7)j4T6C z#xw(7M+tB0Y80exaMBqCW$~FSIwBp1t%H+8=GOr$b6-va&N|VN4*bA>Ckc;duhR1C zL*-AP;EmDBfNhdt66&Dt`PBj zGC2r#xg_TTMOc$9y5RMd!_asnlckM-`X&bKE&%e9+;%&Q8X`#TFZYXUs7+pvKDt%ogJJN z&AcL==#IVooO54UbvR7;ce0K;FH1&9pihW#lf(jz74Y!<90BF?dSC>J4AYXDk$o+o%LBWJsh^z4?QVlr?x~0Jv=VeY4r?J zH~IuSgaDOXaZ!KA7EEXyjUsWgWt)`hiEV08`~DmGGb?IQ(lgFws{url9@)b^Fk+7f z>Y@(dqOLJRAi^&pHc3&UnKFdi%URo)L>A;;W5I-CO3a5h#{<$@Fv`!Tb6)yxxuwX zICmfJI>))e4~7-MMP{cVUamq9Wyyh@>=s0|?B5hz1#JOt9-F>-DydistXlb?2#_=L zn4ue`xEK1oO*c;IhHN}C&d;2?;Vf;OBUQ*(Z>48(_15QKc;SUH|N5HgyL&|I+{cn+ zVO;>>RQ!J#w^9^5BPYsYp1y+?9gD@+zeWGHM{IE#5dfh|N38<_zev-1F5ydsRr21i z8pmb8sc7|PPDNtSAi(UXsW`wzxT)xwR2lHVNvdB(33<$g-%+&MSf)OjrsBa5Nm{ zi;y(=_Uh_V)uJ5a+_)g>w$4*26*4>+lxoXTWfODB&twy6pPgXjXJldC^b|n3Wo`$P z{wKTLC9gdf3->m#>gjy-h2bF@ zryqY)m$FQ;3&Rv^VKo-PD~6;}r1FpXF=gz>D{D-IYP>Z-THSSKVp?xigKW6Q6c2q5 z9-LNgm4nYuof^8PGVkOf!rMpByBoj4LL80X$N~`LADy^>ucClc)FF@}>LZJo)jYPg z?=t^7SsE%F4!U7mg*~G&4efxKui>s~O_P5+d@pDEsN(3jY-T|&Q{}a=ji;ZEIy1^V zC{5fW?_=VRVLvO5{p&FO9l6#WuAmhBf*!T5BDx9;&KvX#ILGDA4_L}B5m+CvkPllH zi=DSo&bkc?J{6mAI@WtMct~04S1g@_PRhvpOWbMj0DxL z%gtcRYNmHY5GGDqWP@J&XXZ+Lvqs9J4%o`MB@y0NQ(OAwvUdOb)8v1J2qJ$n2wo(z zTMW~DQz(WbslFirKHPK^;k-%K9nbb$^);mb8E{bt)!STdF?SxaAj36780eM7r;4;S>6bO>@Md#mqS&VY`6U`Q zlJ?7d7Z#6v3xkbaCj59bReZ-xxXe$wz5Tl_(Th7wspGJ&tu?0bVF zG%Fe?Vn*utYTeBmdIa{BA+`)Pw`I*OYM%J2UB*iBG}FRLldttW!+hHC-@csJ5=vZI zQf@;3Gt<~=ug5HTDQo#^D&fUnJ*rQK)`|RJJ%)8zormSpC(I;M?YDoZ&jHb!nQ7ox zI467M!*IHwjZ#iWPs+gptV)>6H*GanQX%XmLqF!LWea`bg&S^Sm8N^E=`m5gngRH@ zIa`hCufgp4dF%Y!Z@Q3g78WwFq&1;rK1mMd!`7i=MQpNmTqm9BtlP6REy$eZ+16PC zu86kiY@Q*jHtAVq>AQd7@{xT&+Eq7A&B&qo_Y$RfO-5zS3q725c*jyhpsbx~JnSkt zhRN17llnU$0N0DS$#zx6N*>|bC;Rzjq8zX*>*YV+BfY-E0z&R2v~m` zR0gz%Zd6Od26-9RP}c~)<3>ipUHHfl2b{q^l8wp2&HCwsmVM3|6_ehY16FJ|2oVOl zJ;MiVLjcP9SMi#)P;Eg(&e_0tg zGda<2!$;&^<1n;ayf|@*!Ip%Ome|V|lOZKaS!d zHkD6lvyoVBYaH1*Ffw^ktW?Irnc!x2;#8=>%w8Zz*o;S5VAFkMgKH(nI9lAwU{Nar z-^u{3geVHwO0tp+H*&H>}l01JI zaOG4ch^&mG+FgH4jqIq-jKTfO6TP}(HQp2)tKM?V-NLCUdmx3zB!$MZs?b=*&O-&3 zEfF8JA@QNYyXKNlXnf|7_-LF&eAJeRk6J~1=sdNSUdkzAx|cXcCIHoOORSrT_zU|2ra;y_{q-4n^SUJi561EZp55+}&P! zHyi-P?RUwTJ?EzV53I^>#8*I;J?*CdcktTX1jkhaC;a1XsXw8^^Cbw7|0%^@yi8F{x z%u76iJ!wqAE_DUFT%c$n-7&RVo&d$!M0ifK>C=H~Pm@&fVzu=TYVZ{>j@7eq9|Ref zn2dOU$ylaXhhP+8vB@4 z%a~PKm?MYyTxT@;I3|B>WaKbl#q~TWDKnW>gc7X=ia^${;b_MpDP4{{KHhs|%}c-$d2{U6o9u;-ozQ=m@~|0{Vo$S_hmGen zY4jkE+jR2Y95~$$8S9r9|BlM{LIBx3s^k9*G9^02gFOfE5`=XGEBFmKyxMO)#IJ zy?^-rwln*;K<~3J3?ge8-uhClYlHOdx_5-T_6$PkOS5e?He+36RHZZxzbh z**lAy z7xnK;&&ADB0qIIYXk|+yl&P+Xb3&&#ly$YJt9lkoK^Hh)Eag?1309Xhk=}f^_=>d* z0v*`T$|}Oy>G)qrd(KFZWu-DG)29KANQB~U8bg1e^}HX!ep0?@JwY*-{;HE;3eSwI z@JtyFQFZ~*#AYs2U6l~4k;7?L(-XxJpwvDKg||3Dlv+?~S4BweDk$EH=M>+^dI^h= z8$YX?#rV45GpPUMSiM7GDVJbjnk~5OboHA zu!C*k3uX{=$8903ZVRJh?!KV=k(;|^^{5l7m@m{L2S*)-bR)I%l{};Tnc0zdxha3y zsc~7f-mYbIJO{uH`%aB+9YGTWlP99bEB1eCelxR!;$YInfkpjwrmaxV$UR83M9~TL z5p~kWI0b6yAY)|VPX97F9O{+&@HbY5aO!%cGk>CRJd+yh5|^Pri(gv6wIFUm?kU{0y<-C4HPcz_@SoJ}z%P<8(;5S^z7=?dl zhBQeRUc+eOn%kdir2Y+@fpkFrTN{x7*8C1#8<79js^q^lzeCqfLH>JM`FR$R|GE|q zYq^0kvjob_f>_H?*86O!6$Yxm2F3q$Jd~%k^6O-M7+U!-S=Y;Bfnz}M=K|z=PI2K!NV$V+mJ+5#4_+4vyhQsuC{O46f0mkWnx<(jzJ>0rBwv5{Dvi zMSjfm4rM0nOqE7r>IoIc66NORK_CJ1MKBzwSCxX_eDm z&Y|Ij4wh*#4`)WN8*W)lc3jUUXKCnY5Ue1do!FpAdoDm)!FGCo*lUkcWxsz!8imtT zWv!~RfvU1!a*WpncM#O3C!rR;IU5nciv|w=#58**>(7 z$=Y3^)9*)~Q18cE(q1?ZmUQTr^w5J(wnmCCKa1X+9a)L*Lxf{<^qoDT4isjPY47lL z2;{zjSQ*i*=uDb*)cknu`lEl7w<|jBcHO+VUFtHcjoMKw%?nSsr4Gd+Y4d^;H!ob& zypYXfK=waLu+Ql~arl~j$s&Y2^^9<$PaKD~? z5_xB{>56S;WM5R|-AQUtT{#<0v2aFPzKZuOk_(FmBs|Rl2`d94w@vNS)iT;R5>$*M z!H{v}%xws2PI)eH0A_#0;RYph!>GrHBOV|6#}kIvg*M+E*5+fUHz%hubY!&tYYoX^ zi%OEnrqm*E#<-yP7<>L#RZW1&k)9GN13EqH{n6^}S1~H#DOS6W9t|(7@~wW=vpzTa z19NOuV*e!RIm43+Y+tsUb|^p6@_(`%L)a9`<7(i~Ew}RA;#hx$7KxP8+6%oky0TeB zXSx@jYO@H=V6(`UY!;{1n?o|RRQ8I}%P??*+kgC=OK|iy`7%ymmr1@^dZ=PiWuA8M zR(h0v^KEj|0mo|mEAsl)uQFStesKG-p*|b9sxuwYi^V`THO=h@9t(Cnss;G!A5pR-j%+x zH+Zs@d$-OPpZZ1w1e}@9U$WI?tFxE9Zh9|GbLlHP#{GXfm1#xs5x8-=t~kP9@|V0$ zB&^(dCCn&C+|NnEC&ks`QLE-j+5%i1A9-Z>k@C?MlD{N-iBwRkc=dF)dhayeZ8eH* zH^osr8wb>%49w5s=Bwwh4hA(jQmsitYocKU#}rpfU-1Zd@xYCwVx)=C@Iy$6ru?St z|3h$Q^3Z=JQ}x))DQ{F964UvPNdQIKZ;M3CFplL5tvQhg+Oi10xl z5~2BsME~Tj0w`Ly2=*(|O|A`qnlwvIt?-iu@RO=T#W_k7vgzppO}#s~=1pidn$VD} z)Czt=~83Y=hlu1qqpMUJ_cIDgE3)H!XA;kf-be@pb0J8yTREuI%7IuS1j zLjLo}$Dc3a1u1>U_3D8gj-PtrVuE-JE9vPrk=4L^WMOQK{vITCMYCuLV|%Hh>5E}xkC+PA`CoqfgqUqqha9h zoH*6}hysaEc)#omrz#-SFp_Xo7)fn$n4y2>sXVQ(9PlhIYNWHa>K$dgMTkigdbAIH z?@nW}ZuTGr@GZocP^)wI*#Y3MNC|}U(e{7!0+>MGZ`FaiD0D<-^pie_)Qj)2VrriZ z_xR-n!Gs5jn-vkx`yLcgFoe+PLGXff! z)rbs{`**v2uoP`c1-Ot_feR_zBIy9QkXC^U=`e61-Q%x4GPqz7a3MWYlKr#_Txg9% zTC}PaZe30dxvX%jTH)4kgA&LNA;zjHuZO1m!&Xhg5ohR$e zClW(tZdq~W=VNtgcEeI zyO(B3Z!Al>3?|C!@K7dgUzMPS|MzxZ!&ODPAKx;MPlvv3lP5mY*BC?n0jQ8p9xt-F zPUz3+iQ`37fFSxU88GoAOPF|+Ia8T<#vBt*2ix{h>zH^t#2%m5ZY8+=9*Y#kNpG^! zr9f$ZCsqIkB#LEBO~!vz#yeeiua;S(sWGrAba2di46jzZ(S?H=0W>r8Tb6h zQNXR3e8nRsJqPWkQ&q1kqW$`F`YThU1#R@xZ^wDMy#u?U1Gs;kg7wKW_1GoZav=Qqd5A z3+T`!<4nnUj!!5tA5&9gpuNjYg;N6+aThPs!m!jIxZM_Ym`Y4JtdtiWpY!5fKavmW zdGJJnNdPN|{>gtX(p)^JlS#k7sQmuhgYTDVHRMn<$%#LiJ{#m+Me=mpJTiA>@K~Mn zvtg&^SM;7vJhXbdQsS>^&AJRUFvSNilzu+Mey$_jwo5Q``dyiak!DQhwYTEhN2V~U z?%I<8nqm)VikASIL{fe?c5Q8F8}wX*;|aQ+1Bb*!m56^+dBWrfUKpv&$7JLDUFhw8 zJtH1D+%b(Gq*es=o8not@fhnJ5f9C z*Xo15pGf9CSXfUxCw@OzMm6MuO(;zKikvY&=`h&sCe02d?D%i0_+yoCZ5^!S%8ACc5(? zn`M7TgY-8s@w3euedOMJ6ycFw>6Ejl}g2ic>ZoQWQrPs4=W>XI%lj98S zd~S>r>26&c(o)SY62YI*%<4tBr?-s07E6Dt#vqYG(`9qO$nWdMCI|u>__!r}{fwvc zxmcALsb$8yP*I&^g&xLPRN!EMnuUy*K}`=fh!z@TvPAhGwJtneHmsD9@x?c%DOXcQ zZ_I43Ha6mSNC0II^kKBT*c#vY&*J1QeO+zR4u%@zS?g`)xCO9sXY^>CDk%^A7czg{ z)|oceYP`5WT$Nrd+25L5XA3m;Q34|X{nZ9*Ob8Gt15Rs*bH)^OBLWSUuC*jG6or{0QeVut+3nscSMiYoXD zMF7Yb*(z*O6R26;$D0OP(=z^aocD}FV_&8R*RwFEmccs5jk-L#o;Ab_=O}+s#_=*f zu!G6mSnkvcN*pwBBL&Mw7hL4WeW>c3l!G1|s&chAC-7QFCD5H@0dKI!AYxqx+9o^d zRk9_ZbNzl>Sp+Y*MNmEuGlC~4j)pBDe`C%6P?704Z>+cL<>#-N%SZ()%8bg6y6`1XGXRbEs4vFt3^!{b8TZ3wK;O56~*D|Ttv7fE@^7>_Fq zot<3s+hNh>j6l~C{S3i=vEAT0xXo~R#}L!5s5K1uk$As@*5* z(G(I8OcyUzYx$HW9GL1&Yfzg-!T~E^zwEWrswpHKkfO4{rE`*kN2DB(l9ObsL5+39 zC~=al^B0C&{D>io1;&4==>pL#CI)GQv~yfetcEU`GHDbsv_B)q-K{pO-*-zkb#rfu zD-+h04E3LXyF8^#eyNYA9=5ZT$$0~Gtq|IP|27qqOMyS`(mTPqKE7kXR>7)HxcJYB zat%8PHLFQxuo98~MSceo!f!dF&oD#64+QyC5izTiBGYkwsO~Q$it>`W-f4AL)l$a zsn)u6EwV^@G~$0&Ap!#Fw((+haOy>(U~RtenEZNC4xY!sfKl@2@h*6^l>R>9_P{bk zGlSuX2hIuUT-mFigKD;t`!y9Ir%LVWU<74wjw4rMyUB$Cgv(kOTck!Bui+pssI9xb z_}1U^_$QV5y9X_(6FSA=_tbHm>Jz;&Pim%*`+Jb*PVZGdv007X0-s+FaSvcK^ z7rF6BKx};&NRtM}Y%Ki>smic0i%*p9HjS2lFU%1lqT!c8{-{Z6Vocu2bH)84Q1&5( zf~>*@c^jH~$l58Dd*UM&tR7iB4UUEmX*Zh1#XF|K+|VvQzFw}`vJbHli8l+mc-NTc zs9ufdCRu;<9VPSVWNbwTRP;0QQUjSs2h`4)H07^<4?U7031wT9jyV_V31{lx1LixH zJ`iTiX7AjmV^WEaeAAM-IlV#}{UAgzJ&tN=wF)b-!;lMG!b%biC|QIs#Ygg)uh_v z$>o3CaLTGC)v6}LJ)Z3G*B%*Mu&BqAGc}4Q)v9twF^-3RQxWeF1tyh~AF_IqP-_yu z2JTlnTWv8Zx=c%{-^TRJHl{br+;1VA7X3RWKVxc-WhB@d1LKarNnsT1n>yxi#J3Sp z{_QMG-z1~m9XaUTYEO1Ar}d`n$!@hLyTgAy+1=x>Juk;*#3AZzOS*A%G zCS4AQi|uLxvp*Mxzq*SL65;gslN67;ey)8GXt0WtG09`hq+k_uI_|`bm)2^?X$4nf69UfQ%&L zz?^|I?`3b!YIBaEwMHsm`b(VdOZ~6bUv#(C{ATw$=641O)!jkZ`Ai~BVH{~3PE;&p zE(+cgY}(+z)^T28l^(+#wK3a-@Y#Se?D5wg z8Cz%Hyl)_8}|oT#84F?I9E%%j%qHA;vu6GMbow8*GU*FH_JWDFJI1RED~3HuIPuBTdE{xK!j9iT0Aq z?i*qdv|{X6lkcb-5Z^17t-3gzDP*_h$?QxEB8;8xZ|{u>$GI{70-p|4c+ zB6;&^RCS}T>V~qa8_EFy%C5B!9)J$TE{7d6B4Gw8i_&ZO6Qfdj=W-$qt6c&Xq=()e zDTxH1WBhaYkSKBX7)5^wxVu)#o6q5{Nq<*b)-LV)8!=&Jwspyb0d`GnVD-(Y5pd_% zZZ@%sb$tR-pprGCnYGmNDw7L9q4u0+obNOFATCYMnM%|~ZMAr-#ao!D5keiac$fHh zlKDa>l^(~nV5hwKJ+xq(Z^4$b1)}>)3lb*WUa+8fijzMGZGeA;`?T4|4Kh+3J(2_> z>07Z7U~}V+vr4l9i3~6P$R!C0%6aYO?IbtJ zb>=0SLl-xuzwBHhZ6sT+tFvRBSq+kV^CG22c8SdDj;|yvQ3dH|B8{nd+VR!MR%4yt zZ4d%$1|hJV+l1B4CW5R2r&#idsH)v?Wyo_k z?BSl`)+noRC<7O8P{^e%zz+YU-w1y$mUkxl}? zJ_e<6jX0nhXRnBVxG>JQs}#Y@NR{*Llm@2MV4z`sdq{sadA0lJ`bv`3a1=%}BIe^_ z)d5U=WJ-OmKDVEXpjdcb)~@_??f(5>5KVs+NVP+(o;v3v9HNzs>O{i%V&C6 zHaZugvonAFWA?fJbWz5GebLyT{t3L~F}l;RJK;|^SQ6QsItM0|&f_hdCT~&D%t5QC zZ6G3Pdot;EuS3X!|4=-@+f=+a-O!pKWOZhgUV^>{I8i@F2-XbLy3sQ@s?Ol(G-j~U zr#pgKx8j^~XR6Ab87Oy^^%e}TH>ccH*4xRIyVHMKZ$ru*@!vCJzHBy(-rnQ0}KyRx0we|StSm90joTukA)!zTd z9f(QY_2QMM^-o2TyL?c{NFAkrL2EvC2;Xy7XB0SwSx%(l3cTR*;Hf0}pw)fDWw8I$ z??-%J?2suJkKK;7YQZK^C*ZV*LdH)O2JsWW3O>vFq9+hh}Kug|j z%R`3%*Jy}HX63P41Nvs5=rkucdgNp67`f`2($MsB3XRsYEBlJj@H`^=3Y!4t(z56X#`4uS2xHWpL8L!PEK*1(mTZ-sif!r-Q`g$957Wv{ad zL&fEXU`}C>%l9klN_6$BL@l$W~=5uFqCpO}7TG@=>ry{d05l zF|GvwOv=vMgLUFo2%Q$D_N=xdR z1GX)rLyGuD-@U`jDt$@eL!c=TL)jSazDLZc{`(W-JMaQbT`c<`siVleAv$K?Pg>G}S8ZIT~sz=1)A$(^QvdpOzf0yS>JX z4}e90`TPhgjPs#fVg0reA$1^Cis4fzUyYSO~~>^ za-h5mhHiMy={`sR&x3V@_~07(?z+HO$+zSEm>dQPc!uu!zcedX5=mWoV_n&_G z$ag4ZkO#6!KH|r#*A@4D@9kgb!%y5XoodH)POoE_&;D_%ulF)NX-rISjj9ylSB8M7 zSf^w35EBkocME^VePlB5>yX0*T<`dM3AUN%?`!~__?+ROuNtqL9Qj{bGr@Jem{;W< zSh|5SlN*+u%R917)qsw}>3bmpyE~@YLe?8!dYgPbH+-Q+>RyuTHEZ(*u-yPQ$Z2_; zX?I?>TT`-*yF1WqIW$N5cjt7jjPj z)+aO#d8&Vm+%xhVPywdXP{w1`@8c}pY=AFYuvuE%uIGvfL(45H8T7p-|DpCsEzY>z zN-j8N=^`u^p3>#KM{d5^y~j55s7&BTD-#%y`KL5oneTL#-uhI8|J+{1uWrY0#dA;M z%bnP#qyt^ft1d#7=Xz*cjI-sKPZBkznV({ykXQ*%n69MuQZ-YeDW7q*>ve!=?V{OpCCO}l z7!~UlW6Ya7O`W}o8IRQzoD*)iFkG;@tW5C)!da>^MGdq@e}6*MdCZZVps$TC!wKG4U^{^4qu}Vj3lo=B+bb z{GhHdokqfSUrp2@e#gz7imh+S}k`L8wGOsx)orJ^19x8Rb8W?rz`ur~-W9%)St(*o11>#{G~u%3i`&C~B0BsX zPeq>APL`Ouf*SxbG)Q@u*MR|zwF+!&%+z0+0jvodRvRqFn*FZK{WX9d5;A}9YlfGY zp_C2Hq2vsyK?cqu#K%nT^9O|__mQk^XC^+P@qlsh-IvIGIbxjwI6@yOSpkFgpCcfD zKjQW&JM!3pV4H|kt{2bRxmnm0T~9YOH|jsGw;QL`+YR=1yQE&#-mVcg0*HqUz{uY2 zXm592R_v_NYimH3@9pj>dfR{JbZ9${71|ynm%f1nD_MSem4q&`S1p3=W+fU(tN{bnIQ?i=S=UZ9$Pgpv@3tsg{HSIB;L5t z9=0tcL$(FP3pMY}laaQC&fX4B9M@;8W*LZSL5~4Vab{t z7H$ZNltLjRcZ1Wi=Qe*A0droXNu|_?2cXMOB*|Y`n)BJrXrJ>;Fl3sU<>bHJ8a-}Y zavu%(fHE=Kt8`jEuwlrMvf?Q7&S>-XY3*87^8j!_kH2-YJFxTi28`}~d2ly^7tr5Z zvx9d}N;S3cXR5n z>G=5gjh7xe1Q>&qgoI0fq#~A2@!@T|uExJF$fcP%G?pl9@;1YN$1gpMd3X5E!G6W9Z&x6I*jWBc@4wqc->^P`Qfp5zbzul_JOT0_^|x&KWuT;uZ|wZxF&w@B@bSl<4*~Cqi%)#v zb1x9pAcee+_OW<>+qIXx^(VjoQ{VpSp5A#}3i{@QhahU^2fsd0{q@pA5WKSJwmtv0 z^L}M^`LmZEF8en#A3c=Y5Bkr=FJU2koR$gs_m(7&KPjW(pLv+hw4i+K;X_Hz>3C;u z?v%fdPgL$b`b4;k0c$ZG6V>sQ;mykbZCm$;&42O9AHDN`vxm3+)Ro`7F`93``gs}RpO?|x_6#QA_?`IH&xb?h+-SfB938$>=8OAg72za@@BGMN zB3}PbpNpd>YzSxkn}jdi^juwy|TnoJvxXlq1IoElC<# zEW0eKtR-0~DD_aRP@6-Q@M(5X1VO(8g2B` z1U4v$HZ_;bGyjIc0k^@JFK8uOA$!eqvR%r8OSmE8c#Q*Y08eQ}x520LLX#GE^NR^h z8mk0<6lwWB-FkQO_c9sg9h~4rba#p}_ac`!^P;l_8L+7FLbY#e*^u{ z^ohTVd|$V1xL zTi@VUiALRK!pZ;uu3#S{*G(BOrCTCGX0t~6@9mU7SxN`CNyy(&GHa`}zA-{w)p$mK z1y@za$xcge;`ef2k?aG~Q?|k}L<>Ioxad#meYVpek#6MbSJu5Y*J&)RlO9D-r_OMl zwmNEfMAd@Frcr$NTkZk%6F#86^Z~YfKzsB9z)_5NsYdayz9W5v2h{k0c*Fy0OCJ!F z4@gEo0KxMJLJT!MrAWRF`*@;m?!kP2EH>;0tR=xB;w;=CTCh%O%o%rWYZn68gC6)8 zBcAbXUYP{7%5|VsUq4GL>le%{S=PT{81TnZLp-Psil_}cK}|DQ23)yP>UsNQzqLj^ zFrn;XQIDY7LAC2kYYCA17p1F>Yn$SQwQh`$hl#wbEigmMDG$%(Gc`#~%2)PW|nn)H$0N;;*SSxNA zLo>gE*wEs7*~-mW;@6R_jCjqBxUx~OI+oS3I^?#f4OUPd`85;~?xKktwdZtNl_C>& zoNrgKPcN2N&H+Wk92?uy35g7Ud~c}mDPFh_Y>qA}+ZNZ)b|Q{sF|VjBJbK6USh84H zFBa8u)7l;SipB>Ty}G2`^;5RHe!_Me*KT|Ac89**;h^1tYqux57;1b_+#sXH==H^| zR-qMCgqGc>)y31}Su8$XV@J(?nK;BK#-8ac4>b`sqTVY#WsA+TtWh|BawMds!5Q@S zk6@>QF=QU*_u5!8BzDVQj!A#UJ^99{zsdFm?vUt=H(N zF=?rM_lWi6!J1RsY8=e()SS=kQHLmc#Dl$GuQ6fNivmw$W2oB_A`^=T)rJg>| zo_>9X46K_J61W=CwLbrU`4t_-ySW^1`iP%%Y<8M`Ug229%r%Z3JwrvG1_*xaUS zjW)f;;e}T@s=P^(=LZf#8w^0}K^3$f3_$CF2hj!t(0Wh>tp^@N8MBrr$l??EoxQQ=b>&n)D=(c#wx{PdwfrO;U zsw22Z6RBN-IJ}u)i`v`#EC?O-MV-NCn!N!eJT&?$VE}pX;h~-&FEB_@zM-H;!yFUjVxp_lpd)FK6OeB zkFiU+8dOuR27{D;tCc>m!+qdVu2%Zs#ZI}Z&2rOOo0^PjLcQ9AI+{=)G@)K?LVdUi z^*#RDBZCVTHKBf{KK}ZmQ!kdfU-ripE^HiM$H>t#ZnTcu|DO$)YoBAwQDW1bnsXHn zIMEyw7we!+GzbJxlJk1e*#p8&*wwT8fnwpmm^sCo%db>_`xfk+a%IRxO;O>S;3Q%H z)QbAPZrxb?GYl{~%A0Yf#l^()h@xU3sjMMjpEFyweW>SVFj_$EoBNanF(9G~IYV z#>fSK8JcJG4AWJ5ut$RHIx}y!$rXx&geQ z4u_4tmad4HT)5wB6-GN$|3^i^#e05(5W@zk2Z~N{*Uv~v2vvlfTn%kJWWG?D4g{x! zoW!#XO-Ia(-16|}!0Lt&@1y`-+viO`J%&Ud4Zw8}nG9)*y<21%Xv#ZTtN1#Sw5LCR zJLL**fZGy}%z$Sm+m`D_DP$)(6s(SF9LyKou%zb!l?J&tO938KnKFy_FCZgu;Lx9~ z6B$LDRRP~TwSdoB8oF#TekNg9kyP)pUW@Z87fHL@>6DA6$ac*z&84c)L@uCvZJuaq zo&><{0cT>?0eA_PRp7g1nZi|Gz2Lro>v|nN6dZc!sXWe_8adQ*w<^jF7Q#Sr=$?a` z`)HKaWFKvCcFI0lyPWbN^7|;?>OL9)p(gvNUMu@(ZI8e9$l!t_$jLDp(05w4=PIBN zm~sN%NW>m{AZJVA0i#LQ>2*;3R2@`*d$Bqw zCheCS=gDz}l9`irTGmQ0J5iIRsdLKZ6sut1#JVDH4k+42NIcomMo2s?)KgWXx!rZ} zoNfqC(3D>?;*M;^Qo)|pZ)N#w6^mm}{crOA1aVi|-Hjts^T#31ZQ zLEM6EZZg;$B^V;W1P9weV3F9w&yN5n7!cOK-gm99cJ1z-(a07j;W-A)?p?d;tM9VD z^{wl>A{XWBPv=@Ox>bW`va5l@6AE8n(Cy+k+eJ(6usZK2v`OBqO$xVv?-3Zw&s#?U z1Dc?tYCd@t43fa4E;-)-OL=#yciYr&WbA?a|x$rXGj$|ny3FI3mYMgh=-KWnk}tk=a_ zKSXJxGVQl6`C67pBOX708Jc}&?_o9n$bX?apSlc=8w+Mk|BcBL0o!(T$dLWx!(PZW zFCZ@HDka1OMAD0pc_8P)k0#6(XN+jl@Xdtxa!<%T{~@wm{GP_`&l?aIlMD9BhAAEl z@i-pqEe8jdy(Qt$^QX#AD;TuX1cP=M3@SvwUUnES3>#F=mQdDz#$Qxy{JA0J9M}WP zn1%-CIe#+bKK*3qJY{}gAv?GFk;T$=NP$Yin8`3SjeA1E#P6`-YKRS^_7X$>AlQmzhS%Hm zAb%lxck}b>9n{KyKr@3y|2W3&!#{7r4$4bsH)I;A>P_{m!WuI7cv;Evw6e-EpZA>& zBx);^(O98u@%cufjM@rii_f21q5KM*uuO3|*WS&WeG2$VOi^EhKX>O9(Qn90PLwR% zX1ruS%QU*jotCP1KI*e0kNRVkRTNL+MMtWo@pq@JWhF&rPH+kw+wQ5*Z29vF5h`qvUYQMz zU`aPNqR+YC`NJ-L=`(2ux);MD{-^N4{P%ndjCedW>lmfa`TcT12WAKp{v@W0?E-JS z3tAWx{v^hP?SdA@#0$O)wEt>C!eV|R)DVPk%pxk;oo_Nw%0NUr)SA5uvM;ezdGiz#;H{OPO0d38n& zJ!0En>hpIe8fx6yI7p^o45B~fasm_$n}tW4FypO{X_0Eu9=fF52iH!*QQJvC!&nJo(TcuDGl-N6Zq}W@vpYc_e#NmSvg*prr>M&5K z!$6@9QMp%5Mp(3n!SKgWf};lD8!`7O;1mcxDBkTWN>9czoA9YCLI?LJApv}|*;4L* zMlH;CFmMkIxYCw#lWL|~wd!oxD(7Wx-8y~jtBMQeXnE?u>dXQ$?^Ylc#Uvr>ex0qB zj=Sj`Y?vR$Vj#jm-P{@f0xZ7Id-MNCIWa231a)#mP2kH53@8Wyp6fX{4GSV!hk)xV zWW=n<|348>25n(KP|OKT#GxzxCjwP}K&FU`g78lHVPM!03G%_bI#ReE-2PL^kUZbl zIE~doDA2!YRLh;gRA7 z0PArL(iY0fyr=`=sgbY(fa9rhi;QPI)vVGua>nDuhXLvG2(^>E>Ht$7VfwwBg>*3@ zjE`GX-nEwq{_aZWA?O6MlY|4yD7!XFzwBP)Y4iaz+T8f$`a@Ob#s|Y)Gd_^aNU>?U z#SPM6GbV%LO7(OKEdxz<(+Zk@h>9OmL11Vq#xCy97ixoq`4f52C1clGC@zum*f4;B zpFGMfcck@*P}&7?HHuckSRDL!d{M|>bg-bMg9VKa7ElM<&xwejb4N)2QZ@2fAX>oU z4mwcNs2qX3h>RXiXUsp{bVhZeDp>q*af7s%S7EEoVndr$HYS=4T(b;++i0y)Xse_x z3-e^lM2D2~vg#QD#AWZAR=Yh%0CN2yxP7!~M3!xCTJF)7N#a1;^;vXU2^&eG2wdr) z+?{INh>!tYUrQZY2s#mh?t!2OD0El#LC`%E(Nco$!>-bo^@0t(>^~%Lh;b@}AY)n8 zGHYfhYtK$Lo}FwwJK2_hvy(NmBVE(Iri8%+$0cWxE@556GU_eQtM`HHJ#9v#Ar{xI zYjl=%jmGO5ZMm*dv#t>0ExM`Iad+fFV$WqED&}=sL4v=T)kvGwNZVsd$E%T!S0mkW zHPUmgMp(5ezsoL?R_iCd6DTSpA{AnNQk8FstJ8&C%LucgCMu9RxIDx9 zDAVE+Ocktad3~RMR@f*#Eism(HJLZIKLXTi1^{}GX_68Ap9j4I{Nm#ayk|Kia|;O3 zx-2O0&}TWIc}wu!i;)~5^2vAmR(n3w>ND?bz5|Afm%hhc>gf0T-S?D14)s&4L6q0u z%f1)#*V0H<_HIG|<@LLK8f4fDh&m~K``(RO#q|2V?`9u=2*NCDmoj{kH%8b89Y~`c z9u1*Y`PJ5#Qi_?WP;3YA0#5=ZDbRSKn+*!7{+H5&TTH@)Nms}2*AKYse*JFznL9K+ zY7+`r_F}%MXY{Uip<07IXUZ_{>9`?zTz2ZLy3+OXM z*B+sgI6>h?eYBnS8a`Lr>xC2g=tbp)W%zJ);gB z`lvMP(q6+xAH|D%6EIpqZoAIB_r2ki=31eaVqZ~zs^U6a(3@_7LZ>{W)vafjT?F-@L1?0s>LeB`3y_Miz@=X)Adzv5~8O4v< zZ;(5orUG4!?wyW$-eG1=%c)zOu{vcF)Cf|FR-+^IQ!I~2O;Iw!xUl8m zJ$@D5poQoZfC$268Oq^!p|Id#DN}l3brBAK#|z7g%JSyE)?mBeABH?6!}227A8<&L zd)|-Fi(UcznGiQV;E!?^%3$S4UMSNMy23Jq#?=!=72yYpP|Ci2LrKU388>UdzTy$E z4ql2_8#Pc4WwR1+Ry@&>o>Dui`~_B$H>@mIR#sbbkFPGOF-yzGEG>5|ZJ<@OeE9=^ z$t?4u;UeEVL=x0Bqv3Wr#)l}vC%ZYlj9jh2@SBEsCLXgFPQAc7CV(~{zt1|}!P%N7Wii7MZJ^50I` z5&PxzR|ex1@9*QRssSMqO4h=NBcdC2 zG;|s`4>Vg2G?Ai8HL8vQFaFqn(498c@Z_W{X`qJ&a^6H@Y3>=EDm%^;o;0R#xj(e~ z%W1VucTm{V8Nr9C#sjA1?DdQk9E^qou>LZogF2ZAe3J8FR80{+Wc*^;v{QJ&6gs^y zz8=VRIhtJG7fufQc3V(g;BM=q-xs)kFO2)$XN3!E*}5(qQJQS`zEA9bxUzE{jerTO z>Y4o4m*c6k3M9d@f8C-3M(N=s8}ZbOAcKz#;l$POOIZCV!4`=5dqs<*96!jxnmgQ& z5v(F#UrmhGR%5JQ!;;d2a`r|B|Mg@xtIl|3S$+txgFJ{ZUH$R(0C0rkrS6|p$)SVk znwnVVDK}mH)-p>Ap=;THO&8X3!(yX6piE=sv(9b(c35VS38vC8Xjsl=!tl64?S1sK z=>Th6qUfmW=hR6dFX2Lc^s^ae2mMT4Kc~k1>_`jJPli?WT|fEic0W5rn3+3FIj@|< zq;}7V$b4Q|6%&>@hSj{G7pw0Od$rlAvF=J5j-nf>g}LpT2#sieB9jd?Y1T8vJaxv` zxt?Q3R_CNzpi|7#U_6~NPXjkko$);3G;`~jx_L@AuBX|cBTe*R{}cKQC^P8d#wrZ3 z+C7&ynb^O6vwu;*WxRs^#{HYx{!J$MPJe>$r0xCdH~TkfE%e6y3tl5s`EWV)aM^$4 z^f!u*(x-Cb`X3>GF0YRYF$szhbjySyjtuto%s)(YDIY*pvJ@qFI*0o(o)E-L#5P(q zx=w6sY#JAqokxblNwIB6v5of*6A{}2={dx<1m5DViECXPTK5AIu4`hO$kGtox_W^; zgMwQyUWDer)_aDD)9i&gp^%GqHEp`8EIUPK)AQ`CZ=D4v>`$w+9d_2e6)aNZXqnBj z-|lmNqo_$F)!7>viblFhDG-eyQ>wd{Y7z+{e^T=q-3)qZupba7IEgO_-&l#bzAwla zfzMsP63J}p2*-8|w`@cWy--Dy3m+N@rKya4S|~7Q1HZ$$z+>gyNyejg5uYQw>SWb{ ztgV|8hx$AxQ+9>^g6B}eZRcSvT5W+Fa{nnghd|y(lp4+uc2GBUw}c@mSR;1w_oP68 zf6dEztGR)j@AJnXp7T}jVYV!~^~%L}pDupLFq1hqBC!qiJxYJ4>~(L}f~nbP*rQ?r z!(U+MJRHIUCL6CGXZB0)7&f}J)7SXL(tp@C=eXByQfE{|>j*hBN5Z4S=)y9Q_4r2k z+sX@9{L`{P$+*9j`AQ?a2A0YxBqS*}f5ridcSJ(%w0BoQggyRvJ=eVWThXp#%>02KneggiM<%@!2VggeSr5V9IJJQT_xs z44BuKRm}g3s^ms@GNooi6MA?)GUoGA}Qt%XFwJ`(9MB z3*Jcd=LeJVhmx*wJ_BP3Rr#+fFCsW_j_SEmcAW zJFO^pzY_&X6MACtr{<%TVRc$-&yzW^(W1H*@StoQ)UP^$+k4_b#LOa zmEB%;VBSm57H%RVWWahGChe;>@A+f%o~Y6?%8BfT%&d2QQK3F$RomQpO&#h-yFwQJ@P&@N+%>LoLPa z)!+XU!U>C)RK4wkiA{6Q}f@rki?3cIXfrkoLG*R3@*!Z;mIc?h@ngSkmEd4J|-fc;^z*KJPknS62F#rH6Q<`pNeaOkv21FyvM#(5sf11x&KRMN^T>-J$VGQpT z?+L50ul3#&^^kc-HB5)~2U%K|%n6ZleT57e0@|8EvX$nU9Hu~OPK~C7E)wK=2==j1 zEEfBtlUM_wGs{T9x1-44g1!-rV|IP>#>!QCvr`;esm#5`jgkzo^@DOeHEw27R_UcI z!@(12SBvzrf2=QvD%CEf216SakNfq^kQpbyP0>6upoBVvgU5YF5`p1q43I(lGH!2c z9&lcPwrw8Z8z68tbm3K+OrfjHkO%uAVCNY4UuBl=!%S^-VK`1{#Y*V!t>p-8Iauv$ z7`aMlO?>4nprdB`iWMNlB@Pj|L+0KTzVj5#9@wTCPRigymAn?;ROU7v_o4i-7S_J zk8+Ph)h=nM+FLQHSY!+WR%L3E-d#qk6%hPO{Bvxv!rHvmFTUtkk)riLP|bLX@8$ET z{u^lpC9I;Sv9DgHccMv{N%8XHbql4>D&YzQe{E@DsA7K1} zjz8FH`~icyZTx`(jd}F5WBfrg{(TCfV^h7G7U9+`1WfzNHQgyGUd!R$gqK_rzJ5gr ze}M?kx0ksR+v4e~!q;Q0&6yPCX97R7GbtsrbBH89DxL230$5G~Ar@O@O&Q$YBV;V* z$P4P1t|}w~OWSlU0m*AH&4`iaY4z=}?w*jB6Gd$#KazbbUIHqA<5;0}Nl(!XkMrJR zJo^!&Qh(p~hodWe4|V`$(VoK!Pc>=-f4Fj_2?|n-d8ip`Z&>2im6(=;2-wNt7#tI) zu!S=$2XACdF^kz#9eyQKfv@lb!a{k>m?|lk*YB9EfBKVN{j-XLxrkS;Eh2OJT`vj&{*UBm;jY=0t3=&KBkb`0pFfgc-W#ooRZYm~F+z>rAt$C&HKfB0YA z6rc=iQ}J@1iP+cbmv4fw5fp#V0%w*<$05vr`1b)HQD;H%e<(M6L(XVY+fbkUZjl6) zmg^_%Z%aJc#mdhGQj%UwN%Jki)hM!udhyd57#k?M1(3nYgWe8+WIX0w?QK)Y?bUnnQQP{Q}BG(%@FI1>xzsjxoom(CY|x{8i#ZUf6_ z)PME~JXeg0%QPa~uMe$CFAi!&E+3RG#skyqb$CP2zeR4aF{v89>vyG#De zMb6|XmRLkZ!#;382PWIIf4{|JN=%0xfg{mE@9Z6JGpV?EpJ<*g0-Qoy;?OF*CivVX zBSLdprvCZ3cLLC&WQ}{(I>`V@^efY{$|B`Irj!3m@d87eVpeqBy~==p`LXs}a(&iR zA}Po#DV)kmn;=V7u}j;G$ek|CDuv*RqK>&OzdZ!;^H&uBMFr8@v~++<{@{v)n=c-W|<> z@h$bUU;4!#NeqcF(vP{yuz*Orn)~d#eDKKdSy;2&-~wG)m_tVGpq0vR zGX9JI(2tkE_ zf;Et19bsS{e+PKZ;m8?QqC=B)#Z}qy6d~k%3yiymqUWeHK5l&L!Vu?W7Mv&y5j7FP za*iA~^CXw2j4lb72*F9se_c>*8_P{V5(=9V0mQ7^Z$}nI zyj||vf71Bc0e5Y$Ui;gV)IPDW_lLv4CglFm%5R<3Bl{KXcQkyjj!kd)!2xrvfce z#saloaZJAfg`>Dbt~~muzy1FIdw=jPCchZ^ocFf|q@w=G-+lTozRd=($9o{K&OfGg z++Lvfyg;Q_^Zypnt=agE)Pbp(fLiN3d1RQXIe>1xOQ|{*SLBuA$k9mn5=d8QV&w_1 zf4EfTcDmk*t3r=35~9OB&S-Wkod>{jGgcChD|RlMK-avCS*d^~Yt6_vXt1fAYPwha zTrj>u%pDG~_}P%|S2Kwfx9SrN9q?(!$8Dm47cW_G0RrA8@+t!bpE)n;ayOryyl}@0 zV~XRu!e|RP+^|?Cc)|HXIJ=wAj^T_uf40VNKCfPf6YM7cT?awaD{fNy_~@Te^FzS zk_*F)x59Cpi#fBIT*_u@K&4}Vy`q?}!p54m)~;&6yrn`KCo=>8Yx z<%{voi>bZhmI9k<1Xsp14wn^gSV4hU@yqJ&YPlTVx#GQ+n?v=qew~dhR>V`ZK2#n( z^I);Y8m}<+;7@|}$*pR!?2U3hqls9UWEjwY#Bb`7u`R&?h1}7d&;@hajHjgoUw$?`!i>rEYX4Y`0^WJ?<9?-?RLHBiBrK~- z%8T#3NxFFn{zC0+y$+b`Q1Wf$!hlnP8xX zMwHtLWe6d~<-3N%1`e)5e}H9GzUZ|GYG2og z(Op%Dir)04&dE?i;F8g1i-}!qFs*TKSxp`8caXwyl~8;ie(W6Wtc7!;D%t%ED5LN}NI$!l(tuD+f{7d2X*vS>H z1~O2Wdk8uR*+06`f6s)%1DJpiYG4U77%>Z&$9|cSG~{a);&dFSr#x-2r@gX&ln$t{ zjE)YYrqotBg&IHQ6t=36-6^=bSY2`ohrRS-`N(2joT`g&9TvE@RA#KiBAjMN*`c=< z4(T4yLDz?c{J8^P-A`D?f<c)dl$f5ms0w8*g*^&LkRHRCDb zVhzBz9Mh1MuI_or!eGh)8OHos83vAz^JE$9*oBMCSt{!F8+m}Vn27w}n27{s!EJR^ zZ9`LVt7dANl&!?j6#5XJ>(%Nrhzu{#_1av-uom@oNd57TOh%wNx!rny+HKa} zCp)~;<;8a)+6+N6YmwWHs0PG%cBq>r)JljE=Z`yI7!)v>d-8J zhS%I|(=E)dT)cJ>h}Dal-hhEtSy^%eqGjD13r$-=*#Yna59G`4sxHIv3E0DE@~FI| zIVvw%@q#-D`K2_+iaJZeaPRV~i+Q+TTrS@UvT{dQJXr zD#mvRNxx_%c%4=&KsSdXt-NT(zg^{(s=BkR_|6wS1ZvF97m=!SKL1ea$09Hm#~D`% z^sCC123-zzTady`7^@viEmq<6_GR$>Mdpuw30N20$ ze+*&;j%xO|eA!PR-e>)TCPzun0eT5HqGmm?KbRHSoFoE9n%4e|^@^N77mK$Kzq za*grT7x*|c#*fxBtMzZOu-`-K93N|;JJ$5Lp~>%{e}|yC z5GRe{WO~I<_zPMWm^QxRN9hJGoUMt^VY;erk<(UYW+ZD)IDz;|NtOATp0v4npeOhJ78)_Y-yj%k3|7SBXqq+Ztvp~wB1~+@QBY0X zp7X|g&U1UNb-NNFG!+}U9l=e`@UGpKv(AwShF zg&W(XxSSI5i=oo>yT9FMka=5^zv zDso*!?y%8}>L35JG0*(Tx1AU=x>3ZCrW;)DDY<|47NBIxDn%oi{`x(ikBIZb9X?QI zK7d9#KoALm-i4PGDG4Ee?IR?N)oIF|RPhj5nsKzQ!3{Oj{!w3gh>|>>7G2(OqYXiBXZJ&%SM zLf=BG0q1Y+&^WKQy$S!L=fc~-tV?~@JS&X7E;0Z*2UJYB7O-ww7JORvHkQY+GIM|P zRRNy=G#apS*9G){Az6Nl0zaMh2s#)+XFP&Vdjy@y5derpZ+LWk!-f%bp08V=GvV>H z48&Sx-?ZL~9L{G0x(YNTxA^1S;68j2*Ruw_K(KAaf+h_%G}sKytUR(>>pVZ;Mej^dG!KOxvRVHCAp z1$s-!mRzMoR=W7b_O3uEz`Yy*PuqvD&)-z}KL6IFIry;{wvkVeJD!%QRJGSmHhsB#(Q z@<26G2A1}aY@|6yu|+9DBh@%XjmcE2;xef2JpK076RZN=@wX*C>cCZ@Eal;0`-+Si}dh*gPDG@=*;A!Qmg zc8qMq3WEs^P7^eV)fAmt*|n69ymm-BOv>%UA~`P~bMUS8>)>i1Q9h{EC*O)u*@bPg ze}(U`#D{cl0eK`X9tc=HW>7B!HCFX4q8-UT{X4lu+vnriR)r5>Y2RGUlqtmjUt{pN ztVmLqYm37w6uHodQ}ulR{rRgy;ZnN36z2~fC-Z6jY%ejPtS_NH}sOV#sc88 z#sYuZZP~Vd4c@Z6W!vhuZCl;RMaXp#GF^mU^DK*XJVSWJY#kp_ZZ-#SVof@~Y1q|{ zAE;(95wpmi*9vBMW~%Qw+iqua0`tbUt8k+_ft`s7%+18tX^rc@dW1;Mn{jp8$$uVVu(-ygeyCO@!hh=p^xdllHJ~6B{fZ!CPPq-=wW}g zhT!KAn~cR|WHE`dn7DqxUmZ-vPHf`;d`|Bdp|e48&#;%rE(swddE?|TaXV{Ij-EQ1 zPEMwilPO>*zu|UH4&KrmX&N~lA?082zKC2y1wd3R*nZk)@&1t;BlAmm_I|-N2uSAjh8}b0Mh%F^}gpCS@1kZ7W}Uqna`2c#Yq%MVB4{iFf1+fYAqtq@PDlFF=G(9 z>3@8bP+C-ZWl81ae5~vWPvR>z`t_A#CquizT&-oVLfroWbbcbvd^&rG%7+?QCQVd3tYwO)vFsw_C~=#kBqp>ZCV#ZVCbYy8LJQM!C`L@#{b&S#_Q&@s#Pl4W zk;B5|4=t%?l2_=`(KoWY7Q@@nJu*Bfdy@<=F@^`lsbP4r893!HFuYhJAG9bXfdG{H z!0?zqoR5?$PgL;)g%RtoA&9t55NczOl^|l!J&cI-pv6XERxv=1xC%kAFfy zR9~b)1yhXNymCS5kkZqY!&!ZARDYUBIUC~O1YSkQDntG z!y7L~H;aA4Z2%W36+UYNA?HTDlz*DF8g|%ta{aS;auxZ(ZJJ3>u1f7Qz`7G56&lpc zgw*aUh0THRX>OTQdR}k>J0ylq+1>#QY(zIem(AEC6GDC?d*>q1%xuNOKIPG-o1By9 zC>!@dTVOr0^0F!AWuG#s3KHAgRq}_s8^G2#z!$ak z$)EKH1LxdLfF-HszJ%t!!F76j{pf$>JsT{3gXbG>J^@Eq9Cj7XHpN{R+IJ1RF3|U4 z9Clr_!>)_Tp#I`IckiR)8#eU1c)oVZqTTDh8YbTlR0n6CaRrdaxuJx2pl#pkM1tdo zwpqgZNvD|AqcPHb!Jvipucgig}1WkYE(}|AseV3BP*ikKoO_Y|gYdqNFy@+*rX=Hpl(9fUq zDby&Ih*y95j4)p&r;{TQZo|+2U4k0xv?F!P*n!IJs?5;gj<$r*Y2atfmn2#3quMu& z2`cOIhN{HExIibesU?PNU zXl)D>>lGBNuS#mrN>BKy! zPVA{4!&Cc$Gywa8*VtTr+FaqXJ>a5=^532Hr|ldZ>}r1`58>iNB-k8Qu-$@1Rsd*5 zlb^8iJBalzdSq5jflUA=ZpvZlbdI|Cn78|)-7q<=>ln)R@txjqh5-}wVhjLeK%2h| zOwRF|E`zWQz&azp@LhsMN=1^I3C(sLji_L>N=MYu7;e-pqE*5snj&MTEwV(bNH`t8 zOaCGZi7}Y~G1?)2y1T3Dn1vPrI}B)B7Ve3-rA4Z>8sco;W*7hScAo`#(sHJFlZNkj z{PHjSyh?1DyQrlzl7F&M@$&&!X%;ojX}OQe1lzbcUiBbIHyxy&CNE`B8A^W@A@reQ z+}T1nGjbLZ&HeDIZF{_3b-8A^ci@UB&NG}Q;&<__a<{>M7b0GS$4v*NtN>ft;oPJw zX!UBXk+I5bi)pn%Uf~yYd|SPKE27RjBVP7TZu~{B2WPn+ZoWRmp&X6)>S(o6;5Ew! z*!s#QziBR3?qfo$DCVzt^80gk64+f z&wxx?gHcG;Bi(bSAwyMRv>!+IYof^QbV6#Cs(x922-`23v>G}2a~#eZP*P46AC2qa z$gtmJ2Xx24FbrFCL5ticQ!>5+?j@WjWxx30*qy%a6vK-Jq`m z_jo(&jBb8jEP4Fz@fL8A2i^D;qFU%HbP5xFOKuF28X25d)W~vbWXTOI9F#kajDM;| zM%`Y2HL{!c}(9J~s-5?I@k^?kro zrx2tjE0%2;64z&u2e5hLp9+gF_e*OBG%5}oRe8oW*nXY*&}uF{N01zxEyOqN>elVT zciy$KaUj7=-ybwAy{9a_Z<%mqD*PyJXT$Y>w+fOow$ADV>|uw_Ovd{Fz_x#u^F{@@ zxoTRiaL)duEbaN_^+klGqcom{+xY16iePvE#V-Y%k zJ8>dO$7YE}53x=YoyN)RIK+~1GJ7&kW?#^+vv;4s(Z*4dghMao%Jb#a;0IS_F*)KCLr zJMDm2)Z98-Fl>ifEFIs&t_H(`zz2@pd-&EXXPQ!}7$9h=I8G+Sr3Z=UdQ5bGU7c{n z@#Z8VE+TAkP~8!+sG08yz)J$c8q>9fk0Cw}A4AMU#*wCgAdV_k@r_m_&UR2=#jGr6SqvJDGT1^F zk5m^=RTocG7r)8^X}JXuSJ7zBegmr%WN1xPPp3<*P2$ymU+_lN4&ZSB##o*t zItR*Zg!XIB>~qx5!PMlG`KHh>5$#~{TF`GD=E8{ZyN++DX1)b~%*h{noP{G=5x0jp zt&rzhROQAWX}tn}lnW)xz`<-#PMyq$)N@Lf83vEs&UnPn#KS3Pp(F>NrqBgT>x!_0k;WaTvHsrnhMm{jms%s1(< zgAp%pr9I<%aF**^Y0uaf5vaO=_DtHMKk%$?<`W>slA&LJGkjuJXLzhV50p3f(4MEt zfoRV?ED9oUr%Lz*Rf{g(=i{DB@hhxE)s*|mg_mqshHyftB2ZH^wvo{({_LouJ8vE1 z14pJXd-aq|dn8j006U_99*#_VAk&_aY3|6hr=^p&KE|h7C(ta|G*WHoLmudR2S%6! zImV}jTh2OvZaHWOb1){%Lb+vu=%${0kXsfYQ{X?iV|>tXNPCpW_`n_GJw3*IdW_3^ zWPwh%9K1bs@b=s>u07RbeB2it<5PBw@6a++Iw{jU#&c{`Y-!~ElM~#iLhzR7L#|sf zZ*N8IWmiYs)$^gNBkt!3L%ryCz2qUV$ z{g-_`3-lz2^dw+>Wu!V&G){J!(CQ{n0cv#{=A!S?kRzla`&y7?cD4RXmwQZehYnTU z9pk}&Aa^>tS}`BH%Cf?;d&J!zPEL)+4!fxd+fy@{(ybUlA!2V}Lf5IWCR<%_dFv=- zc%=4EUEP3BdMz8X;%2&2KEf#uEZkDlL2A5Nb18`jsI z^jog+*-v`aHD?^yIs-Li{(mG^^f>Ul(D6HeB)`P%V>y~QmSui79m|j@10Kt2`hRYI zho~O3k#X~cDh`Z&^p|7vF`y+^AAR2T(dR~^o>sI;6vs}p1(n}L4ZjN;3b#ke??T7# za%)TZUC011<9D&)>S->h@w>1^`(c~*$?tO1qwLvn7FgB5V0_ZBGFM=KH789o^AU4@ z%3CuZJf}buGy)M%nqcdhFP_)T3*UWSGp~I2|Gk;_H_UvoQDF?4lO`a{yMe{*Tpjuv z+y>nRx4ZC7n2`PAHHsg2$W))cMQ?s248rxGU2#qs2=-=xlLM03b(Yf@*N>~iL_Rg5 z;J^VhY)nhohU;XR6RmkHNnzciRyUg=3aJi@gK&fJk`HWfDhyV|T zDuIcBWNH2Z6WdD`6z!{wj@tdiPjEM*PT%9+sy={{KQX@QgC+cg!9>ILeZKpDQ97X& zEM5P67TY1{g}jmPhnW_o(Z z(07Lo5g5Q%WLTBEN|&z_)OV}_(AL3sX&yfCsS=NIse!q_6?y`tZl3+c^);*C=sDm6 z0yu;;rfKERumQIalKZ))!kIpQ;6kFA)2F{{#y?f>|I45ow+eL%Had4h61IzW3Y?QW zY&&=LsP%L^ds+|8(_kl0gPlAJcKYiiNScaQ>DYrC0e!Dav#fvTivJo+zhV(!MQLMAM&VwLS$d$w2A(d~JcoEIc)F;6!A{cZ8YyoT-Uw~j zySDrm=*5?Z3~CBnfnE)i*Dz=Yda;sj`|jV^bayMzi*T6 zyA|l=BhagT_a`>p-3s)7LN@Kh-5=X@cPr2fu?ge58R*r%b7P=aK>t~n!65#fH)-_q z(^f0<=X^k{6u-v?14a5#(Znm>giRi9*pZ{Rz&I#kLlMpSj7>4aMFOqoP|*J;7&_B zEsdfPn0ghH)=9Q5`jD)(@1%Sy0@QO=t?!Fmf9Mh#s zPf6xivD$Bc2^Ls0migQ=yEF3fz46sPlAS;FS?U0xLRSwxZQ)g{Su7$BtAEMe^3-l# z+dTsOMWCg;_<;bnbLgsIiSPC>nPI(;L(SAP zfxYk&S4cT9;D2W2`1R9o2}Zj;!v$ieqx!KkXG**s)sU(qi`>#%+>W?IpQ#B)7J-H} zl({fxGoi={{F3sB9TLEes)t7F8u~yyQb;y)HrpZVYsEvyqBytnI8h%Hnc`Xnk`gj_ z7f#`S{KKKhbr1p}ITb@+{S=NdT$?M{S({O?h|k3Dz1Hup)-7td1sb(D85@s+Dq(*9 zVC7Ui2RQY#T0;jg&aO#%=~bo@(ZNd zKd{n_fa(q*r4tX7vfTS*g%>pepIQb~!>1m9#UrW``6wO)ihTMp z>)1jQuule3FV(;CcAPnv*Ps2gN0p*!lW1754*Jb`1ieBuj|V@(TWG=zFA4W5Bq*Ws zL^5EQB~dZ%{Uy7Pnvx=D`uQ83z)mcD96+jF-e?GVK&C8yC3FSb&7Y@YIE!kiB80_% z{1r`aqzoU}FRZ1VNr&^N6F;>Bx?^buvSoS%nyp1i?Nh(F-r>@K*c9_MB5nutyI6Bh z>+F;)#53ud{5gN>Bre=mpZRjg@3);ixnIk%qjeV3JLoYiRP!B)CIr4LU;L~6CDVjx zYMUEodJ3v8;3`sPz*32NzQvZ^`HHsKaq6)7z2)L#5m>kXJj5a#pT4tCB%lvvifpF?}66S(Xq(#l=@tiOU0f30&VXbI_J5v zpny2$S;C&hmVdku+U zfhe5*iiLm6j*E8L!RqN*0UBu!BsR)I0p^ocRtBSMnYCvN9o7HiCnGg~ow=pvGDpSb zGMjmut`nu}lo=QSSEBeU)}t}O+7dE28LL%*>CoE_YiJnb4-R@MYxj7*nwLn^sMs2h zzaJC=X$=OmCI56st2I(U=4hn@lElc`Z>^BN2Dk4#=!II1b^f3i83oBRtQr*QJiZz> z5wG}KzN6l?ruE=_l#>mAJp)uy>x5j(gxxW22&pd`!EuG3)zAJvV8th|_Om?y6{H*} zcFp9vz_0{tH|fJo(;+JpENdq4u2;Jlq-%h~bgi;QJjUgvAfjYrq`0yZknNIRtTkpLpgP9`bR2I`&K} z(yVmWP=(0DoNZV@QboZ%rtrT9^eEgn&SZNE2O%=o77u!zTv0ncw>F~U+}8;@joGK8 z{dmIHIGXw~ul^|TaYtI|0Gv%24VKPTI+*TA2N^Ns^@ec?A03Kmv4*v`5}n?7pZ=it zRH+uUmtFku>1qIfYIshLLdeJZ4>f0q@#T;Hf=0Hz2|70nO72(9aGKWwAUyF|!78Q9 zjD-&rH3d_eGvtyvYKe0-Qwy%*vGV6wEk36sX2QPXx>sF`rUwgMyxx1$iexk4} z40G-uAtDEC>l<#gfHJfY-iG9L`6FGsP3t_kETCRFScz_bM{v-ncs!~QxNmhl_v$ev z(-+tO-b&vhw*YqORTaQTECPRDcwB~&$f_{doznua2T%`ARIM|V6@TiZd988bTOjis zj0l(e->C_YrLdXr^jZ2rHJVQ{x~fCl3MHFQuy#7K-X8q0lj34EIDCR7=_#el4~O+U z5q14-ihoCcx~3l0)1sUgIvo2TXSFfRhwpH5JL&@pQA5UstKbLwc7?wrbE+{2pbv7U zlvR{Tb(e%UeS=G^fpeguO~nOC6;)D)H^3{kXtq60tWLHN?!zRYNA4g9fDp7Y>$1$Q z)%?Ew2v(9SuXkczR(6YDjf_yW46SAp$^_TJNtD2UW}+R$Q1WGN_+jF1`D=d-_arQ3 z!T@AnMkvST^qLc3{}^zcvOG&oAqy)*3z0Rv6+ifj9YJFiO1xRg9HJ!dvM4rc;d{LD zuv5B+c3DMHDy$6g4K$;=re#aJWNz1Hs*0Bk8Ss~BC2C+rx_m`h255bgkoJZw_M+_r^BXE`jK{=IZoDhn*f9!LYDk#Y-dW)?szd zX+K14_O&DU2D^>xfRDVlcd5>))0WD#xtU@W9$eSjSYuT)SH}c;R!6cywv|2>D9EpW z_I<+|WIo@|_>u4)7H}_KO4_K?sodQl#JY`<9o^!tFwg&Iz=yHe;YMi7F~nv4tN!ZX z7C2$-e?9?@ny-QW8G2qMUqT=5q1cnFp}fLRf-sSfAeVnr+%3P$_dL(?P7bLh_s1>A zX_^Lpns>Y1Ts^uVmo5bvSQLwYGBv(`+_B5Wf!4*$UA%TmLpQaC^{o@%eky7`!Tflw zR}NxC?zBAqk-*`&#_cD6!Jla8Bf-Sie-*X9MtUUMsM@{$Ad6j_fI?FB2?j` zpxUkOF9@8)dwo}#I=n2*)F^;e#8DK#%CrCdqhSyT=Y6+bc=GRjGf4kYp=q;!k;(to z9Z(%NPWAYPQrJjCH(5DY53V^z1vrUo4E^<5B(nsm8bRj9(%@HV`FLz{cB<05Ne%4{D*x- zWQTF`<&^w*bOgp%z6A-=gjlJ6mjU2J98!^Ri#;0e9AjT0#cEk0JhD1qbrFpgxT#{q zeiuF%U}%1rd^0dWA98jE^=qL>bm3)F>VH$aoQT&n?j-pugFs})2030)y2D3?QJ_9p zm?SS%1^$ZM?4mfXNJ}=TF#5>Bl{UKrP{7uAlsWBX9}@7I@ab zAu@;v*p$NCq=oQQ{l!0uMn@Lx)POBg_{$$f_z&XS9cA#(*VJB3@sK%&KE1 zR&c6*<_nQNc|=j@2;nb(9QO$s%M)%ak&Y#zC%m3xzIo{#SsdB@hn4*&w6MB*tsF|B zZO)q`n=Z3Z{XO~vp_p`8L=6u`WUN2&N0G_|F@5Je6hMz^Lgr6XxdyrQ6j_7VE7nRt zg)Xk2V&@^K%U^1^`=pHNlYgYxCNyn(t%jRL?}z9CXAGD42a#=mpKMxu(zS>iKXKL; z<(lhlP``Q2(U>Et_$(wvIabI7Z`z8af(?T=;4P)G*d9LWUT|(21M-%Nr;r(eQ_*}I z(-_phKxwSGl{6M9jRhNM%ya$t3TP~tps~13V}3(p@mXjrHX8FLX)NDrQCbT=CONG0 z7DU%Pl+*BY1LHq`+N(AMgt4v@q6y33R7E<(HFV-6?XQOFmgQjQ3Q8Yn`3z4B&S+Zv zR9;^M0S3+)gl8c7T3?yTE0G)Zy=?-T`?Z6j!dCxKZNnE17%C1bE)h$0FO+4>-VUJ8Sv{Rh|BoI>uaQw?T; zc|{NL>YX@PZ$tf=i;gUwlCiK78H>h%f+B7P1!KA3wjo1Ta2E^-(He|^#i%Kr%opIm zjBF)s!aU9t^t!C_^M3Y~r>7@LPa&1OkIi z!Qff#Pk1v*kDdb*8-PXKay3^gmKT9nfFb*$ZTl3}A*}N#3$&nVa0(8(Y*j~)Ach{m zLi!{z07Rl&ow%YF0vO$u<<_6`M>0jSlRgI#;Ek$(5yen8+rx|t_?7?6c1bdpF}+)p}n~HFNsEK6`#`B93SGzre%t-Ozkz2C2KF!ZMsQy zg-&6)uuNY5=c$Gp>=mkq4X=Ls!;OoK*0^Q);~nql(tBIq{YUWMicAk{oU}D6E^qYK z-Di`3=-VyJv??(w)!>dN^(tIZ zz225Xs2?OiK)$K*yFT2WLAmj#^uk`e?con|)|PSoefoEazu)s=n`Qa?{tw$M%is5Y z*k)N?)y?s>ndJvD%SDYKfns!yiI)CoM@n{u!`@r6E4;p3vMc<%EZG(Qjm5a%{>EZ| z+-rYlz0RgF|I~OfIElndsz3OlW@?d9?)%yCGwG&hex$Xm$);Z)YW*7L z_2VCoSW~Hf!v3)P>vSaCUM3Bhkdf38J#K|ax9<;L&;#-LVykcS$* zf3p)r>k%}+-tZKI7H%p#rY%0kTiV~W;lQqxcLBJEwL{DBCW~2fk99Xa7PTJ3 zBmP9wZ@cTJ=#YJXQob|7IeZ&9@Y`AnuH057i>PFYRL@0w`NZ4g78)NrXc51E-35;} zo4XSydKulR9l%dFQGdf_br!?_AUEEOG-Ceqn#C$z9CqnNP8XZ$d*z*|!T>MmVim0H zz2_m+*jgKAGNbN``YmF3%8}*D|2pXXx5@dJoOL4 zi!xb-brGR1^6s#q0eNXuX4)!$s?3M2a8?BH@2mpQQfZNpx0hujz5T@jFHmF1{W!{Ax(I$0@H6ZI9g z?9eKmHfMZ!A4emUPPpK-csRg&59sUn;-5qK=NOjck-H#mc3QoVIg+MWA=F5UYAzVfVRzqf8!&so}8G@{Bj)JZgHgP=n2*hkpwEGp`dkB{Pz;LSRWn1>{wlYB5Tioc$jcMyf$hy5GcfiGg=AoqZo+DL<1QViABC<|d@hxDQK-pPjo|Dxo)C$&n zS7rAVD<6ONPySc@*ZW2w+Kj)x7E6JVT65iN`B!N3w0RigLtDnvX^m(60|u70+tZR|VXFhONFtUNx0eM*RBU=pSxD>2xb+eWbWiIE zWb_L_%8b@UUv_yJNNueB;=TSt8C@27#24IRHGQ|5c{%;_RpGk*B~ck#f4@dHcHxAj z6s6yP7yBVJF73_q%R_Yv?D2fFRkN8|E&>G*)fc1_myhj;gLc@(133>R`@Gk|apN0Yxsr|PHuwUbp3KSrA#Jy}tQM;T<0 zRvp7y1#{XBeU_@7x`86F94S3K`IvuF>w5?Ep`g!LzE`f*XVy;+ZQlj;nJ#nVOR) zQR3XT_muql%C(b-IR$yl+$Jwl?p$)lFhE=g)G#x?0E&uqE<(&j zT<4gZJqi_*J!WZsILzPI;|6b^BFgU(HqjmWZ$|&?i2ggAJPI~-#S_xR=?@X zOCDpXLLK+7)x>Fljq*CTn4I+3R$bjz!P&PJ9V`Y~;3M>r77YdF3jMU~R z;z{urzJ?<2?0fZk-Nm2t&?sT*9#TND)G8c2$~UsVYdZ`3k%8IMzN-#Sz>?j#Xg|779}#T zk|SM#7Z@W}@_91Rjn69DOYN$E(f8=jMp??kDAW;Z%`yf|!Ns%2tij^-IjZ0_;q_Jz zb2)g@#r-r@@9XdU{eOH^n=V+{9#MPD2tgj52Bsq#Jw2-BFIfMpxLQFS5p5D7t0=D5 zdx~+eq!8z2O!ZQuN8GEv>-Ych5sif@=noNQO$jPg%s*Bj%^Jqc=)I(Wd3Vyh`>^G* zE{VVeLsj?MDqB=2w?zAdAK^66%UAG9?9Q|>>_dsCco~4j+zi5=R;UsUc3yo(vJROu9Cv#y#ojo(!8k z>Fb{KznVSiN=GvwDpE+4NEO9MHN;3Y#E1%0<*Qo_X1xxXYw?oecY?N(8a>}S9MM>H z)LzhY*qS=T@%`z07vS`Y>WBT}carf&3>EE!6i7=72v5U=lpq0r+4UQ7kgmsVoCOU{ zWKLHK<#4|0KBVFF6?hY+u&yWs3W|jA`YIb=59GRZC6yEOS#Pb(PO7m66{kcjvD>10 zaH{N_te@3;+}+4S>Ov9JmWei6yyB6vi#Cz_O%XI*8(KZo(9x;9@sZO2)YunfU#9_x z$4a{SA}wP7_Q2wQDw*eV%pMDfnt;2nufiKtxO|l(tjFNGdwAFv`I;D){YnOXw|wuG zgPRR{_f^AyQlv;)#a@lWW2!K~0K2aUu2*Z9Ryxx_`54tG3HKVsjuW%LKsENrWguNVFu#UURU-~PNJy%(9^)7D2)(R@rO_@K0A_Gr&AQ90{=N~rkpH5w>}&nlrl^bB{MI?|Xm zCdL{wqDV}z#?WoLq|F*>D$|ycgCTTZvdOs38L6_@{%w%;jmdS7McUIcmYteuzQ;|p z-pjtZ2~%}INHIOG9Pk?TVeqd|kK~Zs9JyhCrydcSju@cWu&mT7yA;3UTk)Q$T>0Pu zMO?imcUaow3$F+?)dxz@!{Boo6hWkq4+e4^1@}o2ONESw|yKEDu5xY3BQJ=5Pbahz&=i zNd2=)S1a`vYMPN|Tbh;4P-V=DzyeO1Go*5x{%o3<+|MxKWAp*VO_&_DU=y}9L_V~b zL}bgmq$BEv!6|6!p%Xhp$ec0b<{HsYqXk(J?-EUx9Qvm2M)_1zB1-c+divpi<=>r( z=B7-l>(YWXVI$BmoIryw34#?CyKSe+p+PK$V`hbPGH|OaB!c24$d@u*-5S=)c((ef z@}mli?rM3WAR;i7eEFZ22uxi~Gk^+2ya6R~Yt!6xEn>!Bt{p`+!Wf%a;d)rb)C?5Z zXepCPwcahObA)=Qf`IX7^*LyNCbEWhfoW$9(dwy!Q_!-OQu~ifSB}NRSg5e9YO3~I z%CpJgeyrM0QLiOkzr-zt-mY9gO&7&bf z@MZF^hX5;QTD)3^Yn4YKCb5l^sEIPP2DQ_G64N@4(&YNBqdL6SUd;O{k6~BM?HRzs zdaEuRh(Pml{c}pchq)dhGs15q z8;te$dFBUnm)vS}X%sMC% zK55p8&8(BP%{p>uDZ=~#CZyI87yi4LK6VYVMl+A-hV0NhX_Xa!7$68~fGJg}sHLNu zAV~utYU1k0>(?$&S4rT{L zaW~E~b(L94c=KIwNTo!so?JmtYP}f2eO;(1ChD+f& z(sHW1v21f1(G=^^=+&SiBvBW?;^SD;$a@itikB}C#}prb#r}mRfklr>>B~L-ivNvV zM!z^D8@#w?80k?figNw0zyI++Rz$4&tzQnW_TMSeErIcFxhgD6R27E_1a_L;HA`H+ zu8bBn=shZ4rlM?M`hhIhGNST4vsqXX8R>jTf!lRnRzXFejAvz{*|MdlMKXvTVhptS zb7a~&`R1^Hvwq4r%TN=EBC`lWs0zn}g~)M;Nk1=OR0f?NwucAUDWLZ2|~D0D;U0sziAjk=)Ej z(9B0Lo{vE1BbXq7)CeFgUZ&s|d#P%$wgSPzr0)(^0J>E%%CRLf&4DXkuD$z~Drl^d z$l3lHJNV(clJxR3}z($cw&$>cnCpE*O1saG2VD$yk=s&@x*vKF`k>4V7xN|?hL+5H|cWlMgm!2 zPZmEwptE236#xalbg287g*KEg4gD4Z=)aAFj)J%%vQ&g&p2#l0>@X$2Ix=8w+FC>z zE`SOEUhBVB!D)J$B$Jjs=IIb3*Uk!-jY{i(y(b_n=ZDAFG*W;51VK@dFu_Xl@^VOf z@q~yGw|H;T=Do>TcyHY1y%{TRu$yuu=6tD~gv1DffgUPIh8iz8W(zHA9|HLng`P5~ zl8_GOCiK!r4T-Tc>R!8dv#BI^EJQ|)TPu0qk`a{-^hvJ)cTF9)w% z91c`T6M-|OOgm_G;5Dc{qefFSJSaXJiX=9W-YUFuM>CR|kp?atOeZViWN%(1lXd&C_s7v zI0LuWpGR=NESOFT!2_Z`9w(Cl%@h41`#K&O`0E?#+hp`*N~Gdnbhhxm(ajC_>0d?34X}EbCbJ zRbf;72Sm6+?r85;q=Fo5yih1A3Zpi<*EOU22KC(fDtoaPtrwrPzE~a)MU`-M5O{0xXyF(z*u5~|uyj|+djZOFMA3(u#`G{EmSwCwH*WLX7(6!? zo*Sy9fU?F7&y5?N8;^NztUNb=p5VFRB5PyIG5<0(7AJZ}Y~-_={!63{4Go5s;6HL& zS{(P^r4DnMr%2Q3*27Ma?e4cni^j?%RMm|UKl_;z6s)rIRb(P z0=oF$I#P8x_@)=Qy>EGe+uQX5x3~NPx3}*FZ105&3vR`pFBPw3u6$`GpS$dH**Pzd(rCf*v{^Ss)g z1os46zbTh;X$dudDyqMxRa2Wg8(%%IX$!a95?|%))64xg(5 z7T5q9S|c=1Q4#jB!y44Iq*V#F9Lag<9O0zBhuFz9SJFteO#13jpkZC8s(;w(pa9Eq zo*pg-a_sL{;9>)9j;dITJH)7IrhqpzT|=yKWzFLH^x80gZ!F1GOoy264=ePG&b(fM z4Q{5%Fgkf2H)ZE@Q%`P+o15r*iuI;gZ(__Pil#)XR-?sA5j(^8b39Fl6Ur7_Nl^0= z^p093v;JY10gvjyA<^AJRh{5Sg!)D+SEjStK_L=vgyndZTJ@K^tE3+ya|}V4 zz`%mmSe)U1Ifo-H+MjVh@|mjVA4LV0J8_s9OQ8y-?cMs8hyL`+3#CXNnZ5rJz>7f=M3lvX@Z`HjTT{Q7;q!{cSa3I=1$OV|4mk?RTF zqEE-U4Mx|aF?K(zxNflqSm6ahyLo#Yk3l1ep*SUhOQfk;N(?hu=@vf{v9wJAAXu=E zjCu!uEz7Wk9H1!yJ&l@J@-7t7eRP7Akvtx=0(TjWUM-t8uR6d0?PwiqMU1UI1jz$P z?~*X93a(Z){n|y;s{6XdDq4kQeGw=JiH=V`Gp+fKmWP8f-i^EoC_`%5?erruokWX& ztDT^DEn}+oKzsD>RyS{;QO z&r<}zL?@jX_X*6PEIBj|7jr4LYq%JoXzi(!ObQ4Pf7QCfZVBaejlc!e4|-?V>Xw6zag8; z;+l&6W-kvEs7s!GbH(0W;onD;IK|nkchc-r?<|hhKl*(E14j_~|H?I)Nx5YihC0lN z1^>T}M8YT#0xgEc%W^q_aqzFa<;-2kn3jR6-%NLTaM-;K)i2skoW@}hex(iz&)JBy zrj@65BAK=N?Lp4Ko4}%4JqI9v9OnNq3G&9>9qjTn0Mld09vx3=2U}8TQ9uKJe^{}k zZmd`K2lK64=<~^-*mtzVJLp4b;-AZ@kg0Xl(=C}Hj;PPX&FGG@zv7>cm6-5nHT6*O zFMWl|og30|4r1o(mLL|@h+kbADVA%@crFBzr!E>@t%i(0h^@94EsRTlY8juO#xZo* zT?6hF3KA$(Mr4Rf+G0pHps$|Ok3v6sjaF2q+M59U8b~JcPjAGcCMf+rH=Pl?)lHO& z*O68m(>h!0YVC|F9+C4m_G$NjWkqr6!>|eW2^Ci(I&#pfEJBLXo$k9F^0L;u zf;M&?8G&cEQKafX4G~(uSIX$DSxoktSWo(ZQ%)S|FRghJ+!^cPVt z8?H7s>!H0)#GbRY(adO-2ViOe6GDoDjpk=~EtpX=p+7vh@KpX9%v@Sx14kl1va zhOj3(kkw;#ccd!xURrzj=W>;Zcz8XX3$oKjxVF2DfSh>-s77bXV~Z7}k+=HA7lHiR z(W*duErowC8!0{cf^t|M%~GD?5_nYM_YL{>y%o3DZu*dm*DdI1_Rfw% z_%fn_OV>w#C3BDH&&N2&92hhwSn*beo`$7q-69v_0BCH|Vp3XAeU~aX{fB)Zr+Hx0 zi7F9#6N7RM0}g7_03ThUQLZhmRvL5GDW|}3u%%?ZL3dnigj-ZSwe}H)yfTXR7AUy8 zZ2|hVMQ*9*IZI}aG-7u`J@?elI01)BsPaO(PBAaZR(2}ltnBZ5-z@un+bn6D;0LQHrB z{oNTXu0cHxGALoDI35)}w~h{a(+qfYpzFc7kexkE%w{>xwYm;oB|Oe0IZnH3GzYyI zIDQd-1Id0dMc|U~L4Qbu?@vP#_ZU+?Mi7*V`K0pO`b$F9K799y`tAcuW-I;T62QCj zhQ!Khsb%@uXGLaO*1&RD4Pw;Q^bv0XFVS0qtNp!9i}8-u{;7lBWg=VOeWp|&EYelv zi(Klla^U=Qszrhj4cl{dS!H~e8wx%wzAV&#R-e&GC~%9tI2_KD&G(n)iktXJ-@-ow zt9p5vZ1Lcz8bq$7jHrRsFbJ=!7amv2N_SJ0jI<2m`qswruzk*j=V2UY4g{AU5z;cT zjK1-lYo6PO{ggG*!rNNvkr863QK1ghLrMa^RXSB1baI@C1)n?(dw!vUHd7b0`4f?U zACbtj$f3)Fq7FNsW)B&6pY|sr#)5XlSTK$l3%}BcvBpR1sgHKS+yXs*9`rJGS(@3O zu0CDWY-ouoXEkA;SGBRNP1yePB@4gpGckjpr-C=U8!wHr zLO1x7|G&9Yb@vPJM7DD)1Cx1Syf<>Te#-ZqfUVUkLKYUU=TFu1-&+4Z;A89gqY$Cx z;*&oeqW0pdOFAiDm21>DU7d*O^ov&+6J>N>z}CE0Yo2S(n`q5%w*~|cz+H=f)W+6` zB7;~;2qM@!L(d8|QjnuShpWDeEY~D$c66jE<(ja7>cJ+@a^pZL;84X zX65v&iP<|d1=DX7@y!?y;Mi*}z@#C?6u(Aicit>8L|S zcjgRZANP5q0kYNSbYq{>O?^%`_Bq|$=X7JA)2;fPYM-%KtH)8rKuZ~aOqUtH%7o99 z=_5?Np2cz7W!|<(ae&qVR>ACwe|I%g?5%plyzdDG$V;;_)lzlYh{=du1+7HEK56}! zXnkDF0aLyhQyl^P8pZtrL>P8x6Nk(#`ot8CE?P@<%Kaq2OhI?RSBBrq)FS(!oK~n4 zG(FJ{G>bypY8uJQZkwThb)WBv+if$nLbiy19rucrOX|32&Da@!m|#%Nz~=A0hVj}n z+%Q^j>YV}OTeX~umhyoz4qdzWi*T4*<)0T&*nok|I-4650|e+YUPN&2WX~9&s~u<) zu+cC1O=R>NwSH^(O=Ofi@ngepBBR;KUpMlb)b>(Z_HVS}7J;UJ=MWCBJxkt%Gybbf zzOWiedHx>XM31@u?c$5%-22j$%YbTZSd;=n%*4+|R)4+j3US{Tmhm(ap>sVa3#O5c z%bWJ?VbonW^YAD9ie&~OCN(1Z^x>86-M6!>0Zp@`hu0s1#U@t$;SPh*B49^IJqLA1 zScf=%WaTOEj#%-3Ls|JqKIHLw{S%>(;gVTOthkx4Rql2X`aZT=V40SD@U=#VdTud6e_A?LD}wo&L}I1F z*ap)p0H&kP-;=to4M#RS`#`ZL;j-I^QUqbs=_!mO8adpOEn$lniAa8?u zzzMb2I>8f`2%t>NXr92lm9l_aU*|V&swHB}8mPz|o!ILtnYePa1ON)H9BssMv{1JG zo0fm&|$-Y66~e~QIRT^-1%sa_aq9Y`1z zpX;V7+V9Oe?ow0#6je&(2z_=jJSwL z_Pg(LtLc39E(wnfyN%vmc5jOASn*tqAV6m}^k1RI# zCe^N|`Af_687PqSIB^l!1vGh76V-m#2(ao^s>b;YI%V zMG#lc-dZ|te=TKeY13M|MQf<0>2KBZ`aRzr)S29nZN7msES;Mh0k`Cs8!JNs^j>-8(xd`x(@QGgWeQCu%8}3)U+pe(sBkN%{h{)hWk*i4< z8XszE1vwajQZr&hHN06eo5oh`VjE2BW6>FdpCca%e;Ym&;irQbHfX#1eoH;8ehum?cC0T;mU*qYf56dj1S_-XWi{Put z7pZv}3Rgc|^~&UtI{?$*(UaaS^Vc=D)`?YN_(j>1ee!k6{-5ySv@b5vVE$`>uEb)N zz1z7Ke@Y^`nP@pzHPfj=3+|WogR_~Agt)jr#D}y#kV3=pf1C3l)XP>b9}c!k*e!_p+tE8iN)ne;xF=s`8p^nxpg@1EKJWpGd8)omvMh z-nbdnbr!G(yKS>q4!=+~C(V|-CeKm3KL3w-*hNju(_=gup{h%Utl7K_4tiNw4yUxD zS*lKNEqkfP@SZ~=O<0lvNK<(7(kegb4e-}xqS@yPtv?tIa}b-xuXF*@0G?hyF@>4w zf3KW*=2!20%j2K-{x0wK&;YV+hxv-M+tll$Qtb{D22HUsjcU|@A=Z+S_CEdbxzj6W zKKSlS&OB5_KZ6zyJ#qUrA9;{%-SgYOf9PLVMN{{$M%};S15o||TlD4}&P{mBPQPhX z|Brlx7XAtTclSSdOk40iaof3D5V;FIe?gcf3K!Im{6KJ`e#-klSJBo#y7{#)dGOt@ zc#b|K;~RhIoUa0CTW^)fBlrKk`g{Lgyws8Pa`RgsxB=)nZlpy8jCwNL8L?;6!#`cv;ZZ1D~~0+bzkL=4b{f5VEo zWm3CSZv;MG%PHV3*1z$eW=`OrQGMU9dv5~nhL9G_Oq`)-e)_wA(;H!;MyP>zsxH1& ze!4Gwlm3m1?^)-UGiT%klPf=?^YWYj(pKh{ci&(CP&GAK({bw2VSlo!Bdj}C-a*sD>@$5XI=R-+af%z^xP(s{ZunqhcD)+WLJztDH=Fs-CR|!u9ii zrogD{#hwMtyYn#Bmd_{}Z2j9W8`XdDr{1d}{FVLNV}-(CKM22UT`9eN@~BMb>ES?e zn|kV>Lrg#oIRe{Gngx(^HMB2b4Xr+5Sj_&f;rE1u2MG8%-g1P0z?3Gn^= z!%+~glbs(LS=3Ze?;GtWG!km%0Ev&#O!cS!+|#00?-lkS2irn$TBY%Ws=@{J?h#5L z;of9a|NnSo6eJ@z0>c;h>8{J?Ikhy)ec5}GGaI1F4B{9SW*RY_>m9Y!4_N6@YbnHMP%03oV6e;VXmrc5Y6vGndy-rucgmgu_p z8W?C4oWf!$BZ`-p!${%Z)3QLU)Ob_;ink_vO4#QR4gfx!@rUXNu`*@|Z=cb_`jTo& ze^>ACl$wOm(r$SG7D8Z-rP2*zj^!rOc0xtT@03%tOr+qYxy;v;CFCfu7Z4BRjxt5t z_@OCYe?k2azgdBk*rtdbm45dTO$2Y1Bm1;|2_mPXa;}`MzkP4nFTO!;n^h@0)n!f_ zlF3mIi+FacLsZUU#n>G29k66{M{sR)Q4t^?mAx`wE$$Sio!O16Wp7mVT+if22yUI? zB?|^7rI620hoqsnST-n~kIE*#L5o&5wdL{We+L;2lOX!#gMr=qnB04vyZ6!Y4UZxw zW$TcVw7qfD^8rgx>U62nUYR-eP|q;#Ou^T^P2lTW4Kr&GGs7^m@i4RYFtf>FX4koU zA06MYVVK$T7?6)!L|t(&PhR_^bFsODuJG+M3r z+%3m!Io{lI>{^bkW#(+XFs*66Kx-N_HrjWfM$N<&if3rJ6P^pcW%zsjIB`CgFs&B6 zr%%X@nj9ONJ0#EZyK;Yk)BG{tkdUCJe`gxOHo(W5;fw}sNbS`hN8kxlFKPgM;>!TR z(--cwDx!DbVnDLHmp7^st}>kU9*|4AI`bi83+5^uK2GNO38<+(u3>8#wiG zI%BZB5mmju`XC`48Sz&UqjKM<>O;>-dD{2rNv6loj+zLQJ5Q(>m$E4{_4V{DsqZNz z3%}9*C=ycfX8W1oJ6eS})v43;e*h$;itLoCK@`X0>-sJOVRhKE-~-G`sil}1K(8l< z5LzEIK&-R^J(V*aelR)R`3kMOoFV{mx_-uAV{E16pJMhM1S?ZNWnuo#FgnNRI_DT& zrx{&`ukPsRIy$<}F2kLRdIbS^Hc9H=YRT88E0sHXa>Vf4Fv%1DnF* zQ{}X6I&*$&+G?UXt%;%;C5n^Og)<25cY{9qCN*g<8}9Wo4Epix)JjPXXLd;FdSam$?%o z^F$(2dR(_&i?qW=^%;jbOK?+}pf`{tHofVu2%aP)bFMe(;%kw6XW9?tQ4L{W+nZZ{ z#$a9(2wbPWE)3!c#z3}hLu)i}gkG@SAt#{WLX3Ml_(yFat8e`f1$aeSCi|M&sF zey_0Z#o;tmzSZHJ`mSa~1T06Q7x-GYOIFk1hD3q;CfhB?aGb^(0sVwGqS-U=O?*w2 z9&$T7EZvuRlE`hUAN#KGh*suHM?+>l+=RbaobqtXu5U-n!NP7LGv;m=3Ij_Xdej_-WW8|(G@4y?kl#WEhDy&Q^F_S_E= zLxZZWcWiO|pv~(c>iKCoHyXy9chYacLgTjabEJ^0Z_UXR1U_-Ymjh{U^3p znQTSfwy%*g-96r{NGm*FyY%ag0DrrisDgOiY9(6se=PrIdH~M7dwl@Dc9?P~OmnLR zA@4(_p!1>dRM}ByGw*A5PrudnT*+*FA-cY{-EX(upImI%d<$LhR2!aCHpj3cj6SZ@ z>lk8$F6vlghfII3Pc&|Kh^X#*V%XEEJO= zpPE;?^fhC?M^#aLb2VEQ2$x@m2`Yb(1x3PCmfcR_$d0bgjSPhJQC875&9Dd$aT}#& z(J+F6JkWDHN2t!g?S(pys*FlU>RzoJ7%+|0Qo}k9x`pwq<(h_(nG68!`lhOLSf`rG zT_@k_Ec;EwA3WD#)acJRph^`a-?O)`9;%3Oc9@g9%R zny?AgcN9l^>L2tp-C6c`{pE%U?i=s9R$oQmL&dL7v*pggEL27(vjEQsm1lTY`;6{Y zWNh!CmI+|!R|>9Xa|s!M(N;9#q-Mkk7*8@br1JQpfUV;(MuGU{thpx`0R+$)2S3R>@GArt8%W6>`5UiKB z-(y6nDGLP?36y1y9K!_I@x2N~j;&qhH?p)$jt#wy#{kSi4OdCeafpBui+I-`A0jDF zALdCgw=@6gok6MbolknJRlduE-Pxi(u!QsYXSy*hh;ny@zck!g%Ey1gZ~-6NMTm|N zi11>3TOQ8h?GKIY*hN0`uD8C>CArB$ex6$v1sYh381D09`_a`iIs1B!4LL(Vmd zBu9##H!Yv@^)H6yob1iTDyi=b*Az5rZ4qcf>#9z}0zSIjM-<5&$f9`m*-&1s=w?+{ zI>~DGA?s5l8Y|ApCdhxviP0Xf&tBpFlGb)DYJhVa=&b$XmM|pYn=zJ$34TGe)M>IoufP3A6b$2+&SD;FB8XLz1+?o*JrRh zMC}-+;T`3!mFS+~#qx2cyg9m~ych_B{wd92!YZ5srrd`2PlX$sxMnbSo|!`izR1_1y>(lC?9mL zTqJ*}@3p8e8VyT10A4y84%HK}4Q6^%iIOXP6z@30?8XERDJ?9JyOrC9SIXh4t);p) z0imKJ6#({ltWbX-4Dm?L^GOD+NH#IZkk~gRDgtAJ)VX=)SgoKqvZ%4RyA+>Zw@g%P z7qk%79&bMo%i(>y61%5&1aKa;&(xW@lLtN2OrM1xGb(qokb1drHEJ4{Jr*%7=MdI5 zEq^Q(9}W5Qlp~vNm?_&2?*57}2r`DJv4n*_cWJ%ymb56-* zJJ7H&p89fG)`5l)#3*^1sPF(E;jrR+0moDaNAzAI+933_zGH28fxE&)8Hh5~4jQFi zL{yWsd=Z#u=g1<2xIwuCFm3pGhyA>x^>Ym6A}%kegVpK+*rDQ_DsqQ<^x=MNMkoB$ zd01$#Q)hqI_I)9B*qF{p&jV06x-voGhe+4L++t99Y*cQ@M{nhf7!k=%VyG&34-|rv zRY%L=Y2AmnlqX3*n!&<6bA(!B%`5WE-ceRp!F@szSIP9MPu2jnK_!|W4ky0esL20s zITM}C`7#}HzQ>!&87CMvsibrPf% zl?AqraMh#J_0Grf%M^(2e z%)8|JSB(3Imf1(?)y&y?wWPD((O71_fIYzZmH}dvy+d1FX$#5)YWHvq38TwW>9}G} z$svDJ#lsBs%tiXUp&!;48g=-0lRCn$M`fY9yJ}QHn%Kpkre05DehjV`E7wcMTrV}( z=Vq?gT~*#j0j|Po55{G92qO-%kH=&WTP|qDa!rc5drZ9;nR2yZ$3>{r-RqIZ9Wx(A zHtXOK^7&Y3b1-J`@s!hwx&*A{%8uZQC_EiW3a%9ux} zYrLk;5R}^TkN3N!oc=e$V&8R?03@T6EaGMtA|;Jn7Z9=dSg{OJO0ZD&FZVOl{5npM z>TING2#^k_>40q}%`H)D3u9;U#_fPbeTk!Fd{MW_%KVnGTf*aux_H3j=Ou_) zM^|M>$iFE2QYOb2HGG*PAR)whi2J~~kTsCK7OcwWs(ig#?jc7YmbWZL&TAyA%l*Ce z)Cq>b%AapC>1D*}v!gOA3k-H@h;n~DFCCQynA(N>c9DG(eXGn?>j%G!)rB-|M&@&P zoYHi8yq!)1*tq7_GNz^|2k_PY9Q`?uk#WUV^VdxZj651@b!e4+x{S_BGRT4VwN6^7cI;iE&m=~CgFsl)B2IYSjEkPNT z+l%+dbaXxyKximu6gz#FP++jOD33r=5rstwc^V@tVM$6l&PAaftG}?F5(}ci4?OGZjBb0eEKorp`v^D(0(3x#2@g1ca38n2l}p9l5$|UJUlT3RYDCVz zJ(ilqI+t;KRPn^9;_;|bHk3A_iqADF!@x=!_q$JEc15bqe?lR~6(`PASfXUN>jNN+ zfI4n?h2O=sHA@}w)N_9cM8gC8acCfet{B>U6%^kd5x1{}9zuf#+*-?4|Ma7xKHShZ z^gK0Z@J}^o5RpdB89vP!!FBH5N5?m8FlPkMHzhZiG-m{6%bFO3xAh=`=P`)jxd!3C zK!ae!`zot4?j0%S)Nw=Mm}5b2LQBoF$V<58(86MQ%8e|%fmnZ3&B(&`$U=;4$_)(2 zY5M!4&rdu`IDyIFCa2W|8 zH&NF`D&Co>hU4~3wzepLgo|Zx@@hr%DXKuV93b>86S;8j352qUElv8Pr@Z{=}>hgel*@SMRO?_!=q0Rk3NVS)D&y=;D`H&J=(tJV?&J1p2HzTL zWLC~HPn%2F*g$Awkk#g9JF22tr>19F?(dC?cSXZ#^P&MXp<}@@Q*}I?1~P?OI;Ys% zIa#(TZEv`Z9ENM0-l(N#ISqjl&X`mRb{j(2wz7X<75P;;=&J3bYKMloGNwl!>ou`B zMe+57z$kkfY1C`S;`HR_H`~umq*3oIkwyiLlsnX0+AZa!+x4Z449}W3rt-$j{Cv_O z0!%k=1klEtoseDF8}S$3Sm+xIePdw;WHj5s+;n-ES5`GYNQS$VOJV>M~6{4z%JSa)SZHw1S%gMb~OzTUmG{^2`R;;ki#~>0j@Fyf&Oyg z%)*k75>9E#PKC}SJCy%dtoRu%2}&QW5|xrvw{`sA$;u9Nn|Ag5@3x7m+qg}IY4kL@ zt*1oQlV|rkF(A`eg=uAAQ_c-DtxgNLGS2e;PkBTsiuiv2Z0}d1?rC63ubh9L=!S(u z_2IjU+_q`IqX~0bIO`j_`i8DT61l$uP`hVMG^#MFND6 z@;MWh0K5^J5xw+}XrS;C4L5Y9T!DHt@(+z#un`uw)gSRF zb*lrKg*)wNZWN@DPprSQBdxOD(8#=2yBJG=YFsd+)PFIFn?!P zhU&c2c%VS`12eRSF0Oww(a1)`if$F$$P4H;=vY+v9A=>NI`uc0fjHvGMYV*8YSDMKqFToEuy1R6_%(!qh0j58I-h|? z)i;FjYfS*^zF~iG?)?!wpZ#GZa)6@hCIWbn1ki*PZcP9i!U`wp;K4Q>{C|ZCT!_%D zXRNol4HAb}{J5V#5c=_YQ^d|$-Xmv3j#@@!tRghWSd%8Q;wLqxzbRX$hFoW3|LWV= z`&G4pvw~J~{=VCN-NmoF6wpY~=v3rF@+uE*gc#A(G*^H7#XBJUC2EQ?3)CUz_pn=O zt6QmcE7Aft8@iP?-C}9Dp@wvf?Vnmirey@re>L(m%P0?bX-VZ_N5v{>>=we6c~&G}h&)4lv2clA~!A&=U7N zIVk9uGo-&-l6RiyOHhh$*0bCKcVpN+!+?eT5dC zXSjc?@av9>G#yP646UA#`YL3e9#h|J@sAf&ZYy-QLd_fG4mhCS_R6=9c-Y}=q}13d z-x-i(kH?__E2=pdGbEbHK?UO}Mw)zj9EtdvgPO@N8kWYUvL-c10~Te==bGZCvv!wF zQH~9ZI6XDY9C3oIXTFx6IlE$|V3S{`b7TUec|EC zDIzXz&=hS-&B(OJdrU@ioy*2e@PaoVr}-k(iU9BUBlrL>t1TSeEN(ar;3veqp}GNZ z;{egc-5r~8PTNVanrsf0_TY|JBc~iR_50u9vp7|884I+dh#jJ{6yUA+Sge{8a4UbX z0KNtTY9>-*)8Nvl?+IAoT+4QieS)VI3T}^gGb3ZqDOQ$? zOYKjP$z6dWXO<%^v4R2HU#*XM{V-6n67mwNl35F|xS%HuUPfMjLOVhDR&=82;;M8} zJy1e`>Y|da@xF2Kv*K&pw|IP6-dummA0ghXj$tZqVPq)KDXvjd3M~oOYp&`h^E4CJ z)1BvOCa$MD%F|3-PdBGmKTUq*xl~;IxsMh(=>LG~d`TG^)ABTHkq{#DaA{N!y}bNC z1BR}FpH*X}hDK8O@)TV#Ao($F!y!*3YxaX&`#s`6KrhvT(xZwPmnlQiTTg!wgj8-` zJly!ftn8!V-N2+&U#(R^LIT1Tzn%=4 zi$E9YYX|gMb7RPc>IxysAq0!CX(kwREhfJC*Ej%(1Hp?dv!Hpe#A-= zm&9e&ogZ65RjSFgsV3K^8lZojYH}^HdP<_oGSAy$beDz$S^=1-Pnl#FPO_r@18f0*tFV#nc-cOv?F!If$el2DNYd)Ha0mP62r2?!;SK@zKDN+syH93Dc3y| zPrR1*JvzSc(O}&8)`s2lD)HPl>;~#1Kvs3Y&6{Y6L5(y<@EyS7HQNPX>VYm$bnOU$d2UfdITZPJO^>(a03Z zDrP|-mu^-Y?V0yq$96&_Bz!gdZvN>m1WR zN){wgS0++sr_6*gRZlkwWlWi!YEovW#)+?iCX@v=Q?UZgCkrf}3{?SU%W2`o#RvSd zPbdY*B53xR_xQw_DNgdmW}>4PyltYJQuB@oU>!)|E~N;T5; zx4;QRSUz%NzJvGkZGkiVX3iUW`dW3O8ePH4g}dHwq+f ziL`#aMkr%uJn@&j<77$+jxSLij=@LkewDTV2=;$Z{mcCSkH~{~U{MYwe5hwir0GSt zj~$o&h$nmc+Qq872(s*wb5AosPWIo*dRaVj_saU)hC4CK$1E*Vj^-=;eIiS1UL$u( z{fg^IMB5BIM3hNZ(kqMWaTjwJd>~}b*Yt#zoxW8R>p>+E9zzHO;U>maa&nc-t&Pq# z*GPZ%QZCDE6{Fo`yQSg$bnX7US()ZuJ|>TIff8F16kC`Zf9q=T#aI(wP_6VPdiKz= z=FZ|L4fK%Ts%ibRi`!%pukg!Zk3lKJ?I`?VCj9N?zy+uF7%ywNiKSdOcOmEA16ZPF zgL-h|;bRALcGV-?t)Kp~&k*Sy?ysZp*yMl8CNd3hrUW@)0uXo(3IW37T?h|e@yo#@ zcUKGLybI$}rHGjr1D?h6<-%RVd1o3ZRNtE~cfR&-h*R{ry(rX6L!TjU*bCl}!upxG zcLuF@{(;9B>RB_ePBj+csVzJNvno9&s`<~TVfYUk!?0Gig$?23z5+odcJ94S^KO5i zW~z=MHLYqX$bF25Oy|kaE!lQX z15dQlHuFMaX~sksJ-K@nl2|c=&gOsD%ZDuSG5DDgN6?2Xce8vPS|#RI*}uZS89qlv zcuCBBi9@>%k6ERT(?jGLY@@U^t2*XsTCY@q(!;r#hgqG6*)a(**vCa9Miru8RfgL~ zn-sG9*XS%tLCPE|NjYt8A6nm1Ze@^iipk2Kd;9oJC|cjfRj4t;s~`MMgO`6inJXd- z!%B5erMjoa9f6A@X`C!+v!&84oGiAN%&pf`oF6D;;Z`j_h20vSXVc-tHhs!c^vATN zHm4R*r43Pm4Nel3mK^8w(`h?i!az;!^0C)-Ic#qNn1P;vC<>`(<^tI8$O;^{4ox7# z`k3k^HwV+Lu0Gu?n})We2)-Hjb^2WE_Oye=ppGBt)FpL%LV7$$MG@%vvKwKSlG(f3 zPXM8y=aAe%&b`OGX^6{#2EK^S&P;2@Bi67zGoG`!gj5x%1yMe3=9YgGX7)NT=%4e= zUVsPhp{nIw?cX0LN54-=@jia}g7JS*#x%lDtE1ZPa!SL}5Jy(RZ5GM)`t4`@`oX`F z^m^6-Q#0;2Ke$d0th0*wl81j0ezHCor6tDOx z-y#F5%uFR7!9)(N7WaSphgI|RpyVbBMp^sCKXKQPY6i_9QLWDfD)Ok3TQ&AR<588| zpjty?&5+6cU@$UQK!z=^;rAI&tK>Spy?%7^o(&QBN$bGM+6Pv4mIEtkN8rn91XQy^ zWO4YUVj6o$`vvS;!vQ77Vqza8x(~KBQvJ4#QvD#;z_AIbzA%5uF*v(a?^L_IN?I~v zBEnyyGGgA`Qn7klTU<|^hHcKc+%wN(V zzvK{j)Ek{}B$R(G4S)xa28{EW<=<_{m_crae76aKCSG>Ah)gER#t_u!JkA3W?}8rd z8IJXU2Rk#WoxG-yHtkbow?~N0qWDLplLzY`_pkQV#0{&!v(G;J&(`(>1XEKpah$8v z1K5Ob7Ew1pB4Ws|c|e-UV7(~U78S`VLz2=hX#Yf2sKI{!^gRHXs3{07y8OgU>Y<Hve^YYT+$ZUHzFq1NH%$9$uUJxKCUG;*1oVItJyZ6!Y z4IA`=-t#RM)0@-_>_DGf{%I3F74io~FMIVrSIB=K_5rK%=ejCgQ)iu!mYrQl>mp&f zEu@)b3X#7>S0C{vqRh6I8Mlry`^Z>k)C{gI`=W`7V0sKc9d{^d>P=%8Qu62OZ(3>Z z94j3>kChIdYo+}cXr=RV7TPlmbJW;8WVxQMgJG9I$b_D%!z28Nj#%9&^#Cg#ub#0! z&)9#?23ZrSL}sD!P1y7&gw2W(CowUC9<1LQHPhkN>u9=f2Ur>`iCy~c zO0ellxamr?=}NrmO0wxnI&q~#LpVxctZHNunajpL8nSy1%E%4-U`FBFHF>z3e4#zihV%MS>c_Hv?A68&=(jVz ze%@oB_u1zI_W7W%xBsYpKcpX-e!N+iK2bT{(w2xi(KBG-diO!^%^JaWy?lE)B-xnp zNhlP^KMx5J-lh6>Ew{yTUMXFyz@)W;35k(iO0x5n?0kO{ z)qEql)JQI!B)NW*la(R_VpQBtwTsBxwg`!|bi@*Z|JqlrOx46nq--MBC7Ku0cM((~ z>mx7`FDSE!;j6IJe@{MrRt8<&$|o3TNK8+74Lb&dDu>4bbCZmQbI!e-5^1Xfd`}0nvP_uqS(#P!@@Zn9 z1AWX|0F_@v-{wfFT5W%>Q4^A}tlwmn&Jpi%<%?=cYoqSE+b6*(O;N!Bj^^BF!|n2s zj)wC9LD!muzSGGg)Q!3T=^H?lLwL(@T0>VB6(L3#{cwqHm;kzIIXDU!w*l}3Q}TEs zx-})f5zJ^_Wn_E~0P00o$e_8fPi7iuOqmw3$1SK+g@mVJan^tNntzV@YBJO2nG*KA z=c}vpWh8HjpWDhASRq8WI!3x57(%)BvD@n7AHXn?HBOkMF=Zy3Q_Iu|(^cr^E+D;; zVb*rSWOTv|;DqTm`LsP{P(4$&h$u@DoY0sVm8~wMlns`xt}0t<+3MavOx4D+#XpsS zWjIEZfvH)md!2u~_tEhU8yHyk`P#I)lgbvs=QHPofeEwhYLHapgxPAkKZcNq=@xkO zR@1E%(bXiuuG$v5@~EQN3)ztyZ34*t7zTY|tL-fSvYT`NLOu7pdhUO00swhOtI>;L z&>;!$&_;K(8{MIeDt)-9S|yB5eQ~?Zc1QmUXfCh)b9aB#*N*1<+im_AodjXY9}mwl z3m2T{EL^a~EI?%}r_04Us-L_c2lE$#t>1&&&htH7$&Pa?EXk9_B4IJpI=EIL8BYw0 zMru7!U4;Fy6H35TxlKeB8ru~>W)p63?z|D_z~WVBL<&Q-$ACN!oU8#2K0yYyO}&8w zf>`n|Lo9zRT5o%qXr4P;Z!6kwD<+SCoeKFoqmaKZ!|c{{j$6Di)Pb9-F72mPN$3qG z;w|8Z_xn{^+!OF9LXbp9aT{*Xf~EX1?E2~Fo)mU-TDzHPHz)T(Iteu1 zr$O<2P>*v(JCZ5a}q7q)uEJ{TTlVCR2=fNt3F0@<;HZOD~P>>KyqprF%X zcWXH4uG)sW4i37z0S>yWaL`=`2i+^nktPnG6~kB#RN7_D489G5P(VsRoI_{D+*ypTVC-ZgD zsuS~iNb)%Vb?TatisdO7TJajw#t)gP1P$2=OqpcNvwF&z%ck1qvZ=ATY|5S0Q)6@4 zRNGuO<<9D<=P;L@7b^FJxeV1h7iC)o^*w*ztL&Wft;>CaA`6cb_3W3~^;TFUw{!0t zqOL24;AuI8T&eWRHj%au|Cy%E?pY82v$Q#LwzG66&S#WjIY(8Dh9|KWOR5Z`;YmB$ z^m+pYeyD{I-h`XDhJ3|`ryaj_-PnKCtQfv{9#4>-Ux38PSjr8a;+N&p6k};93MX&cl=~HeI~j21Y1TKh;j$8jvQTf7*jrg zZ4;okBAlV#I_--H;|!pZjB5{hlVWTP45MZ^UVAtjaL2YY96&RgJriTMnxi?i_#8DL zJe?z#OM|x2=v=$ac1Is?^w9I@=zI$xE&qxs)pb!R)l*9Klv2H~no_-UQRXJ&b$J)ZiJZv@+;9J7A1ZaBmhDOr!iqOlCPOa)1(dTcy}d?} zf)2>A<+1(2J`kM-a(?ayd;)tH|DYx-jg?wso2R&bhcCQSiw4;p4ZX%&FbZEcb4NGx zJK&#DJ9tw6@=jQytP8ue3y3rSx4-Uxvvy_i4=~g>3_Eq91*^OD7asE!`z(`@(PP|< zX-UU~_*c0Lo(dLiEt)YE(xAm3BNQlBBA*yoUXDwC#SM+eV;awNSeXth)1x}mVKLIU ze&8e4!>;r&o9JOrdx%gUxl6G~x*B`L9%}b8hU01Xyvgo`6W#OL-P=I){sduvHr?CQ z=x4Q#5{eypXKi(3wZP6qwZP9>k^Aw+Zg;2-bqOpAAhx}6OyOL{d!tOLLnNAT`W*pE z*jiGBbJg^S3*~8$qV#(aQ5-h|n7;H+Rhk`(d~7C9_=dlajN(EuZ#Bq9ku{fpE$t2&OiWmb%D8xUqyaL4Rw|aA=tbk+HKzV|`dBlr z8WJNLZ@4%1hHqr;zAoB3xoG*bzU+N0$9aB!C@Q{_Og^Bc~UIwhsa^=9C zcRfU)c!l?2{6o)`ogT{cXc>ZZ4X_SJhM0ulx*=mFkFfAON?CT`+K0D)j~QKQ88GN4 z6p^n6umFo4)Ina!tzFi@6`ejqK!Gv1-CN4q$nq43)d)eb0qjc;RrsiLd3%rxsnHo{Zh zGOMeXV`ezzR)MIrZd74wRL@|q#?4{dY4BS*TNL<=lI79zZsI_dOjCF>}>W4%7~E&W83JY0bw;6423The-TnX zM2c&-jG5ZVfE%d4{kkX0yKwfO3Wu-)g49y2P@>e9yOOR+tMKYQu+{sGxr*<}S9ZLeThGOt5d&uKME~jC%clR;~1uRXMN1GLeie6A3n) zS|$LGqPX%znA3nEMr496d#zLi2GGk{^4lTu`3?TPLJjVruXWEIxcPzH(5~(KwfvsB z?}*FIwPyNK@e96|G7FxYl1{Gl() z>QY7962V7(V#jN!-xqzAYwS-RU_U<~IVa zh_AtILR)%d+&ofgLb+yy$k|9EXC0iPi=5?HV*>l!(RRc~jo&(HVo}~mS2}YWz4|9K z6P3X@&-D^tovPuauRm11N8$BcIDFGy9zV4w6UI2k2Xd^S^?+htaf)QAPaT5S2d!J8U-#0vZ7q_wdxo^4Vxo;U) zn$Y3_@fhKyRkML{d=W8+TFnrKff3hnQ|KT*HjXt|{u^w2@83w<%&s!Tu>Xi%tiTch zLvB0`)B~;}Fn(QZQRHHaym4%i=VFUIjV&5~N6LHk?$tr&2mGI>tf@yvpiLt`|9ugI zA46lZMWxRjQK+nv*dl?#D+d}}7tn+gDN~ot%2@U*{5j2BCwfdMr%e#9hj&<*P8o_Q zUL`9(yME`&W8Phe`tzv6JqBeik?&2aJ5Q(Bp>r{Sj!``;ANPt&+uXDMxK}^Xuus2# zzV{EwDSy?wL4K1j^1D)A{pcT}+M>MPmpu&@`!#gH$%*}NmE8V~a{FU)J2mnT>aE#L zvUTJzzr9Sqj%okA!2-A*0DWxn5jH_A&%6)?Hxgd>iUx& zN(S=Me_~2UBtNYVBH#0TTTTrOg7~}g)W$V^s=cNix2B(M*7T_jYucSyQ@{*=bRMp{ zTdryECPuq=Z!dGKY0_TPPHRnp=)g7YY_XgSk8=~Y^tYO|92T8%2!oX}W*P5m+UZz}uO#bzOb_|*nz1E~D^F?E_SE*+(zNNZ-; z@@i3tAM;&19<=4h3BrLWBF$A=Dz}@~fTObsVe2+TToC50QzaTjm^u&x*`)*; zu?tNAEepVQ=v4x6Gi}Fz#lP@}hB-Fx(gZcaLi2C{VnCh05Ou?=Q0(wqlgCy(K`(BK-!+)A6$=m zl4Ib5-Wd2m@!t@OtwH$kPNU_yYTn8hbackQrJRCQ_?u+x-}Q32^rSaJf2boQ>uC_f zcHz*s;t1c4Sxpp2y%n(8)1Yx`-BnMgJ8>0wHwJB{4BBK6Te>M|b5JuvQd6lu9>B4y zftyWpE^xDpz|GVJZVni@nYh4BICq-B&BOvXk?lo|-XJe_4NF~c)C0ylrt16sQSqn2 zaHyz%yNF@&IbZ$p_xqZ{f3BlHK(zHktCoDq&>O9>Ejv)7-#rBbbR}3w!S(Oo){hRLvP0Bcns)o;hrVSxtzTp)pXVslWpfNOiW^5i=7|An>BdUYoaF(GV`Z?Inc{eFn} z8R2q$ENmaQ)tn%v%w@$p6FivE$c{UNs#$DIuCQH%)>$rMB>ai(!jyLO2#SFi6p6L< zZ2+-17?|8)f1P0@%7_axVh8vWAgi=2_IUdjF;w9A6h9bSHYRLgz@M=c(A}^?&2 zsFN*U>IZ+89)bi?{r5|6rcwS%x=^5jLKCQX%;+k?#kO9&Cr~u3ZBTKr>1E5?Mk?e) zQ8rKr8}P?mp-}9a21F}!e40!Fdv7>rAfTz9j_DZUf2ZdlOaYRXIm1t?*4Y%UAlW)) za;lnLqu4WB&Yje}d?iG>g3S9fR|n?(=?NqK&oN^mnKzO)#blUez0l-JYjqvXBuOW7 zrKMSJS`kCl@4is%TR2O5Gw0FX41S(P&qM<#J^*&MZI3rkI6Cln>|YvJKn>U{17`jK z=*@5^e=kPKt70GcL=!4{CpuzB(IlgAe z^~zH#@}0iiI3qs{T*nXddWmky4_6K^Xn{!zo5sV{PJNt=c~SY?g{AJ;a%Tgz#X|y; z>4lI?7waE-yVTD5f3Cm81Q#Q{YYxiNPKRD>0%E37MO)1a zqna*2ba6YXi2!EDG_^jfzu%{aX5WHA2@vT}hfeUD3=s>nIwLfzw`M4>-|x$-ZJszy zZ}TxvSh9us0UtnSS^d{&0FPWL+zIZJ*>XX@P0X-NW&M8@|J3a7-Io2mJLzc6>R6f^ ze@LI@&;O|@9`0|_&O)xtWA!%Ta-oFNDY=Mx=1F{=HG&H7n(U&VSn*{yC&ifM} z>3tTRMplBH(Y!w3^|N)fc2T8{$}VU`^YLU6(`={eb;OkeG}rJ#d=sw!;5!4E+6&cR zU0#3h%5y~m)t45e;qZ;7n^gs8lTe)k$9oy&Ayt9t>kJMHf0 zMcrp3iI&%|T+&yc7$#db3>R*>gs^wlFtQG@J7$^`y~L&HB~6N+!kNvu?EQu3f4+Bt z_X^|RaTr7hn=+w|KNPa!j`BV?3FqkRM1WY*OoHtNA!#gHS*N#AF1J(Tf+ph>q%+6E zy4o?SwjlwBvN#gcw&BNZnvfcdWMy&`S%U?8C-k4SVFmeRSN&MFc6c~buQS#qG?@Gd zxn?kV&m#LeQ}`KJ;Jy&)JSpdqV?D1$b;&8T2hB~sR&VrO^~N1QBwWz_NswQ;w^~#{5p2u_6{RC; zK!xUWm8B&aT!=mVB3S@Jzquki*u(RxhF*-VJl{v~FF}4TG~o*>?o|0Af52LM_2XZJ z)_-WVxC}~G51MDQ(=Q(H^e}fB;yMcIs7qRDNhEiK$``V+X8>FR8Yi~EE3;R5zDQ|zHzP6<~Y75Do6ObtSrf0~C_Wb%DNr1I8Z z@+{e2Ue{MxQ`&-pm&q}r{4sqPQYt0!Ya_}q)ZwaGRP0Aa90D^aT0^U;2hRJ z4-tKL!O9l0z+S?rh$DudG;d)BIV8Y3xKTk8nI3?RmblCYn_Cv(>o%@?1SgPeW<+2) ziZtCBkqMB(j|3fne`E5mtfFCL>8PVc7V;hF*T`gwjyicdkOgLrS}j)T9o;y(0}RAc zC4O*UPlF9je&42e$!&0?WD*>y(=!u`u%3<{7#$)IbQ?LlLsQiTaHOOW&=Y_owQ-f2 z2NMJrJdK7+e9Hf4Xy7q2V~bBklp5h>^iKAdub(^ftnfU-5uN=lnR33X2$@n?)4QNd`V4k z_v)?z8U#O2>&GeCB7nb;8yCupWa=*>t;#b`d!zEA;@5m=%kddn0_v{I<3j~MZI2CUL-52 zhg2P2Yt?jcqoTt{tFTbm{c`vGhVQ#Kd_Od5eJ4kZj?U;)g<04K?Y2EyUjD$- z>OQVaNVw+4#EeFqMN{QE)S@ZT3yI}iYp5$aHO7fi}KG@OKt0y$vJiroRhZ6NJr zm>JI{TklZ2uUdTN+Z}5xdJ2Br)2wn&6Xkm7TZckywR431Opx+9Ae6B=Koaj88FD3V z-HDoo8ZgX)29T@f+{?=hcLReOTuW^>v^Smgf35b;@v8tuXtyPL+YZMPGFn5hLy%KfL%9@+&s0&;m2oaC^`uRco{82{EQFiEpF+S+4 zbXxTkp6MxXG<=a!0ph};Zazo|nP2lor3&mTDtZ_9=@sH@U8pO#(_z%k15MIJTkdSk ztUIZzkBe*$uJB9POlV8(if|>w{yDF>e`Epq;`@U$c>Rxvto1GO{Y6L!=&}UMUJVM& zs?3#Z%Pb!_13JPY-)M&KU9^v*!_ccCC&@uyUReBn#1J53eG%KXC>N<0FgG89ysF~+ zg9D7~fdL)zG9k8w5WXy3R?Tu*>xiQ>CC2qM1Q}_j)ZXqLK}EoNcgw-m{$2ife<1it zQ4d+7a(4AFqX=UC@ zo?MnFU(|@FEl2f}f9{k1if>rRd3={6CD;dNjbI0mb@0@12iwyk-!S!J)gA*ZO*!ai zc~g?gXn5G8WKDINkdhaR6x>K3f3)%`c#2xUX&qr{-$_Yj0DB+H0i#x9S}u*sY4XVd zoB`Bkd(MoGJ-nlwHJo!C+*V$={`a0i8eORdFz1PiEMT;_!k2;J9ElD!gVhb5@oL|oKonR z!%i3OH*QPTdO?kx6W5Y*$Lg?`yLtW;q&J}s9V-=(*>VY#*#}Nj4^x<_B~V(r$oU2{ zx%g?{;k-NPRwvkkqMG{U8TLkdB5j8V9JiySQ*0@Ne-@hE+#AcFj56=nQ;pt}D;>@1_<9(hoWrXSZgViLCq0E- zh4ti*13QiT2&ylBfU^CN?#|k0)p*QKy?*Pc#A19fR5LLk5u!saNw()C*QKp>< z*+bcCIt~w%)#7-Z*y;QcZP1ZUVJprz_e*P0U0_kHX7awkc*Vrh&f3!Il$!WU?KDx* zay!pd+8l;G%hjDXf8iWX?FS<`cx#kIApryv2$^jA<)%lS{ z+CN(rR$x%r###f4*5@Jf!v@D=9(GP_saxxdZj&ZN&tolk(PC-@mi%r^X_4kona`gI z*}}y0Q1Ml0xFuRgzdr4w-0Y|dy);)pgWh>>p2|LM7dVWC0OQmu2)(mJ0{qph3^CwR-v zNb!Ndy`fLb%&Gd2YWOc>5TCEVi$~UM1Q31W*ie*mKKg}fj=&i2-cSp&eC4nQQ8|j zN^^#H^frVMS=3PG1j+ntQ9~{oh&3}xjUq^8Z)(&Kf9sVhZWCoXjT+K)7mXY8G;SzY zQF4~@->k+h2_Hsmt`Z$q=NI8a`xrNKuOC5u}qc%F0%8eq)eMYGUceAe|gRIxllUIxjn0 zkPaVzSu0277y=sD6Lor3-ojkQf>0!kO7qgFXqKdPWmWz2;NOo3=6 zLE(TD*%Y3-;UeU-b}rN+R&r5up%(M;-SUQNe<&xyaJf{Wz6-Zwxp-u8IH0{ti%ZOr zikIBv ze&4B&6wLEITHY2_&2?j( zZjBM8p3sTu&0`T_HD^o@j;ymh&FXzyK5f33b3Cm@_ola+#&qK}w%so6OH;Zmf9U88 z7Dou^A}&z4`%>@hx)HJy7K;v;u32825C$Ag-ICMZHuGFo*q zJTh&FbrSf6>8<-B4xY1Kd!)>E^DA{q1=A0mer$@anC z4R6tpH|obX$@IEvbv^t<#(5Rvk$bFD7LfrUrcBgxI692hM)i;X*=PRb+fEEgn!c#*Mm9Ut zv?ljUO9yVD6L*L3MQRdqEXtkRrMI~-?e}~>LRfXV0~9o^I>0ov{%LxjFy}qk1JpB# z8_}hmx)(0MUf2n<&u}~Tf5XmZKU^>&6u55DwxDc%Omaf0+vu*5T}*e)&7cz~l;?N&w}uzsY-{8(BfmKEMy?Qr}DuVj;%iB|H$ z1q3Lxf={|S(B76c;(8MSCuTBf1)OMm8nt;5-xpQe)qwxMW}T_qMMokyLgRH$J4e;yA}GIfA?+m3@xr(~f|r=L*AMfvbzVCNng&L~}EBuUgun?uC( z#kGI@B$0IUqr>gtp;ivWG^MPQRx*;MpU#K(ZQy%to~OO)veqQ)8@Ajvyt;3s4%iSr zXhz_6VI98Q_pmo9T1jgrSLtFwb2rqw<)&=(3(TfvqH;RKf18e8`Dz~UTMqzqS);-V zifGEzFCwUunFU0SUh3I2T*~j&l1h+yd5L_7?jf)XuUnf zdv_>UFYBcLUNB@ADrA+MYyJ+|bv<;5qf-l80K7je?M zhjr@dnElT{(+7Q{4?g4Di#BC_fREVxa|-!5D)jLW3Dj#zGq>V?ps4G&?JS!~`IQ zZ5ny?v?1H-(#@1hTKK6%sp(;58@$n6+lrdJ`a%wVLB@2U6_7|Q#a|P=5?v4$8%Q** ziytMQe@ZmNE71%ue$4Afp&zh-|0;E+#3gzq#kc#WhM!h+w0Y!l&w-vH`2X1_V5uui z;hbjx40%~%p{Pljv~)>g63%hS3Wskd3(M*H(!`6b^da)HV)4}_wfAl9bV&K&YB|h ze+&eI^H^BQe~GnFsZdaHt(ry#fZpG!;c3YjZ>k1>-I<`8)p)`X=s?Y~+L9(4mQ-tm zXh_<4ap7kWrMCEH>D3feQ>_`2x|$&h)LvbHnjsf3X9D8Q1(+>Z#jR$@1r3bb1zW(l zO(~39PxDJzGeqWt$kI*C5Ojk%i5*SMe;D(z4TA? z1R-v4d(z2haThk`)@G8exvnLxuHA{QRW0zRq}{b-lEYTYVHcId-l=_>0sEc;%e3`@ zH|oL?>ycwU0$Yy@-FhfS5Y*{gpixSHuGeBDW$xA^RO_wwq_;&+rnD!y_Jr$^e*mhB zL5Nt7AV14kr&?8F&NbGl&12Q5bj1CRa|-8Zjdh&2Nh=g)ORLVNK9CgBvO4E{JA|Q1 z5r)!Nvr8MlMDbv>)jD-yr@)TWb8gE?ZMbix+;>R< z)4NwSYp>2b)_J0O+%aUIgku9-khYXt6(1Q_8P}&2TRv7K0^R|Ow+yZRA_1jinB>(l z-!p=URY_;>;&V87Q2{Dae+O@gP$aD1&?5%mc<}I^dMz4_+haF0Bc;)ZXshzUS&j_K z89f>{@N&*S+G*fg7v!}QaIK}+dVAx3bsX1gzuwyt|8bk*Kk9CmK9hh&9^5lO@4PNJ4@@-}(K{z17t-BU>^`zW*oi^sDODeVlvl zdH&9x)&Emfbr5Jqf62v$4V)((V)_Q;G z6v&F(nC{z~%(rd#b|3(?nQz-FYR=Q=@;mPBZO@;6Z|@@fb^#6SN)HDLXvSlisSu~= ztmocH%|67IG4J}xtwJtq|0wbSI~txJ3uU#le~Ul|h%7;NT@ON+&~HQ2N67Ka zv<5?1AyxfQ77d?4hUa0q8DEb-vtU0k9%^;wNtx=r1%K=|J%*|scD~A^lOV;5RJwm^ zei7#0nu4~wFSpmeoK$eNE%NKRKZ=kMnfs0!I2h0@Jol*zX6sMO)$pm#=jWB?l}nwl z#yC<~e~u6|*kcTj27%1x=OFK4g>HzosIw36aFn?~? z_?40TqP+u}*A9<@8fqQ(hC4h~>u`$YW$7G8f2P%}YBW|mAJ1oIIJY2Cl6Fr?yHnpJ+i!NDc3Brd$g=?{n=$EBq^-r zNj5dl`iBOwb~Z?Jc%((whRt=$X@FYgf3c<+I)5Y-kFIio^TIuYRcXmmoj=pp2v2T) zB&gLQJZ%&%(wi?UUA4P&5#F>}r)_AKVwoj(9@V-#6lyc%k4!7~Di{1ovgF_N*E|u; zKPmfpD8o--zzpYdT;!`Xdw(D-1|eJ;j##7mQ&9ZS_S23INIBKMZLWCKU>%00f4gP7 z+&blSt9OrM-Llt?!A+6+kvFfNmd#2D!}FpsyLMt^s9M!^tF%?*n`92uZ5!KgL&PoZ z?z39MA4UEinWu~ZxQvK6OEYBmCes|J@`>zyfm+4Uqpjs~_6s44ZFS1m8bk)_UN4al zYp$}gh{{^u)5yV{gEmoy$+lTFf4NB-jmr?{)m~M3e?H77=xl2ZyQp2sKvZZ{r)3vT z%aPFfNhc_�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\}_ee!QZ1n4B0>36D9RMxsnRrEaWJ(&<5ROyyG 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

    OPIE@}2Oq=Fj;H)^z8ufW0rsb$JL$W@z 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 {NTCx)i#=wNiTu8#6jHXHBe4hlDxii0*NQ!SUW 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

    j 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

    YJqwjMrjV3Ps6;`Ze~XHRmx{{bPXHk3 z>6B_s9x(n^ah+mjNb@_#EUV0^#X?d!Rqt|F3rrfG1wnY!N>|tC1EZgpX=1>xaK`^G z9ON+Qi6*L*QUgO)IEe`YMHsdVpCapJt2eG^2KpXc7cDPXuXe`u8lT!}ob#bN=Y_F` z00mT}%z(a(pbpz8f4ccEIt3Pk$XX`qyiclsCR~qR`;apWpS`-j<28k$467Y$)fXI- z>Wn0(xzWPvHK#;P)clmfe*p=TMpjrH9N+d;A;hI-8QtVEveu2dB~qdkrkc&9KuQRp zW<=s*8KU5C42QspGND}z17^YBNOjvVziR<9;70-!?LrVhe>o^d3{V}i129wbSa7yC zFO@kU+Xh6k?Lp>yP5E8UYAgd09rsviw*5p9_F!!Yr)>skzm%GV*`tM!O6H`@`x3zv7C%h~e;zx1e-PZ;0TDYMr_qf1w#%qWnJq5+DP^)5r|grr1;L zrQi=2d>3bBx7bOrjXiQyLa*4!5fAP_VhQ)9t=fz8_N=gfP2s%$JCM1M@D`+un~JXGW_R z=w`bgwgI-gv4Vm0O!pFv2LvA~!G}Wdf43hdz3)fjyYJEDa-6wCpc&cr1V57_Mjj8g zAm3zmsuwU!r1h-mOwTIxUiis8xRMG|%>&fXy4@otg_B~+dqq1McG2V{eG;eZY#lMs zsiQ7B+r){?PQ-G2QbSQFd=U0TcCH8?p}~ySk%KX`Sd4<3!ra${R@3b_C^sRKe}-DH zCTc6|QKPK4kV!*dxglz6=`Cc^a7*QeFDK{TGLT<^f9|ws7m=UzU5)%C!@8Kpz_^^D zd?EajdPG>}FuLak+_KDR>uBt8vn1~iYRMwhH3{2mqQS?pN)|{gr6j1LMQozQOrdXt zkUa43h+FR%GLdRfuX@~m!zMA5f7QlgjR}jj-fvtDIX7FLJ7qEig3ZFyJb0iF9;hFA zpidlV+@My*i-iGAK3Z{es!OGve|)>&`t#O!Hp`~e66sNOsRbYHI;`HKI&F;Au)vNp@kv4vK3nX}jmt!l{FqVH6HA^H@b6WVj4 z%#K|KbA>fWYT_5v#U3hGe~WKs)C4K~cWUSZf0ee~8Xh-aOo`Iw!;@5XTRmBXkG>AY>Ac?@&X;gul2Am!5NQ(e z9K*|_VZ5fgd6a435^Bre@5WWkS`RGqO-zg2jAgn zg>tR$a~TO`3x)Z>fMP_LaXly1uF&eRo?&s_->}`^O({BzrVI593-!ba^$gqY$w(VW zn*(^;N5?u9vEi}%b8(70Wva@q4W6e{P1OHAMf~W450?wbF`q{hp21{~Gf9xi$ZTE^E%1Rd9Gm=7`HP^km zg|GtE6IpXT76AH|YNJROJs}4G+j8j7G!`6aJ6X zgJ&c!WR|UT?Q$K$TATlW3?If?QqgsPaSym4ZpDV zYfzsSZRPUlcIv?hw>%{e0E%zAz9?Thi$zSe4nAnLCsD14Tj6wYTu)gl$do363`648 z5U+v#sJnL90t6y;CMviTMInWR{YiHO!5Mple=sRx!sg4x*HK&$&4Kv1!WzdWA+N(vNj;!dvy)*-wrc63MUJ`9+&4S7cEt!`%J zLLD$Ze~uTNIs}0+YT$mTnwt$gzNG@1y+cyV744(ip1w9f>`G=rKm-z zQozKq#f^{^i;Lr68Di`~G##QQqyGtz)Jhq+ExTe>>+_+&OR{aUu?I`VbjCMO`Ie2c=gD2Kive4P;n(Fy75tx#L z)z$JXV^NdMuj-%Q8FwR%;Gm972{+tCxUms#I7ztS_Jo^x!i^V;Y|}aKf6nEccXgS7 z);XWmgga#d9t0gP2^EV~@+$DKj;!60VYn&3lQ<3y-@MNic}s~tv&d;mbgm-jeeN{+ z1|&zQ=I5lz7}!9nkM8QDNsuDr=s~7CrSZdtoBXi99$d#@FFlfCve|uZfpOd&pAv&h z^W_ZPtK`v4?M#&+&otqre_b$a%Fna7Wl6Ph_tu1i^%U-DrOY;`^c+`&T;u6<2j8YzKa}32P&s@WtJu% z7|jvnom!ChK!a{)Eyz2yAa4!ylkT5{42SwJ9O82Ij#I@tyx?_Jf0%jz7iy<2gkNyV z*K(&yeW8q_ZDtIW>Ouq!@U)vLX7{-Rx1oNMOiO!I!O&h=N5D z0YN3g9`CGnkE>U%f3KAb%c$z40Yn`w@kAW91z>&dlz*ggewjk0ffk3fPZ8!Zt~Op( zM9iFCAMM0}UWIF5I|BeNL6}O%^qF)RX~}q`DU+(;T~Nn8pAT;#I=44?y=$&6cqdN= zYf0wemcr(NY5lIm)lX&Jvj*|MM{0Ou}7QtBrDZ$uKU_@VA%Bi2#|%xI@Q> z#l0M!KxWroe{@9S`1@6dQ2@{opMHTEptN2mQ#0n<*pG-b=!{Ds6D{=5{}uDHbXyOIh=w?R`JYzp5}9gr8UDgm&Fw?WIUxg{9P$-ZCg;bH zM+1*bdTbF6IB(Dge@Bjyc@6u8njOjyaeffT2QonX|SY;nEB5o8qEkAk%`}cL&CzOje9q7Q1i)1HfD-dnxXldO8u=1Itw_vs#DJJu{VdC#jU&tcx@O z5j&5Tf0v&QJ1RN{>?kX*(lPX?8iIjEREo};SKvBZAQ(Cg1Vcpn(?yAJLeI$L(rXY} zG6%E$^Pg~@Xgf#if$UcAlFoE>5vM-NuNsA0w0oUDmMw!kXqoA|DeYuLJfH{W!u+ZQ z`AhWWL2)4;)!p)_?)Hze^3Ju{zBggES3l53f58cl>J0Uc&rsi_RZe86cQix2gZaEH z)9TgRDVl>~m+;1Old>0;WV1srzyHx)Z! zCoC??Uq?^xE;-Pm(JtYC3v!0^MP(UXe@?JblHKmT!Lv*j>{a*6L}|F{0xcBB%1d;E zUb4?UyB4a-9kQ&KKnA^RTt1syQ*pd`25wY=uO1TRf2O5-P^Xe?B7GDwe6Zy)UZ5Rl z6tZ1Nl;_Jb5odR((+m&|6kEFu4s@s3F~)FX(;;ES)(MC)A^L|*Ph9P)F0kKqf1}H* zJ=p9a74_z%)n|h7=pseRrMb_-bUho$bnj-mcl`rK&pG`AisxW3v0|FY>Y?~=y?U7z zc@Luv1ty_|p@pyeQ6@3e>Umsaq{J)C%5YB*`1-0M=l(NMW8NJc zD=&hR8Q+EwVc!$nNE`lpe}bD;HU!?PV1N1iB zDSwI#wS%60de1X6y`U2p*&1}Y1{diXT%>Cdgh8kIFM=N(ox|i@#KjPTIm~NE*3r)$ zhv{pt-b+t~$T&qceOGq4)#I9>Uv|_N<^&&S1z!9!FVi$L&VL ztTftzG!UxoJG_bMe`XPWol1=8-0NcB1UFtzQLF3KB#cG6N8OzE3N}W=3lGzT5gfJ0 z&uDdUeBE+y-|n@X1rZwMw0LKt!kwH^CF5pf4USSF+QH|0h2N>dPkSI#m;Pe0c)SXs z!z~_{3HV_%nF8CSbu9K3)2dfJNtBXQM9iu;uKM5Tj~U2Lf4fA&$auu`w+MiS8l~=& zz83&5)OEx8O}PL-pY?>6FwID>ZeC1y4-_ zrKUkcO>v8wx<*YQOODIIETlvTdVGCn0^7*Km@dW*nlo#viqAw4#DUmgEeE&QL2H#^W2#hu_!xK)AQyTv6$XMm+ZWcSmalY zSe%EDrs;X}j95%>@@*e$8f+?=oVFqs<95Vie42>GbfR83P0?Gs9Jae`L6-APkY%gO z;bfOB$g9P;%CcB>k~S4d(DaZ6IRife>Br8E)vDUoj6`SvWb3Ar)be! z+5&9c;kBbPiNq5^RcJ{owykERKkaQL9PunYnn-Pe+Q^8G3EbS>mJbGaj176oU*It_ z#S8>b{KgDCEePaBnOX=6%`=>3^^C?WK-S2dyohDNC$yIBBE()t(Y(md7$W8^(fLG7 z%}zb_e_!W~+;zXGZ6UWOD#FE;@OFh^8kB>p+_P812Ug>|%e~BTn7)rG0+F}FY?a*c zwqozY`Q^fB23NRegZyASMZPA<7K+s_+ImL|5h~YrYwQI@d%@gTr%J2j&TRdD(bsz4 z7OJl3i;?Jl1jYzibOpL*6|v%db@%#ch8g&@e;My{d6nFyfd54}=4E$$^DlZmJk9lJ z>vaHg0!&&C*(zQuXA}yAN%q^nm^aW&&m>JXct(icFbpdl`(U5jgP@T$fK4()pQ@?G zovZXp`?!eJMLgzpSR;{*&O}6(o zEpnvw2lS2vR6#>;;#y!HP1rIQEHw5l(d5e*X4n51(Km?ijg5#!96Dnl=qNFFHD(?r z5Or4wb&{k9W{$$@APq{5QPQ9tNT_*>f5JZQ&SV8?h}&Wg{3uvTR|_4T)!}4?j=B@u ze6lnI22_TcRotsClzA#eXuPU1*?6|+p%}w96k|x$8^y&u&*0p2E(xlSqbmEd`EORV z=Em&a;GkJ;$w)>6hH^w2*b!-9M^tEE8~0m5ze@<5xw#_rg*p)5fk`)vC@cZ%e<66b zkyad=~|*@gSu9mBBttmZzdE37vZFf0QEhp3geXyytRkh5FKBgkYe5o5(X@$E9Dec+`Adv!E=t)t%X z4zO`pLrSC9{KGV2l2Tu1TdA+JC0@OwwY?^g@=_RZkp(vj8Hqk(O4g0^TrudIxya_& ziZuyC$pG}O6@6-F8Pg794}c}Jm;02%IYl3$9veUW|qBUIbw;$sY6}UN`DqtGG~d* zx8vL8;mS49F?o@&e^vRTK=D6bo=5#Ze#=Sf_?D9P@lEL-8FB;lgOj|K5;`#F)hlX? z8R=q1x|sfO(xAsiF@%A;YM`QBAfzs2%|XOfMR|v=2e609jz3-&!|L~ z-6FrpcXbPehpIRJVGIb0WYxWBNci37(Wsmh(IaJY&(}%ohyE}|1ZPmaS(|omM>Iu| z+*5R3OdvkCfAEsbL;jsuYi0(@#aiApNmGt%Jn$o?&BC52--)1*O~{|xPyl{&M z08d#%h_r*|b%b4``$?wcLCfBh`Fju=lWS#MT6J<9ZEmI`j52$kRX>O6oYlLX8P`D? zH_wDtfPH|{c0P4A%svyj%-2bEKz82e=0~h5(jT#ie^9UNY1&Dj60+>i6ErU$hu93T zHsRXxHwtS*(2%AFkZonrYcyTsA1C)6_lL2l0thOM*9crDM0q1C6o2dE46$|9d*2X4 zFmu(ZUjt9Cvg${^+sU8#INw)gG;lLt0UZjhL(%avp@;xH{D`llRh{omfak%Ay*ClU zvU%M>fBEvuc-;a2y8ZR*_Ur3t>h3^$v3pkJ%dg^|Wq(gm-&5#4s!0_c&6`V$-q@0K zQzUc{w_BfuW%}3~nB!p23jDL|L6-Evxdup!mRr=jkI9$+gu7qp?>E|=k^9mf0f7MnUfV3@_aS*s8<*CMxn+N(n00p zL1GQM{3xj9g-p}4ET(GyL^c1-9yS)B9@{*d5&O-vL;vh>;@ODfcv_^b7iQVFIxG7e zGaASTmRsVj4?&+FTL`#DUE+G6xYR3S-A1uGmK`e=7Z%(d`0Cg&k_3noR1c(;7EuVL ze~aXg>)b`c#bRu{&p4NCC=(l$iB?loqlKeD8(C0-iRI(!oqztZ&wmSi*eq}u)=`QI zQ>%MFcx4rxAS8==*`fKP)?zx&Mg}Ngz^y6^lY<8Iujp(2?h~e{N<)XRLF#WwQB|?l z7&;TcrFG1t)ez2@rdDoJe+l>-xQ&)0Z0E(M0J%fjp>|A7_Jp> zJNyoinWU>8DK*w;;z9*69e!L7|IHCP6;$6J$plD;KTWCGlm!hdK~~BrRY?K~tQbU% z^cuI2UNevM+8K2b#nnK#X4^ryn(l;|NSgo^>O?Rdk)`E(SoJ%Cd+sYlseM!ge}9=1 z!(pJ|Y5>Dk44+#}*YM>49R+X}i1Kg!}n|Ufc;jH#H3TY2` zw9twZ7)qh;-^Mr`G{)h;TX6z2e-0B?%HvKu#2 zFn`<;Sgv}<8$*qICw0kXp>=3q1dOL3#n!aDvYe{QtDemX*O zPjzw~;H*c64B?k|@$;3^?j4c2d1J~7aWTc{Y!$-?aBKAdK<3Aim;j<(7zNE30vkh6 zk3o6GrZL3z7-Abk!Z9Suz%Yh*>lpn1glZGt?<0%&?ry+`4Q~;3X=A{WqL$Io0)_ns zN7ffL*lU0kY^NNFY!!W@fAw(W+Fd<5q$-8(1lnImcG2_+f>sE(sN5JB@^WBiaU*c% z-I~l|Y<%c&)1ZUEC?Zu6rmwZ4@~3tvY0*Kjbq*&9s!az0IxTy91Si7j=CHN)GKaCw zVND{7L~zVX-`#|~Yi$Is$TGviE*=aK_H}faa9o&9_6XCcBOqp-e^Zv{S_2?k=3E4v zK@eV0-Rlqnj0qvJ>3yM{eX*YWR`1KNSUo{qow;~oiek)3mvhqHd@`JNTDq`%)zi|| zY3VkkC0&&fa&|CKQ4MT*gh=RNotPYwNu-0tE~1+mme^@J-b9~f6%`r%sn>8MFtz`l zJHCEx(8EPNI;_@;e_Rs|bZyYrN$N+?bA&pD9TjV3XF0G`$(}629y>5GYz5_s^G|k6 zF-CxBe))pVS&wrCH+6JZwX{A~(G2=#@5FKN*ubi+J zmK~#%PKzC#ZY#y@t>oE}ZKe2(Tj^}<2<)s!xmzC9ksW361|;#mC-Kbsn$>+J_U*P* z9k6@+9aP=tgU&$Jq_Db&f%Y(HddM8rtciqZO=Nhe*;|vF?(|dXPCJ!xq3rZaol1n~ z4J|su(n*H2e+d3Jg7v3bDh>UXp$tiQ<<@icZ>8soq46>6XT!ZSxpo9Jvi&T7DKdbg z4B)<0-mgrKND3}$jIMi+(kI-7kkH{!j%ct{pr;o9E{Jc5a*Pv$>_E!YhI-y^v_ynw zP|P{kA+D*f6b8D5!xYf)Nd8#c+x&I(p#6q z>VD}f$3f63(>i#|zx@*v29G1uE%L(*y=y6Olj_`2{W-WvZPkw0=a`ueWH-okJy@7y z)&xjdP^{=?KNg1xl}ObqURkn42V%wD*x)W+p?ffSWYs;e`rIN}EK}34srw!X?{_a& zyjeKIe_n*NMCd=EDorm!0%)PDkoyi@r&On5 zqEnjxi-6&0+tJqcZP&PD>FT}i>(wzAH4g2xh@R`-7QO^VQxHd*|I>^Q>Xa-QaCNvUM@fs$}0c|ocxl^$iT@?|h ze^$%SmBaRT^bI+T0#=A*3_w3;db$!wIg=g^uU zJEZ;#99?4qsJO^@+f88(g|UaBc0)p=e^?B*S_Sy>B}BuVs6PIu@fe8JgpQ`wPVN`c z=BH&uKkY{p)+6dvc{K+^imc#~#j&-gvEN}S=ke%VOf0(l$xRYU3 z!}?TEv#Q7bB-ZM7IQmYmE4c}29cKl?A{z78Y3!8bHmwYS+dUYkL-GdIt`Gi+e+>-Z zn0iwEoDA#d{zT0P=4|-$LV=teW$yHbSV6t`j2v3wNT_;5xa6zEB4X zEH5fmB=xAqnHqQtvtnjVXVt}UGO7hTfCaIuuT15Yu;_pB1!IIAr0ba zRxm%rqP}*8y2z+WSz0oYrg^TVO<82L&q$cSBcXFzdCtr?uq22-%&HFyy?yvk%xYL7 zT{2k2qGlg;q1y;gihu%;e+pn{7jE@w|6g!lnHU=H(FnXi`hYTwbB zxTCZA4!P%kA+^r^_up>kyiDVLs{ve+8-#-h@4%%O;UBpJhgA4l{PEiRK)4@w%e~4YZ{sCCbSK|k3 zMB?l3Rxlm=^U0@!ucwceEu*F-MteV--VQKjEej=cRYVW}V|duZ)#Aa2|FJzNzhhA} z{VT`$Lk?vvD0yEVrT$UDYpd5kDU!?DqpSNLxLMT zHu88mP=Hb>!>$Rfe>2U!T0ZKT)4+(B!Z)M-2IKsHAcr?5Yqc7QqBiVgcF|7bY1N~j z7701OvJAX%IY)6r2x_Bp)keN|fnlPxkvnJ^xn0}H?M`Fl4kkhsRm=?FIqOx+^ql2i z!Aok}a&Tg$5O2G5n*tRj@P%-jbmA}1JzxTux(8wv|R zwRfb57b%Y5J9dy&4x@wAu0^b_l6WKoTvZ)lp4ryKW5|(l?tH3WYPoLsq3nT^t&or9 z&w@S!+^O%r@g#9Or|n7?n0WycLM6-ne8 zgQ0InNAqX3e@f<5%dI#C=i?ME@o@^vlW_`D6LAXD#gz29oZ2={AxE4-UQFFnOuv{K zMJoV6~$8$zwJ^ z@azP~OlAe`f~tquH02%ncSrdfLc=T88|30!TwUm~r$N%_6-X)nA*W;*YiMs>A{Ewp z_$=s#AIKBbbbrBtq#Cb-6BS(NnPDxb38p?LH(cD#(dcAa^(CYoE7GuNe06J;yNOo! zM1A{|3_}!tft^CLo~ip4OnF`!!)-zLg;2rr7?Q5;>CU6Jry+NSp7KK7%pGoKNDW0t zIrP7BT64}Aid&oNMNU&C1L^47+$goVXO0la5?EpSr+<7ahJ@(a$+R>^`TT&~f-yei zm>^#LphNm~Mwsmv+l-b=wzbx3F|jH1YID3loT=PpR6@~bs7T|Viz42+uLXA-&KLAUC@PC(y1xof z^55*J#Eb|Qr^XI^pHqJH@P$fJSIdu_*X}5wLmPBONMmqIoG2fOvoe?p1IJpP0bnSr zK!b~jFHvzHSD6*GIrq%GXCQ z9Te-M9k?My#uMVr>Dp12t;L!_hlVpO{+ji9!o=xdW0pNx|LP9dLATC*vfy&3^J4ZCJqS~yG_%MGr)B?wVuzLpB32Tl3wlvA z^-6fNEI7D;{sHsu0mStYY516xvjNY$S%X${bxlz|KT(FJbIVoP@*!a{m=bp5B9s_{ zg*m1X(*IHriO%s31RH;X{6~6=|J}6c>ofZ`AtJEntDkk2335<@gXJ_%l}_)_M7Nh{ z8sagILw@;iFeacK{(t?A0JXT}oc`}-4FSQc?t@zZk=bL_ZU(LPbboc$P)LL2=8Mjl zXd=M;lk>Jf*l2NV5rVh!F-7_XtV@US8TMLQY324hBp0_Ho|nJJ?*P-`|+4os1xbK6i=QVr;>zUbDE(;$O{a*Gi5 zU}va?$s&QpP*WtMHGLgI*NX&v4%yTmkSDYlV+4G3J#1a*^AxpWarJbt&R8Mf`qIZ8 zO|}f1mev#%Hm0^~8nv2QThy1?xn0}1-PRhzWKk`#wSP8Bd~EbUV{^4|krqFriQ?Ge zFbGe!w{52G(hG}=zE%z`Idj87Kf|B*=yq&=hiQnv_p;)m;=+5f(Zxi_ym+)E>#?+Y z%H4tPF0FPS94)m2wKZfJ`G||MSI6|@ka69pE)=k?FN*gob2NsAdJ=(@oI(5IVmo z`}Avp;FlgQ6W`rP$#2QJYZGbRO?-D_#9{{;Lw_SZ*T@P64-ZkX#Y6va8+K#}BuC{GxySqCS4;AKxJi3^sT)Zl){LfSSnA6JwjJc+*@Zo8~HM z&wrJ#Cx{&&LVnk#!!%HPa+EEOE>zSiRzMcvN(8aQ3u1p;%-^&Aq2f6ye0+xOcm_El zs5fS08?!^tBo(4smgux(3E3@yX$g9=270nO;JqE#B4aq>M3Yf8KXtVSI8wDG6NcCl zvE*jv|K9m9Q#1emwQ^d`{54dBDqHu5Wq<$h&|C*J>4k?pj24hhj+Z-R)YF{Dd4LTM z${vwuWlWUx6UArAi^Pfr!^sEPkU502M`#4d@@G*W8iF_GLWeo(kA^48KG2o?JoOJZ zjryZpTSCA^`4#yp#52UXw<0H`bcr=sv@=Z9rK_RHM;Y?sM5dUMIha}%{T>1;9)DEM zG6A$AHUvNBs<`Zp231HPkSSEvozXXzeV*#$lJ6#V(2R6yAk;bw0w)rmaKte{JqEWi zXm19m|A1iA{L0wjnJNNf0GZ?Y`R|Et0eIpt|40P+V64Xo-`#^K)c5&+gCbjFtSWDi z9|L{DZ}BW{JrIBmnm3LIyZpaKYJYd&ZGHUdvQbabw}EL=&JY7ohF1!)0JM4rASp8% z(zf+=Q9}_u6VLSnfOCw=$91Or;#L{7zG&?giuQnJ^0g|)#L`07`dQh>1Q4%rMuyTK z`yR{8{MX2Lw)-k{)y5_5Gfa2i&sHc?Z?m=Ldkx#Q?|3sIn+M<5=7Uz-0e|KwV|JrX z#FS7G(`)4w*od|T%0bzuB`u*@^2q?`J_9E5A6Z1cW)40whi!!_@^pf^wIW|_M_l`Q_z6Cg|h%6$zIE3RYcJJoBO_M}Nh- zh&v7!`C(M1Z&docrPBA?Dt-SnDt+Eo=?Cb*QHvN#IZf5{x|W7jBp3bG_g)4Sw5vmF z;3AnC0EeP(X)5+1hMa7lyL3*r;R#@?q1iFy!7KSq%=?D@LFTR3ynkYNzONWIufPI< zMI$t}lW9drtzHYZmr_|Ec&BO?07K!b@unj~)MODl7HXN+7)@i>_q}lz^g`oo%VO0(-+HV43F9nSHoEaj=@x&&;)R z#jcaZ&bwFp56Evl*ne(Y-t%HkZMRNsxAHe^xBgM2+#W5sVe2`oPj~NcJ?lz)7A(7X zTx5^iua6_1+O$TsZk@QidL1SX4CBf&Kdeca10mis%-xr>6cSTScPlrFO< zBX*CR#DMQU-OPoXW)3G+m(W-}k64)@xhB85%!Da`!A~pC?td%-4OoPM!z?H^%~!t~ z_zcsW@mIq>-K(Pf)v~g^D$ZZYqW3U~^;A4~wVI53``jB{mE6GWu!r0jp1H@~8s=X= zVvKuF!$U8)n%=()@*D7DhF|g13cx<(aAB)Rq2bUudGG=y<@~v_RaOkbq?o=uS}ErM zRYtTBrzrMdr+;wFW2uD4{beNlB4*psPJr?hJ4bUF{w@@Ue!AF+!SO2hAhRKgx!Yx2 zI|1?nm5=F1IpSl7netcIUdTElMURQhj7)$D`GL%J*EP|+FuR>_=?t(WsHEFP>ga&^ zqCyT}WUvDO2V@V9t80U#@N78(f##I3Wk|x0F$*GDwST?(-j7c`te9JM_sDQE&sU=s zUmezbwTZ}}G0XVsQ2FXW`RV|C)lKkKcfO7?H;HkGBIx?$m1pwFcpy1+{kXyTK5j6X zyqc2dDmn1a$XN2w46-bhTNm=OSKkT8pNlUSL*zGB~n0U0=(xKX5MEP%DRGpD6+b z-I0N!gM~+8%SrLJ+>!x5&^cbt@xEM@_Ph$gDqx#Ate=TWhaspnH!L|^M-8o?f?WuS z2>rFGIB=+HBn>;#P+cV}^4C-~T||plhaa+}#h-$_x;noJ&1Ak6CDip% zLc4vG(EMbS(9Ve{A>h4sA1QZk8zr14`OkHNwNy^!lis(;n0f#IGL%wQ$_U7}#bxcs|LCVvBQ$z2V& z?P^FzQoS)W-@TkaZw&LxM~Paquh$~(2lQi)ek`kjv_L#406vmpN@M=z7&?Iylx*U2 zu3+j@dTsDVr~cae9kGO%&UeAJ!38i7XFR2AMp z0Tq}M?DSgXVdP^3#XRCg_*>$HLm1hXl{iWo2~H-Dp}e>|~rP%}`^ z05UP7)ht8Bxe8G&!Xe5(rk52~Jb&gc1fyx@9uSf*J387S&potO#mCFp(Ojek^`zK= zdUA>tkX;*mr_;$_R%iG?gUY9?H@zQ78MiRQHq~6P)DX4O>fbok87oIbxJYxXef5yE zL6aORtk#gh&AYF`Q7Shp5Hb~JB?@BO4UH&3`rFITWBd9dZOT0C4UNO>xp7W zqUhh`+dkGb*hCaxj@Dzc)GO51w!x{9W=N7!_)Mh@#PIYzZO{%Ep(BX!@l??O@*xWP zi^1Adol)+bt2Hcpwlyt)^W3*?(gslAQ5Twy7(qy#3Qozc1y#l<4dA?;`)vB>%CqbR+sw zx)HXz!D)y%4eer8KYo_?hF{8isVCH(_uza^pntKVxH%IIGR+|B;<6%T@$2jPBM&}AFTIz=MpAlmS?q)1S6cR5 zf3T{xjLwUFMns%75uqRa7vJ{|pb*u`mo+3%M<-kXfe4J&X#jybZ9t%opKt{P>fGep zKGrnYG~r)Pbf_lLjz~QZhB&R@1ft?W2)#g|l(E5PI+m+2Ie)acJv7Ve4I0Gi*3ja~ zp&4RzYiRM7p~dHG%!@Y-4P&xRop`l*>lj>n4DJ@y<@^|2dkk)J3<%ZM29GrjHjTlZ zFY312G=>+F6w%8YGXuy{mys~``87Z~yg972P_BzNsvrR*;oHItnJJ9+zBZW8)NUa{ zXfM0h)xm)Z4u2hZC7r!aT9Vp;x7;yTp&UZ_y63a;e2RKVB=3zAi2HXOk{1v;%11-U@l&`T|8 zVY!5b|HCb$t@W=9%$~ z+~TDzy~1kxB$G$h%$5_2Nki8LyY=}7L>B6?(v<28S&Nks%Cwy!!1y1Qa%vz`;Fp8y zSJ>lDRje-pQ-QeJ=qSpgm8oJVc6rM96DMNS7y8LUY3XF?xKM+dI}-((yA$>6q4n>! znadAq9e=F=z`vuYF4tv1z?=!tGf_ioAYd(ZFr8TxDl1g+d2#+V76~1cbRfsa)WFL) z&-`1m5`kxM*#ae;8P3isMB-bFQ2k21!8#!2+nFV`!!gA+Lc%j+kkU-`1pxk6OUM+p zc#LgVz>;N|LMgA#KDIOJY{Vzs-7SnX%bYXVJb&U*bY-ioO{GEPBKa?fs0<94dq%LN zkkwFX`Lb(esvfcW)JV9i{>M{p)L(U@se#^}mVLz}lHcANX!;0DBJU+GcJ&@+^0Xf+ zYIX~D;<$9`zkmAYf2gCS3V#2;z4N;|$TIC#fA*dq{66{G(W~Fr0aRKCMvy;w&v$=U z*MFMh&LcyiiR!=qw|D+qw5i^&2qk#OdjoTsbgR$cCT;n|=f3-gw zzxyMRun!S(WDMP`dUyLVB4S5jBqN)6xbzb{chfb;=Vn9)@^ixhr6&OIG3wBlSbgY2 zn8%ILlvnd?g;0+w3Ik>!D5#Yzr7*L%gny$z5vYWb%JULDG|9i0DdhWHS_TRrE~NdO zD0u7hBh8S5%_D0iTYeRq_`g5*-T(=i3GmgP3f8Oi_;pT`(^o}Ixre@##KV6gF+4%_jwaHW|QpekpF7vjel}TGtHepLbeZ0;i<#1bDQg%BdZ-@631K5(X zwk@gCvL(q<^=L~n)4ZbecF<6anMHvv6cxg8Kwhn$H@sfJnTZ`D8_0>OXL8z zZ>^7c{m8K&Xz5}$F2I8fH^_WvN&XdxN70`L>A6mHc>WU|p3_A4Cnq|boapql6CJiD zI`k7AZZpwZxnD$oZ$u^G@uT^(!Dg5ZcYh20hT+;M zQq(MEJ$Iq@j(i>;6Tr9X05+lO-HA}j>2=|%{cV1TPw>P=`W;UDV+t9}r;VJlt-r-( z-eRoYw9Mf%zRYp6%<&cm!$UqXAp<9@Ww5uFe%l3a=s}m>Z!Yyh(~O+LZS*L-(J`fU z7E=VyQRh(+aI<{x!eH|4;eVG&aVi~|hA~yR17Uh{l(jc}k*Tx1?q;UWa(RHGJ`%%% ztBFY;+gGIdEs)+32k8hTfKD6QaP`+haBrqJED{-m3A1{7$Lka(Q!N(HlEyef#7_kRJ z;yo%X&yX;beTw%mC+GjhA>zam$zAr0K^9M75+wOX)n#Oh>Sev`^&Qd6R8Bgm8gjrK z6Nel&N}i`qoz#ku$Y~u7gb`#V;ThrM?rZA!z$b9WCRD>5qv~M_gh;i_*F|BSRb0c+ z71A>>9Elj*MP}p2Nq_QvoiM!EzX@8QDoA~r+htP!AUHy2NB&Wd%$+h6w#&pF(DOj0 z>CEz_GGBFy&4NbYIxG8Rd>Ou1M zeqGyQn@TLPS}SAFHi9^r5+4^N_*m63;Sd^PZR!}SEi=z1%YT1StB)WJyEfR9O<8F~zKP zS$G|meAa2N;x!VGZ1Wv!qRWwW>BP4RwZ~SdT^%qe*6z!@0i0gwAcLVgvy?PY>CL32 z6rn7|AbWr827eohKHFUm)P>g9+-Oz7QIV${ERK4LDL*89q3|8-(%p+?gzUa4STWW| zFf_;OquiG>cQkF-S;{O`Es#p|z!(K>NORM4hRCyd%&uvyjzg(B6zmxy$$%<9u>eSK z5$h<{% zyU#~_6o2mcVPeomYJhZRg$y)3l0y@cxLIM3C}YV%c%qE7${AvU=)TGcR0_Oy8fFQU zCtUKSu#%{6O0)Fw=wnvH@S_n*E;MQ&D@i2Y0t13XJxO;rFe8{@e1&^93PjyV!x_@+ zoYvIi{n zGQ$p;!}-*Rr4U0ys=Vq#3aso^Q2j0|x|o*}1doFjXMCi+Rwh#F~vE5PNsvL)59bd zaYu$~4k?x-e!$ry?k*WRFn=o_WRMp3{w9X-93~%<#`P(Hev4J41OQd`NP~3HUpC>R z=gAfO262#!TJ8CXA9U4s|FB$H)K|RwfPWmY&rvp`h}s`>ta3poHaMrrP#+X|>jnk_ zWGpuaWDau*M9O#qVq?HuO%R9tdt3|Uf)RQam&Ks6B6t+L=Go?ABQC*Z04ebKSPBUY z_;ZjriBils>zMZ* z@}m{G_?|JpjWe%>Xu4L;G}7W4NGDwLkSeUetM1}~mK^kX9Wes64y*eE zVqTQ1{TbSKM|UhdwwEc$+Ji&_)S#ME;Y>f+6shCRD^e#sTcpnE9J`&i41d=-m*D*v z2~Udn1GU}?TR~YY^dr>|yEv~Oxz>{{v^FR~A*tvEqUbTmIfR1Msa_MW%l|AGvTtFL zvbVJ!fP=;tR$+ckrec+!NI6z-hc1G?$y@>xXM=%{E^E`SruzQP({DIQzmrvZLJI~x z2l@@qmwwX;`VCJAI zHGKwuZn)eXt%|#K`bHp4nXR6mt**`%t4VfMSa&*G>Evt;b+)FNJP%Q4)Wd8I>)Dz< z%WQQO;Q>lU%HaA1Q7At2h$219#JS0dOBC#dN=G>W*q7!Wix7zdi+{|EOi*+&G-!fc zlguJL+J5&vQ1PCFb2KEu2D@XMVcuzJjlurPM?4rfKG+^Tw?0=Q9yibiT1GR_w@SlUapC*gk!MLJ8<_f&1Q3uY;<&gqF?O~MZsh=e^ z#ep77{Eg|?9bZx}_Q=)S6x1`^SdrQ84;v)>w4|;^VvjTj|^PJf zZ(%JOJ_q2hgX8=|k@Srm=^(bTYmfWO9C36GBaZpXgB5kK1ENahmoJck&BRt+5(<8G zV4VLjd4KYOlC#wHV11#^*h)~G!)(zSu>U4@+4fjmef}M>CUn$$tR{HfV`jFAtLtsH zLWM8t@V)W5tP<^NRd^SyVQa1T19k1Gcd#UAT$coGy}z*c18pQ-L#DL6^jQAe&ePMu z;#?^p_RSHbc~;JJb&z`9*a%0pWCd}9{bhg)`+wXLps3bu*S?H_U`h2SPeaN_){k+1P*ortN$wzk|AA1mPEKd#z$swu9Au)2G$=|jrh$&?-@Y%_z zFjefJ_qzDw@fc7MO)A1^SrS~rOGWIMN=4+;DisB&=*qq4V;8^lr&Nd57=`z5TGY^?F4_QDD8SGGSkblK_H35`v4l-E~I>_Ylia_pK4l)*dcu$}u z1MO9z)*#ulu5KKdtA03K;ICc){B_w<@R(&k9)(GbsS($h8i2j7id%j3)*K+2^MZw$ z(`xT}8JTZRgk;ehzuTdEczmQV%8Aw#;rS2%UA?DHmP=)K^;Tc-FUs`pB7N;Bt$*gU z?hE0&^6?lbcB}nUWq-AQ@}7sQ{T>4bwPn-Q9uQ_w5Ss8Z336vwH@=qaFCQ1txY|oF z7<$wR`7^F&##yzqh}QDU6vz@1*Rq06E)}(hC{d1Gkb{SJL+tTA{|_9ctWNg)DBz2# zKl}vDb1%`5-ojglFz$TMC{p>UPk-~K8d?p`8#DKs__#1vOg`)ni!zD24~TTYaMXX} z77Pzw9wM8Wz%~0d!t5=7E!?L}@35yDtUA%9a)PQ-fd z@i?OaTT+KCMwUS}ZwAw4%!B0&iMVC>U5GgJBzf3hifK)-qSUN^%|sq3=?q(E$r9iI zjT(4Kt;$dkbViPu>T@_#9L^N{eUTbD3RB1TkUa|fyk8|rrsXs2b)!=FVPbFc>mFE6 zS|Vql_@%s`W?NyvRhTJkv41?cdc8L7$m4#=g|SvKX8E}NM~9|V6vwM4v8Suh16?UL z5h{a}R)lN+5uzY5pDM0vK{A}z>K)esA~7OI9=#t0&}?bzr?l@AabPumz+(JR`~=tv zAz{?2{6^IAz)g$OYQ+s|PlE85CtP+QsAK++m5$Iy4eI@NC&#eCyMMYxl90=vi}aO+ z?9EXa$qcB?v!f`V8bT20lkyKc4bC9=L-)C^v$}F}_2At=>V$DcYh5Q+3QIn&$moKR zt)np=MORb(V0EXj3Es30MSZxC!-we$c)ucEYG?stwWU>hi`ptondwx2{MuM^BqmCv zcUU6b#5&*U%QcT*h@yTRtd~%a-`&iRplSwf--_(U< z0z_SnATImPj)jvOnmwQnXppxe>SntVF8AT!&N1M&Q1F5IFo(@{5!OK{VLrCJo_X71 zb4&_p(r03CXWhP(S=>&bi6;|i%vat@pz%o$3^dr@VSY}=)_-^lQtdoGPpR3oS^hTzu_T1bEB(AqpbTxo$Pd29l;z$;`5x6wmCd$%;AY2L(-VTleRfL z@ncAy={zU!mFt8`)hiCNgt=c{a)J(&p_Sp_$BB`8G3b7;?cj-8#aFb*y}NNlP_#9O z%b1qz8=PY#Pk(+z87ixOro)HA>~_ZkA*vn^*7d-v4vimua3m))@fEGqyZkJZ^5_Gw zLOfc=58gkb1LHxpB|0lrBS(7ngOTvI=%fh_z=LjUOXn3$8%?N6fRPndDcV+5N^WOJ zS9DJiZ;Affq$-7{Rh7Qf=s(v)|GA0iKdYu=QjXKWJAZsLSxA_l|0(s~AO@yoMCphk zp%)Ey5| z4ufV0i1N^MkVvUk1#222BdzBUp`JsB$z>s88oFbmUZ}JcTf$k)Gf>p$)BG3`!IV;S zsg8ljDt|WUQ^!8<5j>3uxxA01g#s->JFkVC<=ek@hesWi{QmPIukGfX+favD+ zbJ?A}0rUpgcDwl#sQZP0zwpT7NFmcT$%*o4bj)+7r$QXl-YR>w{Ee%h2ph<5r$~ur z988rN$8@N_P{Xw1qAMh^kZJvaxgyFRb}h;G6Mx|`%XFGdYV&DK|Hq}ZaUwne2%^nc z_Z_p?gSH}~m+W)jBb&s_z~4jY#k34f*8d#{Ga&y@Mf&+UmV>@LDnvW|2lt8gpi}TE zr-@z~^RhSis-X&Mp8%S^bSeA8Cj6k|gD95C?)I=?roxo$(NGGeWCoXqsIyi5&)6cwkRKK`fO8E#x(vUBtaqF}Qw15&>qyf&S>&u;jUle3oY+@m zh&9wUwrULKOgmdS27g@$7Q9Q7ime_)$a)NT3`#KstO8K`;}_Idm;jF1(s*{6@=$ zP$=#wRx5v9_nPQfz3_x)5~AwoZ+8H!@jv7QJVoSL>0Q=}_hf$TTq6x+^>(n?Xs${q zVk6?Z91uJiAt-x;qzpZj@}TOTs7?_*`S@s1byOvgHl5PLEkjR`c2g&c=y>(Cwtw|^ z$vtcjIBXhEzmh&us{M)tu|66w=%+{xH@EL!U5Ah;ymZuDXMvo4-LvSp#{Lpxx<;Yy zqeoreqp0Z-ViqI+Wa|~`$ximFul)JjLW_VLR3DxuM1*|a$a)hA3quU5!JXC8xFnue z*CG;y5nf()f%-HDbFhY=_SNc@j(?F0Cht@@cs`o44oa1ccFT|RWb6X+?rs`(GA8Z8_nTKaT7kdHl zEDXft{A-nEJHLBYnxm(y2)pf09w9rqmXWPxy`J0!^t@DuB|}}wZF(1Q6l?qszn9LmWs8h9_za?!;b zcQpQ#9rUN{sQoEB=zmWc4Up1svlXx(qPoT42(am5RciRLrx>pO+7F;6>NVlbi0F}T zSBEc^t8YA|SMLx>XGpm%r!8{NxcY@po4@m~oOhCSQQ z`8k;aCLtcksaRdFC_DMp04{{=3j|Kakp=npI!1*VmRH9>J%59uLr_n3jlmRdZ4%~Cp1(Gj}l{rwu`Gg6SxzHna!`K&(lTUI)t=&~E_%=f;= z$*~@3A8NI}d0CUJ7$!Dg&bAM>>NUYuQD!jp6G5$(ZT*}m$g780QBbZ?W5ukQ%_eXE znXf)PO3j4=S$}efU_JR`Wt_jU3qerl*fge2{(=(Vmm)eHVRSyJ>lIqJLjyuI@#nrj zVGY|6aj;&Y39ydKhf&*eEh>T* z)lOJ6Evm_@WG;W?DNKWUSrS1$8kGkT>W9$odPH+7nMRGu6V)nD)Tlg>syva09z}vc zkt`l&6@Q^5e=egXstt<51>-rKiPQnZx}>j9#;}`cnJ_rw5Bz zyE3iN5Ng^}%M1}cBW8%GHN1$!D-(>VIDbz5l1vOLQ2sI~gJxK8S(hz$lpj{8!wPL! zfz`WIBa7A#Hs2#HjqPO%@bK zW)SF6sG+|`K1wCR?@FJXcnF6(yMHcc18Qs}W^X-a;nuNAN(sW0E7T@(W?>zOx}%J= zc|Ec!D!L{fa%F!t`07PWQPU;O*LeIp!fHt`4rY49K?r=$x+Vu4D(R;0SNU;9Ks3F> zsQUE&_;x94^s>?XOc>OUOD~VoqW`r`!@jjbS6TzrN~?nrb8$Rz8SJ0)Ie(mldyNiz z%lRYhUayE|VttfwcMy1>dI~=d!rVFxnsuAj1sNPx(<>h&2S8w7f5X8)kc(u8JTjRe z_sDAhfqPg7T+0nVvhnc9AIDLA66>LaSCq^VVrC}g>iE&sPXs5E)gXhN4lj@oxxKpJ zm|4clrazc>oE^(mWC@B>4|5QF^focE%?Q0@QbU1 zUzq(~WE$t(4t~M&HT=a{_zR<`qb=bt+UsFpqtK(iJs{nU`usmT!Cy_4IIJx0@b6IbEBa?)H{YC zvKJ|bxqcHv(5#%n-3+KjgAcqeiZqM;^ILDZ?=jarN$bZ9LsiLt=bcb?|PPE#C zrI}@XJZI?LgT4!fe=Tnrn)R5GGT^Jq>u12`Eqq`m)9j7GwZW_f0q)RWasurpiy)EI zLq5J?S_Fi!iJn3lyb5u_FleWxLa$GSaNIfue@8ZoB-3$YHr*Pne+N=C0x|C_m z;c4GEDrHkn+im++Lo~MXVntaR;O_4q`+)Q*=&W8h^X3G>IIyQLVI17*A|5#zYLk5n(f?G zQcf7Ys3DQ0)~M*MQN<$JcJlugE^JScz4l7?&VNpk#CJv!@Ko_LwzrU-6aBO;WE#0W z03cpl^+?XwSUeH)Xb(*gP1`HFkStAQ!m2@K;Y5#&px6(;an z0gJxq|AQEULAU7L$Owl-*C8fziE-U0wJzc8_X~u$XC&yZWgs59YSZdljwxW0tQ$yy zm46(2u+}FN`}5113q+i&@YKVIkO9&m;Jj++a7jM?=qbE3rH_4JdQKu>Ww9M^K zZ%$MC-8%N}cYT@?l%_|7Qe*JWiDTn54}MG@{FpI=`oSN!2M7434Os@>YR=|A8hG~(^JBHDozBL`At`U|1D-=yGkDp{NPh`t; z%unzHH*HTKS9IHbcurh*(l`SJ>3_qbL!oMOUr|op>k;rIe%YO~|E4R)( zaj0&ALIUm$W=+$QTlT}TatlQku&}6tt14V811&tTQYGIc6ZXnA*hk0J8{ZWh2VefC zBa1~KyXFX;V$sA;#3L+If;S{SAtI@M@@=u=cWp_VPnbz;ZTNnK5UAI^3`I?{-+Nr$PRv$fP2qstS4U(6Sgp+)Tk> zoq_zRXcX2^S7G*aHHzlHY#&wCV75h9? zSey=w5Tbe?Tgn@hS;0Hm(Rw$5Z60ud&W#yaGN~q@)f0}Fp`a#V{OO5wV zcrAwo`JNEl9J_ZJC#Yn4%&^EtU8}{de1x8D&A%&pKotX}+kdo(1j3ZFu0}$$2v3<& zNT3Ii?j$DUr^47{Iqo-5f=#|I!VM<^@!_#af?6H~-$ZV~_v=dnaIOKGle5V`7qc?P zqX@`Ay&+i3wCsJRwe7na%B@Mvk?dE)0#wJm8gt~N{;SL-ma!E1N)zGX#&iGYzxKJ; zM@L~^QYX#PMSnW~^XnHfbNI_2?^VkHZIG}bSb7;t)`WG*8aGk0Cb2;JK(i29C2Kqy z9K*+*&z*7Y+!@#8&Nv@D?wZ^g*Up`BK6u=nC3oh$BLj54KH+@QkKwif?KIPPh=QOo zOm!e6h79IARD%7Kv$%4d>8s@ezAV$21`pyv&hJY7_kWF8q+NG2%#y)Cd z>|1G4ZZb{EV(eRKQfH2_KPLy#WLZ~}ePhFKgNHExW_3q9^UL2TKk#eFdQ3r6j|o3(EvB$liz(1r zOmB;v)x1^DK`bI*cx|xDs*6?1(V477cmza05k^H$BfPALk1aBpXnD+*t~wR3Ri~bc zIGO*X;-reYfbduRCSoFzg^C*&EhFL%^X>w9gMS^qgRmr~cw(x9<0IRZ91GiN z)ql3>gJ#pWaD5)X?an`^-0F#)FMIMj89RlC{i3sEr<~KW47zo+ z=AZ_ac{Et$=Kq8QKt??FR;PzQYs^mjtGQFYAjO~T%W zJ88wdrp-1Uls%xDR_VC+e}Zv7}VWBTy_9(17sP&sPcd^ zW*B23ABmPeLjanlE-6;}LeW)d&h*jIpbC7E3Q+-=&Obmpe~0ZlK%37mL#(_)NBRfl z#B@X;7#|d${Xrsj@5~!#a+lu0n@tg~Vn3w%;P?L?}?xkbf4F zgeN(;6e(cqS~X2yeaw<>&h6El02msW{(Xp#)Ia4>H>1YR3xNdT*5eKJw+FtUmo!X} zwiatp7w7Gm?3cS)Wt{iVmodRmDA6+JANSHJ&gM(l@B}Po^8*yx$p?HfQiNbwy{1`V^4|t9J^{H zPpmX4{cJr}UvX>wYf9=_BEdPginQfo@3N<8%j>N6XPpf;8(U;ROp2|Z=wdxP&{G?)e<1V~?`W(rn3@bKVo{xi9pKL>ts^?w0+pu}yENTTyV zB8kq1L=rwjNFB1<=UT3?UAX{HK(N2WU}#XUB)itR zjRyVwuonehK|tPd8SGJGYM%cCLmQQkcREzI$ljF@;9v3aDOSExaUH(HS*6QM>k_tY zEPJKkM4y&ux#UEnlM=btn1+8wxV7rTZ#EPtV>vfdL3B1#LHG_EHiSQ^T7X6ldnbJjV`#)3IBdaq3Qee zX$VsyG^rjQ@{?w^IpJ+Gmre<;;X@KvjsMLx6WWfiQo5@I6mn&D)BO zz75U5X0<>fGG4Z6+qIr`fvR-;I6|n9q!+76TO;H`gI#cZaT%i3#Jf$b<^w}NR8ZBM zoi7th&|6$wggtd<_JmUcuB#GYu{staq+$b{C3INkEgM0`s;!Wn}Egp+n5 z_6=%<75vjRVEk}7ek^~WmP9aqAXdl(p(abn9!WFQ=WJmZ_WJgJv>F^^woYvHuakVYu~0029a6UtSCJptby#5uad21v0`IzH!2~ z7(Vnt`SKm7QUZT@sw-=MjSanj>>W6FKUwLNB)Z=QZ(MhS>4pY zg;AVzy4^GlT+i(Dz)8H<<9G4tPs6z zy58Qvhb?f+}tHlHNIY7XLWA z8sKWlOCf)shKJy<4*x2N<`R#zpit*%j7k%tfP0wJ?tMsDkSo#ZsZ)>RPkwyWVp7E! z7A2i-r|DGb8mcSmsxcvtR|jjAyQ|do#hI}#dPVi&w}j(;E+8CJ_8VQ7Hkkg3l&ot9P@uxA?_Jcd(|I>gVezEb3_XPi8`v5 z#`(Vv%W&A$ef*5&mS}!Qr*;0 z*rviHa5d_^VeE>Mb|WH4Y1=!(sEg~|5swF`82f%^5Mx_?zZ}*xR(Y@uw*SbP!1iN> z&WC^IxX;a-VeuyTWSOO+MHqJ6+Hfu)+rRhWvmo0i*(UgXw+YApFY2(0Ia)PCsHPm~ zb?%r#hvRP8g-$%-rMG0C}9ax-#Xmfv?ibo*D{)9?@Tk2KN;NH}$2tCqqxT#)+ zyiqOeC*XCBk&HfHc5hQZYzV|4Eh)Bb=Z)%2Un*1dyel#@miQL+@yjL3c?oi;6wLw8 zjd`%=zYtE8C3qnA`N>u?DI#vJVpGKGr$b$GorH}WX}d{lu#XzkrP~6Q8Fgh-q&0uc zN7A&JI#DEBA!Vd}WbH-SPsjNi;UKD>`*9Bk#0+f3wrWh6-)G|);_u?BwmVGYuC0lG) zXNsTHxs7N3UwceDZ6W zU^xT~e){(}2MorofI((rFz$bdShw>xYiUW%Jg505wn|QjCkF036CY{9iG7(u{P4@6 zW+p|<^RTjkR7D0DhvKfs2F`_~aBDoTqDnr_7`(>-&Tosu1THdQofD*s2B?lg2Dmk# zHH&s%@wQmcpSBj*qXd?Dve0SDYelNn>9Ux5M zdpdd>gG2`!xiWtkMOrj+(;^adL^F2ywMo7EYav+A^2H?33w{qRQ# ze=Ku2NDPmU6@V4bH=v!_ij)qMg&OHri@i55R6hsV87rbj44@=aTPuP^GqMF*_##}( zw3LglO7dHgYQM&^kwmZKKR6;II{=f@d^J#TjLuj~7p#BCgNP1@OK{|CH4b5>U5L@t zjsvGbvMX|eTpJ|z$F%`-oK_e^{al!-f{H+RELn77t?XHejBA4w{IE)^0a2+Cd|h_e zDy^F_$G&OobY0uiRsU?g3fHFM(7C`@iVLd)Bd0Yt;Qp=-2+ysaCocwoRdscCb$B~M zxUUUZ5q5u{yXZOxkjP@JJE%UNzU>X0&L@915f?#W?SkqWK2D2P^KlFMxTSGMg99q1 z$jQC)T1A8DUgu_YI?%W{Aut!~_awAzsi*P~wfvR6{)>vDM1@~(3W zc06UDOfg@ zhC!)IjZJ6y>QTodb#-*E6P;^kbM0)dTRJ=E`V2aITa^02Z;!XP32wI_&KAT?EQr$u z(OM&rZ&F=|Qpi2kHQ;K0`i>;X3QiXqpK~x_~hk@OnINUl55DC{mmJbJua` z<;Z^zNY|>)HyOIo4UK>Zn4h2gc13V#YIQX;;A?f&g%Als<>(43Q7Bvy?sQYTWh?(P zU-}gI1Mp>ZtGlaz&Wsb0MtW#4TlUqoF;e&pMHGket9t4UG2LDGx#*8sAe};J3?Wp= zD!YNzhvNYV9hX|9cWT6zeIN4#!uF?$dku{N%f zwW9Y;tl>y6q}!x@naKbs4v3;D`?r5;(d|?u=124Ww0*H$OUL|~1Ga&u1k0o` z>m>S9GMvp@C;1w+PIfS>YMpRVwcu|IDAJ8!q1$-Tey&%lcz)&Bl}x>TsOn!9WKGbQf(_!n2N z_`?^x-MTt`AK(0f_3CZ!e(TfGn69CB)!lwbBv1FkyRQG1=Y971pZc>4=~^3`v+@cru_dci|)e_{NW z-}{!gyyds$Yr#iIyBB`-SN`7Y=iejk{#*1*-}CY#zkqgM_g&?imT&kqeEqH$x*53Pu|?%fmiUK8yBmmrpLYl-_u>0)B_K^>+RVC zjXedPV8%$V?tk!MnSTdWQE27{L`&0MR>3CwYH1*pMc+uURsp+bfuWbq= zZqcf{?{3XN3~q0|{psM2iNC&z8?Nb$??~jQeR-4_rFVoch^$?5+5JeYW3Ruw;8)@ z^=i!4r#tsEVuam z{1$NHE4O?7f0Eb7{`C_xrP!SQ{bB3~ zpeuj!k-jdY|F}J}B7C&$>fnk{1{ZA^9Fwu+z>m&4oOsJ{;(9oTPCFbw3mj0=9uRFp zHXt2OG}hLMy(Is-){Nl=`H3q3X2!7LEm`%8D8i_C!|g#w&7h<02Q750gQl7k<-Zqc zw8jNBvSH;+p9`vAURgy{#74e%L4ENTSgL=L#|Ur}rr0kxVnFoCc{ORm!1)QaaLV-s z)JM#wJ$`M`1r=t;ov*pf&J4ylKyIc#GE^)Bq(Qojg;ccI>~}lrrp}@ua8sqjHc=kp zGX5O5N~1pgS0O9Xie&Y1Ei{U_*+4(Ezh;mPQM4>>9`iRASL*((?=7_=>`TTzv zXyt@J7YZL+Esxjo8xpuXLssfUY=c|Kyb}>NYM1|j9sJE&z3&HIy;zy%7(bKY95!ZF z==d877O6xj|NWR%e-#}|Hb7p6^ftk6aa|BL9ByxLts>$*-|(-Fm0?|zETRRrH!c$* zb(Qfg8kTNbIYy1Tc<~XDypu;qJz0NODgmu0FzD<0-MD!CU!Ku0p-72{32rgJoc?~n!ah{ zR^P}59D`q>gMFovL~aQ=W0qXHY(b0I!s`TARaBRxa_w(ybBH52L~-x{EFyo;3xm~5 zaVBw9;4=NmP-9b<^dsl8Y*@fX72jrKQVu913Kt(8r4xf$jhn%QG8mlv7>ov->*le+ zs2O{l!KxeBFhn;rkDGR$QgC=(@OK`Q%Q4E zI)!_{v?nJ6#p;OP?T@%h^iTPFF)O>{F>ePlNGHGFEocDb0L&zKR81a`!Ee#DDtRG& zvQd#fTy;g+cE{`2rul6P1Y#Xqz&sP@auk;g6&R9+UZ+ut%n{6?$NYcN?l4yn=!e2O zR20P-hC%J6!s7NcSPcfFAb&>)m)f8yuZ29h>ci8Ty)ZN?glK~r@eXX6iEvp{KMzOg zz$!|Ee;SrVK|?PivZ;F_SUzRFVW;&Fzdhp{qXb+=XQUum0U^@M4u`Yjs?+AcE?F~ZW?OfDZLQ&BV)s~ESx>k44Bzb z!_h$Mm6l+RwFEPt5qqOkr`iB43_L%?k0G3Kco*dh^d>nWgF`W_VWx!^>fGju`Vu$C zmhBe%ax{*qOU~Dr=(JCP&iN*9cQ)6Uh%*biFAOl`naXVk3EqF66~p*s4dA?gM8^>T6Ota*^wQd9aHcB5)8e4+31%oXuLr|D}TXf zsm2(LW)yxu@U(xyQdx>GQ}l&f7s^JUwyTK1B)FJ6~ z&E#Lusp5e!AShl;GMCrS)~}zfUq9Qte)epypOx3^XsmzodaAkgxq|YGqaRhgXDxgf;bxs_o+eHG=-az{8e6mO-0v6ii}X!MVS3L?v5>heIk z&XCqpmlbqPO)l3iD~M#G(8>z73i!E+0)DNMg2H~RJwn|>s|Uuiz*gdowom{o_V$h=30Y)xQkBsxfF){!QXQ)pr_{i~EIeqgmpcvgn#Nm`r z-C2;MQT}lDM}$8@{iB%j9nMNeyu|5SN%zx2DpTNpvLtv;;2l9KmdKuRcw%rX6Z@-( ze~0$B^AFYXXSaHYVA}@lp2}4sx1h{;O~ndEV{?Dx#y6`vri+P8tAQpN$1*3DY9K^T zp{Jw2uwEG140S9fq-kEV6~$0a46t|PUp7qNdFuill#z2L~ ze1GODjX=gp-81b#cW{Kr&HrT>lRU+lSLMAV%R@?i_^E95PUlBTIgysp`D-aiP|A4(FSa%&t}wGy!FhH4>3iwhZwG8iPVn!-zMy zvl@)ymkNgyGP|~=Oq8gamUt03^oPXIN_n17XUt0y8!Mtv}B6*W2-~V}|6Wi=JwEKA3c7P>m%mXYMX%RnL!P zbQA*Q)w95ApFJgwW>4Mo@SS(c%f6?(V8>l%&%Xn3omQZLDhS|TOe%6JBx1WJ4L5&f zw9Q{w5Iv(=c$8xxEIMUKK2EiNmw#_$fx8-~>k&}`t-IwWuf~6+Kvx8)o9ROWPS)TjYERIY1>J4vvR)AgG{Q2d zzD=lqnO39Ts=FJ3Tc*e6Z+CUo?O2F3zEz>rF!JQqAp~apwd0HyJ+m@KLJ5RIQj{e}CvY%neTu`wH1wA$)-70<(~P0+=={_yM!3EE9nhcGU|G@WUUg&8=Qj4j5u2Ck^kj}A6LG}jl5e$Nwd&Qt>6*jG`SyT>40Ta!lRx@jdlI1%$ zw~O2DtYP9Q0T3jKG{_9~L_HuK?S4nev)%oUmM&zjQq%qJrtbSz*35UmyQ%wiGi&F& z-`&*xrkypcyWiFBcQRim(mgWTp-Ah4CjAnawuRO?1!k#^1?qnrha^`X8BIkjky=bW z%=J26qXcw|DbZKIW|YZi_rcLrktw(Dsg6oCl_BdTKo6Dgz_Ol_{bLuIp)|D`BBU9= zmAQVGOZSKxpW|bCHDCv3iXC^4X06B5#q3u>`$XaKQ4Ry;w1~Xzzh+Sm3x7d>m%qcs zGB2j?Sq<-Q52t^>?QnX2I6WOs--ZJW9X|WT#o)N?XL+Z_nkaF=`j%?$XOe9iTQ?Vwre$uTFvThm)Rt?Yqg8p?Y3?^$8AT9C`~5x zW95E>!B2C&4f+R>LiJd?&~iGLOO*&Ef41&Xj)7g9m(#YUKI>QQw=d{A%xvg+`rWIz~;u)7U@e~kdq)y==I8Bgl$^vs8f2M;f zX>X9U_td0a_LR7F-FjRg+x<+MvP@&-w@Q25E_?*HcesY7(}d9DvDC@FJq|+vKmdr&-KH7Tv^oKopp1oo-pA6M4subv zddl5*JAKBqNik1qflvn0wEMv7e<^8RM2udN2Al4PChiF3jw!jLeM_|YmU!ZpNN(AQ zTiW-;o9{^`?h$olb&2=1Z%Q`b)S0*`k((~jo7#7EHs95qxT_;~J=^YT-`3rHTRL%D zS8lt~-`2h_-F#nf;y%%RR}a?rwQuZgzOg@XV{i2Z5BR2i*?fs%bRc7Ke=Yl;y*kgO zyBzpB&8I@M=0%3c^k#_F8~JMzQ5rrO01`Y}9ERQ{Vs{+#s7$=k$1~gyC2jsr5okr3 z8H}yUoE98ALny%cqpi|K6b=>qeK7Ks*9TS;t^K0#eEmV;q-`S5Gz|I@+qO-0RwRZU zHFzfLfITxv#D#|vHrJ=Af6rXNx^}wisIO6RKfwR_F~%FwnGF$w`s_cD$hJ z8XBF!is)-oVc^27O6d{%mkvk{l{>OX3m){T{XlMbW2Au(oSUsQe;t#iJE)I%&NQ92 zN0pu*O(#aviPCiEj5K{t)HOlV9i{2cwlv*o)AZ@HT+eBE$ysUoe0P3L(;cO0a|JXs z?diF$F%xA^M`1KkDB9}A2EJ}=I3`@EnTc`!uewoxbz@c5e{nRRO*N&+KMJgZ?@8AA z!G2OXK&xqLC7O`ue|ryk?~DS|^BvZRo)_z~yNSMOEVX;vkcG66{ht+sQJ*>lv^_1r zg5V20*W6Gr@H$?<%`;)Z&S?)93ail0a-;oK5e)8;QQR$Cm8m=3BPu{z&PtRI*D3O1h^pHddFN6b#`>sjie=~5L1{jBUwv< z!mb=^c6tjXn-XTy-yg{jHyHEXX3ive%x4zSgOI??m;+pN_`d3Hgew9nVZ#K*rUMI`@WKjJ@f1o(t!jw_=b!rn-8N>Y4P|g{U zz86#LWlGrErW&ti5`kU)Wl;T9^GH@*g^YlIa)x#%Gf8k*&B<$O-&0H`Ju3;%1K!tx zZxC+(ghECNM~`Iy)#kET)47c5_=5tTcC?nWrpd7Y3Zp%>*C1%dH^oOZqnHiMzq2{+ z1?)^qf0~Q_OB7UTtx##Po`9pumf0~rF3wru?A^hoL=AI(|+F=**9cU3) zS0AdK-`&GQ9@6c~q&C!X$x?G4F^TjBc?*2dF{>4}CqNs@W1p&>)lXSNyjTV~@jl={ zYyCog9Mq5f`mv%Pg?`NIM_#3(FY~KW*lEj4os$%uOonZx>Wl4KIAM#L$#Eu`7;ebIsc`+-uEnADPwzf1TlOdxlZ^x6C-hnaKw>!`bE;&dzU!nOC~) z3}+fx(ro3q?RN4Gzmw;liH-bXo>r&X$XHKqS~e?dJhgr#6u3HqqsL#8p*&@eNNP?IvjZzVj$YlRC> z7U^@MocWxue9N1vx0kbT@rj~;=Nsfzv+ro-5uQ4=p;CDV#w4NK(M|~QJ2AAKAa_E- zTpO&QG{L}UHBmAn>da&&8GSh6-2~LZ8a^jdRlq>;NQ^wsUw zHg;nAq^-Lm6aXxuuQ!3HfrIekU!8oSVd}~APB^0|&Vh??UXo6~vwcE`?3c%8I*3Z^=B8{>(<5Z8U2lte{8o7ylk`ZD09UFkVyU0$2?S_n@ATVd&W=)XRuX zzIC>Jeb5OyouK^dT=JizFILCx*d3xh6`vM zeB&QyL}2T(o-PF>re4njn6W_U*c@fhT+q$?FGIZ%_oJBs}qx z`5)-C$NemHp|7_x7zobSI)@5nFVXoKCzjNBv!M3t? z{`_gz5a_PMpsUVz4MR~(aep#Qv+u@#UJ;?0a?;Hhp)Y7`?V zv_;B{5vjuWqzV8C9R0#g7>ki?^q4}&M$SoPf1S$DX_blaZP}vW8j4oOgQmMZg z4DZgIyJvAR6|0M(h_J-RXBOZ3_8qrB^#e_0x8Fu&G-~ImdmwTh7Jm*l{qrXLPTEGM(y@1>x`N`w`{67*Ay~nTn ze-!@i`ne}G2kZG?Svdz_3`k9UMh1!$eD$<5m;ZzHOS8!9lQ(?)N6*~<5H4-|miA%bbV?hOnFSn`! zxPrCEXw^*^$kGxirL^(tUL+zW(wy|flmyWst0~s)81?1LsxQBEW>xdH zv>;>=k!|b|h#D?!^wK;yV9=3kMh7?`mYSH6>Tg-Wq8ZX5@?}b2CiNxLmks)oa#5gb zU}`px4^Plemz_l`fPuc<+Ku?Te=FQnXOMic2MhSQP8aZ;G4Jcma1*mZtk559?&q)n zyLA``UJ>rT#CX{xvulR;+pdwVqhuT4dPsoi^n*QrBLB``jm+V{etz$>*6}PxM;?s0vOFCSRohsDLHk8g|sJokAs57xH3f9Q>)hI^If z6Ii1!Kkv@r-R6Apr5EkF{-e5MnX0U+)rWNa>a$^_f45~7t-gG*(;^nGMvW@!+^JU(-#XCOS za^BPRc_sb7WPJ{XYrd7#f4#2H!SeMvtZTj%>rh{xjphrNuForEFhuh$Tc2}#FO*%? zsTxDG*PhJ3@qJ6T{q@a$SfeBj&E72>MoDVtuRr_lo`0-ijB}dR#v8(8aZjFWLvo7e z!b&QerEkD&RT$>0U|s1hrzsnLQ0M0)#y^EMji zFbZSiMN>bZsZVQacOdn*m!&?fsUOtT-azUt(6WXzGVGby%j(_VY?ml~7V7H4Tx42k2Qw5S`gCc^C7Sl-ra|)5m1bv6>;}DKt09 zRg*YcsA^tixK2t4mWc|C7em%2i*@xEfi(xH2o@uvIbm zYHz&?$@^v&?|bFPv|YEPXijXLA{-Ht_dsC&pMf1NqY-9s!I2f7{DgPqJ) ztqsK_)nchH+J;ia^-t06D7&FY$9Rl5uQaFW>3k}E9~}z zBt|tpW;2Hi%vQj)lGoy+`r#MUO-;;J0Fw7$Ie5fu^$N^ZS20^%V76Ks+3lRb4X{;N zL$0=P1q*>4f8hbrN;rG05n$N--g;+*;CZ}?#tV~Rxe5#uJ!3L4V&J|qHwnT2tbq1< zjacT(2E}#SjB8}tyaa%*zCwgNVa<1&h%rkI|F$fCY1TQQ;5VClE%T6Glivw8alCBl z#k0K>7+8}C-NF~`+1@$;OT<~5(9JvSG0>Ldg}z@We``Q}%J=K>?fOGJ&r>+)sjkc& z2s7iqM(Dw*Ac{vdsuJ3p(J@md&dvOujjHU>`{QI0V)hutDtcc&x6nrPRTBlK*}5YH zFld7tO>1ZBYASgMr%Aoh4DLPLbYqJnW%L7&Z8Qo;Cu2~A`LL%_hZ zf{6ENe_|YpI`XE{UK^LprIXiZPJgexK2hR$Ujsuh^r6NhvitXGGu8teN}AD)^ayQC zy{|iMC2#^)0M0i>xDcR)vD{%tSSE3@2l&ct?2c>(Ll-bEA@!tl{ z76h(KQ=-h-VW)>Cdex_F;L}v?lPvZ-Z0pbjq5nOAU+Ilz#j?hm*x48~l04hU+#|d+D#;qW=$qu%O1bH8 zfBQO-txi%LV-~y@Gf!FRmL56dEr$5<{8uvArt{qJt6Zfon~6TSTUNg*6QO*Sf?HkH zSLmgpu$HaGFrv-D8Ol|9Iw7wiB3$cGs#ymA%=I*Z7dG^Iaoe|Cn9 zPEc=Fa6N(1%4P-iW(9-I3Jw=(&sGVRki@+k7&5&J0R2<~n$$$!DMa5gqHh@<@8Kbp zYeL&uj#HK?zsDwpDJn#tMfsKJ`zD%mdFMJJ`be$b7`INu=T<~~wLT^h-{2z^A78Dj z$;VfuyBIn4r8e5+w_No7x{Mg^e=xV=4y)DQACwWp9agLO8o0yO6iDhXA1in`4WG

    M)Kohex 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

    ?r*ifj7!uO_SQQw`36TW? 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⩔j%JMT%Fo{puch4LQlfOn=d&pi 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

    |pf@CFA6~I&`)sgCsf(upV_~0z5g0u)m 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%0D$aIP% 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

    S|tVo6r(hL5y)+zjCP^wk3t?U*l7~^!pvmvt$ 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 B{A&OJ diff --git a/index.html b/index.html index 75cd0b8..21536b5 100644 --- a/index.html +++ b/index.html @@ -57,4 +57,4 @@ stroke-dasharray: 100px 402px; stroke-dashoffset: -502px; } - }

    \ No newline at end of file + }
    LOADING
    \ No newline at end of file diff --git a/js/_worker.5e0dd41a.worker.js b/js/_worker.5e0dd41a.worker.js new file mode 100644 index 0000000..b42eef8 --- /dev/null +++ b/js/_worker.5e0dd41a.worker.js @@ -0,0 +1,19 @@ +(function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s="4ef2")})({0:function(t,e){},"00dc":function(t,e,r){(function(t){var n=r("58a2"),i=r("c24d"),o=r("561d");function a(e){var r=new t(i[e].prime,"hex"),n=new t(i[e].gen,"hex");return new o(r,n)}var s={binary:!0,hex:!0,base64:!0};function u(e,r,i,a){return t.isBuffer(r)||void 0===s[r]?u(e,"binary",r,i):(r=r||"binary",a=a||"binary",i=i||new t([2]),t.isBuffer(i)||(i=new t(i,a)),"number"===typeof e?new o(n(e,i),i,!0):(t.isBuffer(e)||(e=new t(e,r)),new o(e,i,!0)))}e.DiffieHellmanGroup=e.createDiffieHellmanGroup=e.getDiffieHellman=a,e.createDiffieHellman=e.DiffieHellman=u}).call(this,r("b639").Buffer)},"00ee":function(t,e,r){var n=r("b622"),i=n("toStringTag"),o={};o[i]="z",t.exports="[object z]"===String(o)},"0106":function(t,e,r){(function(t){(function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a=r(14).Buffer}catch(k){}function s(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}function v(t,e,r){var n=new b;return n.mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):n<63?d(this,t,e):n<1024?m(this,t,e):v(this,t,e),r},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(w,y),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return g[t]=e,e},S.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},i(A,S),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},"0145":function(t,e){e.encrypt=function(t,e){return t._cipher.encryptBlock(e)},e.decrypt=function(t,e){return t._cipher.decryptBlock(e)}},"0184":function(t,e,r){"use strict";var n=r("da3e");function i(t){this.options=t,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}t.exports=i,i.prototype._init=function(){},i.prototype.update=function(t){return 0===t.length?[]:"decrypt"===this.type?this._updateDecrypt(t):this._updateEncrypt(t)},i.prototype._buffer=function(t,e){for(var r=Math.min(this.buffer.length-this.bufferOff,t.length-e),n=0;n0;n--)e+=this._buffer(t,e),r+=this._flushBuffer(i,r);return e+=this._buffer(t,e),i},i.prototype.final=function(t){var e,r;return t&&(e=this.update(t)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),e?e.concat(r):r},i.prototype._pad=function(t,e){if(0===e)return!1;while(e>>0),null!=e&&re.createDataFile("/",this.filename,e,!0,!0),this.handleError(d(this.filename,t)),this.db=q(t,"i32"),ot(this.db),this.statements={},this.functions={}}ut.prototype["bind"]=function(t){if(!this.stmt)throw"Statement closed";return this["reset"](),Array.isArray(t)?this.bindFromArray(t):null==t||"object"!==u(t)||this.bindFromObject(t)},ut.prototype["step"]=function(){if(!this.stmt)throw"Statement closed";this.pos=1;var t=k(this.stmt);switch(t){case i:return!0;case o:return!1;default:throw this.db.handleError(t)}},ut.prototype.getNumber=function(t){return null==t&&(t=this.pos,this.pos+=1),T(this.stmt,t)},ut.prototype.getString=function(t){return null==t&&(t=this.pos,this.pos+=1),I(this.stmt,t)},ut.prototype.getBlob=function(t){null==t&&(t=this.pos,this.pos+=1);for(var e=C(this.stmt,t),r=O(this.stmt,t),n=new Uint8Array(e),i=0;i1&&(p=n["argv"][1].replace(/\\/g,"/")),d=n["argv"].slice(2),t["exports"]=h,n["on"]("uncaughtException",(function(t){if(!(t instanceof lr))throw t})),n["on"]("unhandledRejection",Tt),function(t){n["exit"](t)},h["inspect"]=function(){return"[Emscripten Module object]"}):g?("undefined"!=typeof read&&(y=function(t){return read(t)}),M=function(t){var e;return"function"===typeof readbuffer?new Uint8Array(readbuffer(t)):(e=read(t,"binary"),F("object"===u(e)),e)},"undefined"!=typeof scriptArgs?d=scriptArgs:"undefined"!=typeof arguments&&(d=arguments),"function"===typeof quit&&function(t){quit(t)},"undefined"!==typeof print&&("undefined"===typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!==typeof printErr?printErr:print)):(m||v)&&(v?S=self.location.href:"undefined"!==typeof document&&document.currentScript&&(S=document.currentScript.src),S=0!==S.indexOf("blob:")?S.substr(0,S.lastIndexOf("/")+1):"",y=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},v&&(M=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),w=function(t,e,r){var n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?e(n.response):r()},n.onerror=r,n.send(null)});var k=h["print"]||console.log.bind(console),x=h["printErr"]||console.warn.bind(console);for(l in c)c.hasOwnProperty(l)&&(h[l]=c[l]);c=null,h["arguments"]&&(d=h["arguments"]),h["thisProgram"]&&(p=h["thisProgram"]),h["quit"]&&h["quit"];var R=16;function $(t,e){return e||(e=R),Math.ceil(t/e)*e}function T(t,e){if("function"===typeof WebAssembly.Function){for(var r={i:"i32",j:"i64",f:"f32",d:"f64"},n={parameters:[],results:"v"==e[0]?[]:[r[e[0]]]},i=1;i>0]=e;break;case"i8":V[t>>0]=e;break;case"i16":J[t>>1]=e;break;case"i32":Q[t>>2]=e;break;case"i64":Ct=[e>>>0,(Ot=e,+Math.abs(Ot)>=1?Ot>0?(0|Math.min(+Math.floor(Ot/4294967296),4294967295))>>>0:~~+Math.ceil((Ot-+(~~Ot>>>0))/4294967296)>>>0:0)],Q[t>>2]=Ct[0],Q[t+4>>2]=Ct[1];break;case"float":tt[t>>2]=e;break;case"double":et[t>>3]=e;break;default:Tt("invalid type for setValue: "+r)}}function q(t,e,r){switch(e=e||"i8","*"===e.charAt(e.length-1)&&(e="i32"),e){case"i1":return V[t>>0];case"i8":return V[t>>0];case"i16":return J[t>>1];case"i32":return Q[t>>2];case"i64":return Q[t>>2];case"float":return tt[t>>2];case"double":return et[t>>3];default:Tt("invalid type for getValue: "+e)}return null}"object"!==("undefined"===typeof WebAssembly?"undefined":u(WebAssembly))&&Tt("no native wasm support detected");var U=!1;function F(t,e){t||Tt("Assertion failed: "+e)}function z(t){var e=h["_"+t];return F(e,"Cannot call unknown function "+t+", make sure it is exported"),e}function H(t,e,r,n,i){var o={string:function(t){var e=0;if(null!==t&&void 0!==t&&0!==t){var r=1+(t.length<<2);e=hr(r),at(t,e,r)}return e},array:function(t){var e=hr(t.length);return ft(t,e),e}};function a(t){return"string"===e?it(t):"boolean"===e?Boolean(t):t}var s=z(t),u=[],h=0;if(n)for(var f=0;f=n))++i;if(i-e>16&&t.subarray&&rt)return rt.decode(t.subarray(e,i));var o="";while(e>10,56320|1023&h)}}else o+=String.fromCharCode((31&a)<<6|s)}else o+=String.fromCharCode(a)}return o}function it(t,e){return t?nt(X,t,e):""}function ot(t,e,r,n){if(!(n>0))return 0;for(var i=r,o=r+n-1,a=0;a=55296&&s<=57343){var u=t.charCodeAt(++a);s=65536+((1023&s)<<10)|1023&u}if(s<=127){if(r>=o)break;e[r++]=s}else if(s<=2047){if(r+1>=o)break;e[r++]=192|s>>6,e[r++]=128|63&s}else if(s<=65535){if(r+2>=o)break;e[r++]=224|s>>12,e[r++]=128|s>>6&63,e[r++]=128|63&s}else{if(r+3>=o)break;e[r++]=240|s>>18,e[r++]=128|s>>12&63,e[r++]=128|s>>6&63,e[r++]=128|63&s}}return e[r]=0,r-i}function at(t,e,r){return ot(t,X,e,r)}function st(t){for(var e=0,r=0;r=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&t.charCodeAt(++r)),n<=127?++e:e+=n<=2047?2:n<=65535?3:4}return e}function ut(t){var e=st(t)+1,r=rr(e);return r&&ot(t,V,r,e),r}function ht(t){var e=st(t)+1,r=hr(e);return ot(t,V,r,e),r}function ft(t,e){V.set(t,e)}function lt(t,e,r){for(var n=0;n>0]=t.charCodeAt(n);r||(V[e>>0]=0)}function ct(t,e){return t%e>0&&(t+=e-t%e),t}function dt(t){Y=t,h["HEAP8"]=V=new Int8Array(t),h["HEAP16"]=J=new Int16Array(t),h["HEAP32"]=Q=new Int32Array(t),h["HEAPU8"]=X=new Uint8Array(t),h["HEAPU16"]=new Uint16Array(t),h["HEAPU32"]=new Uint32Array(t),h["HEAPF32"]=tt=new Float32Array(t),h["HEAPF64"]=et=new Float64Array(t)}h["INITIAL_MEMORY"];var pt,mt=[],vt=[],bt=[];function gt(){if(h["preRun"]){"function"==typeof h["preRun"]&&(h["preRun"]=[h["preRun"]]);while(h["preRun"].length)Mt(h["preRun"].shift())}qt(mt)}function yt(){!0,h["noFSInit"]||re.init.initialized||re.init(),re.ignorePermissions=!1,Jt.init(),qt(vt)}function wt(){if(h["postRun"]){"function"==typeof h["postRun"]&&(h["postRun"]=[h["postRun"]]);while(h["postRun"].length)Et(h["postRun"].shift())}qt(bt)}function Mt(t){mt.unshift(t)}function _t(t){vt.unshift(t)}function Et(t){bt.unshift(t)}var St=0,At=null,kt=null;function xt(t){return t}function Rt(t){St++,h["monitorRunDependencies"]&&h["monitorRunDependencies"](St)}function $t(t){if(St--,h["monitorRunDependencies"]&&h["monitorRunDependencies"](St),0==St&&(null!==At&&(clearInterval(At),At=null),kt)){var e=kt;kt=null,e()}}function Tt(t){h["onAbort"]&&h["onAbort"](t),t+="",x(t),U=!0,1,t="abort("+t+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(t);throw e}h["preloadedImages"]={},h["preloadedAudios"]={};var It,Ot,Ct,Bt="data:application/octet-stream;base64,";function Lt(t){return t.startsWith(Bt)}function Nt(t){return t.startsWith("file://")}function Pt(t){try{if(t==It&&O)return new Uint8Array(O);if(M)return M(t);throw"both async and sync fetching of the wasm failed"}catch(x){Tt(x)}}function Dt(){if(!O&&(m||v)){if("function"===typeof fetch&&!Nt(It))return fetch(It,{credentials:"same-origin"}).then((function(t){if(!t["ok"])throw"failed to load wasm binary file at '"+It+"'";return t["arrayBuffer"]()})).catch((function(){return Pt(It)}));if(w)return new Promise((function(t,e){w(It,(function(e){t(new Uint8Array(e))}),e)}))}return Promise.resolve().then((function(){return Pt(It)}))}function jt(){var t={a:Qe};function e(t,e){var r=t.exports;h["asm"]=r,D=h["asm"]["L"],dt(D.buffer),pt=h["asm"]["Da"],_t(h["asm"]["M"]),$t("wasm-instantiate")}function r(t){e(t["instance"])}function n(e){return Dt().then((function(e){var r=WebAssembly.instantiate(e,t);return r})).then(e,(function(t){x("failed to asynchronously prepare wasm: "+t),Tt(t)}))}function i(){return O||"function"!==typeof WebAssembly.instantiateStreaming||Lt(It)||Nt(It)||"function"!==typeof fetch?n(r):fetch(It,{credentials:"same-origin"}).then((function(e){var i=WebAssembly.instantiateStreaming(e,t);return i.then(r,(function(t){return x("wasm streaming compile failed: "+t),x("falling back to ArrayBuffer instantiation"),n(r)}))}))}if(Rt("wasm-instantiate"),h["instantiateWasm"])try{var o=h["instantiateWasm"](t,e);return o}catch(a){return x("Module.instantiateWasm callback failed with error: "+a),!1}return i(),{}}function qt(t){while(t.length>0){var e=t.shift();if("function"!=typeof e){var r=e.func;"number"===typeof r?void 0===e.arg?pt.get(r)():pt.get(r)(e.arg):r(void 0===e.arg?null:e.arg)}else e(h)}}function Ut(t){return t}function Ft(t){var e=/\b_Z[\w\d_]+/g;return t.replace(e,(function(t){var e=Ut(t);return t===e?t:e+" ["+t+"]"}))}function zt(){var t=new Error;if(!t.stack){try{throw new Error}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function Ht(){var t=zt();return h["extraStackTrace"]&&(t+="\n"+h["extraStackTrace"]()),Ft(t)}function Kt(t,e,r,n){Tt("Assertion failed: "+it(t)+", at: "+[e?it(e):"unknown filename",r,n?it(n):"unknown function"])}function Wt(){if(!Wt.called){Wt.called=!0;var t=(new Date).getFullYear(),e=new Date(t,0,1),r=new Date(t,6,1),n=e.getTimezoneOffset(),i=r.getTimezoneOffset(),o=Math.max(n,i);Q[ar()>>2]=60*o,Q[or()>>2]=Number(n!=i);var a=f(e),s=f(r),u=ut(a),h=ut(s);i>2]=u,Q[ir()+4>>2]=h):(Q[ir()>>2]=h,Q[ir()+4>>2]=u)}function f(t){var e=t.toTimeString().match(/\(([A-Za-z ]+)\)$/);return e?e[1]:"GMT"}}function Zt(t,e){Wt();var r=new Date(1e3*Q[t>>2]);Q[e>>2]=r.getSeconds(),Q[e+4>>2]=r.getMinutes(),Q[e+8>>2]=r.getHours(),Q[e+12>>2]=r.getDate(),Q[e+16>>2]=r.getMonth(),Q[e+20>>2]=r.getFullYear()-1900,Q[e+24>>2]=r.getDay();var n=new Date(r.getFullYear(),0,1),i=(r.getTime()-n.getTime())/864e5|0;Q[e+28>>2]=i,Q[e+36>>2]=-60*r.getTimezoneOffset();var o=new Date(r.getFullYear(),6,1).getTimezoneOffset(),a=n.getTimezoneOffset(),s=0|(o!=a&&r.getTimezoneOffset()==Math.min(a,o));Q[e+32>>2]=s;var u=Q[ir()+(s?4:0)>>2];return Q[e+40>>2]=u,e}function Gt(t,e){return Zt(t,e)}It="sql-wasm.wasm",Lt(It)||(It=A(It));var Yt={splitPath:function(t){var e=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return e.exec(t).slice(1)},normalizeArray:function(t,e){for(var r=0,n=t.length-1;n>=0;n--){var i=t[n];"."===i?t.splice(n,1):".."===i?(t.splice(n,1),r++):r&&(t.splice(n,1),r--)}if(e)for(;r;r--)t.unshift("..");return t},normalize:function(t){var e="/"===t.charAt(0),r="/"===t.substr(-1);return t=Yt.normalizeArray(t.split("/").filter((function(t){return!!t})),!e).join("/"),t||e||(t="."),t&&r&&(t+="/"),(e?"/":"")+t},dirname:function(t){var e=Yt.splitPath(t),r=e[0],n=e[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:function(t){if("/"===t)return"/";t=Yt.normalize(t),t=t.replace(/\/$/,"");var e=t.lastIndexOf("/");return-1===e?t:t.substr(e+1)},extname:function(t){return Yt.splitPath(t)[3]},join:function(){var t=Array.prototype.slice.call(arguments,0);return Yt.normalize(t.join("/"))},join2:function(t,e){return Yt.normalize(t+"/"+e)}};function Vt(){if("object"===("undefined"===typeof crypto?"undefined":u(crypto))&&"function"===typeof crypto["getRandomValues"]){var t=new Uint8Array(1);return function(){return crypto.getRandomValues(t),t[0]}}if(b)try{var e=r("1c46");return function(){return e["randomBytes"](1)[0]}}catch(n){}return function(){Tt("randomDevice")}}var Xt={resolve:function(){for(var t="",e=!1,r=arguments.length-1;r>=-1&&!e;r--){var n=r>=0?arguments[r]:re.cwd();if("string"!==typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";t=n+"/"+t,e="/"===n.charAt(0)}return t=Yt.normalizeArray(t.split("/").filter((function(t){return!!t})),!e).join("/"),(e?"/":"")+t||"."},relative:function(t,e){function r(t){for(var e=0;e=0;r--)if(""!==t[r])break;return e>r?[]:t.slice(e,r-e+1)}t=Xt.resolve(t).substr(1),e=Xt.resolve(e).substr(1);for(var n=r(t.split("/")),i=r(e.split("/")),o=Math.min(n.length,i.length),a=o,s=0;s0?i.slice(0,a).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?(e=window.prompt("Input: "),null!==e&&(e+="\n")):"function"==typeof readline&&(e=readline(),null!==e&&(e+="\n"));if(!e)return null;t.input=Xe(e,!0)}return t.input.shift()},put_char:function(t,e){null===e||10===e?(k(nt(t.output,0)),t.output=[]):0!=e&&t.output.push(e)},flush:function(t){t.output&&t.output.length>0&&(k(nt(t.output,0)),t.output=[])}},default_tty1_ops:{put_char:function(t,e){null===e||10===e?(x(nt(t.output,0)),t.output=[]):0!=e&&t.output.push(e)},flush:function(t){t.output&&t.output.length>0&&(x(nt(t.output,0)),t.output=[])}}};function Qt(t){var e=$(t,65536),r=rr(e);while(t=e)){var n=1048576;e=Math.max(e,r*(r>>0),0!=r&&(e=Math.max(e,256));var i=t.contents;t.contents=new Uint8Array(e),t.usedBytes>0&&t.contents.set(i.subarray(0,t.usedBytes),0)}},resizeFileStorage:function(t,e){if(t.usedBytes!=e)if(0==e)t.contents=null,t.usedBytes=0;else{var r=t.contents;t.contents=new Uint8Array(e),r&&t.contents.set(r.subarray(0,Math.min(e,t.usedBytes))),t.usedBytes=e}},node_ops:{getattr:function(t){var e={};return e.dev=re.isChrdev(t.mode)?t.id:1,e.ino=t.id,e.mode=t.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=t.rdev,re.isDir(t.mode)?e.size=4096:re.isFile(t.mode)?e.size=t.usedBytes:re.isLink(t.mode)?e.size=t.link.length:e.size=0,e.atime=new Date(t.timestamp),e.mtime=new Date(t.timestamp),e.ctime=new Date(t.timestamp),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr:function(t,e){void 0!==e.mode&&(t.mode=e.mode),void 0!==e.timestamp&&(t.timestamp=e.timestamp),void 0!==e.size&&ee.resizeFileStorage(t,e.size)},lookup:function(t,e){throw re.genericErrors[44]},mknod:function(t,e,r,n){return ee.createNode(t,e,r,n)},rename:function(t,e,r){if(re.isDir(t.mode)){var n;try{n=re.lookupNode(e,r)}catch(o){}if(n)for(var i in n.contents)throw new re.ErrnoError(55)}delete t.parent.contents[t.name],t.parent.timestamp=Date.now(),t.name=r,e.contents[r]=t,e.timestamp=t.parent.timestamp,t.parent=e},unlink:function(t,e){delete t.contents[e],t.timestamp=Date.now()},rmdir:function(t,e){var r=re.lookupNode(t,e);for(var n in r.contents)throw new re.ErrnoError(55);delete t.contents[e],t.timestamp=Date.now()},readdir:function(t){var e=[".",".."];for(var r in t.contents)t.contents.hasOwnProperty(r)&&e.push(r);return e},symlink:function(t,e,r){var n=ee.createNode(t,e,41471,0);return n.link=r,n},readlink:function(t){if(!re.isLink(t.mode))throw new re.ErrnoError(28);return t.link}},stream_ops:{read:function(t,e,r,n,i){var o=t.node.contents;if(i>=t.node.usedBytes)return 0;var a=Math.min(t.node.usedBytes-i,n);if(a>8&&o.subarray)e.set(o.subarray(i,i+a),r);else for(var s=0;s0||n+r8)throw new re.ErrnoError(32);for(var i=Yt.normalizeArray(t.split("/").filter((function(t){return!!t})),!1),o=re.root,a="/",s=0;s40)throw new re.ErrnoError(32)}}}return{path:a,node:o}},getPath:function(t){var e;while(1){if(re.isRoot(t)){var r=t.mount.mountpoint;return e?"/"!==r[r.length-1]?r+"/"+e:r+e:r}e=e?t.name+"/"+e:t.name,t=t.parent}},hashName:function(t,e){for(var r=0,n=0;n>>0)%re.nameTable.length},hashAddNode:function(t){var e=re.hashName(t.parent.id,t.name);t.name_next=re.nameTable[e],re.nameTable[e]=t},hashRemoveNode:function(t){var e=re.hashName(t.parent.id,t.name);if(re.nameTable[e]===t)re.nameTable[e]=t.name_next;else{var r=re.nameTable[e];while(r){if(r.name_next===t){r.name_next=t.name_next;break}r=r.name_next}}},lookupNode:function(t,e){var r=re.mayLookup(t);if(r)throw new re.ErrnoError(r,t);for(var n=re.hashName(t.id,e),i=re.nameTable[n];i;i=i.name_next){var o=i.name;if(i.parent.id===t.id&&o===e)return i}return re.lookup(t,e)},createNode:function(t,e,r,n){var i=new re.FSNode(t,e,r,n);return re.hashAddNode(i),i},destroyNode:function(t){re.hashRemoveNode(t)},isRoot:function(t){return t===t.parent},isMountpoint:function(t){return!!t.mounted},isFile:function(t){return 32768===(61440&t)},isDir:function(t){return 16384===(61440&t)},isLink:function(t){return 40960===(61440&t)},isChrdev:function(t){return 8192===(61440&t)},isBlkdev:function(t){return 24576===(61440&t)},isFIFO:function(t){return 4096===(61440&t)},isSocket:function(t){return 49152===(49152&t)},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(t){var e=re.flagModes[t];if("undefined"===typeof e)throw new Error("Unknown file open mode: "+t);return e},flagsToPermissionString:function(t){var e=["r","w","rw"][3&t];return 512&t&&(e+="w"),e},nodePermissions:function(t,e){return re.ignorePermissions||(!e.includes("r")||292&t.mode)&&(!e.includes("w")||146&t.mode)&&(!e.includes("x")||73&t.mode)?0:2},mayLookup:function(t){var e=re.nodePermissions(t,"x");return e||(t.node_ops.lookup?0:2)},mayCreate:function(t,e){try{re.lookupNode(t,e);return 20}catch(r){}return re.nodePermissions(t,"wx")},mayDelete:function(t,e,r){var n;try{n=re.lookupNode(t,e)}catch(o){return o.errno}var i=re.nodePermissions(t,"wx");if(i)return i;if(r){if(!re.isDir(n.mode))return 54;if(re.isRoot(n)||re.getPath(n)===re.cwd())return 10}else if(re.isDir(n.mode))return 31;return 0},mayOpen:function(t,e){return t?re.isLink(t.mode)?32:re.isDir(t.mode)&&("r"!==re.flagsToPermissionString(e)||512&e)?31:re.nodePermissions(t,re.flagsToPermissionString(e)):44},MAX_OPEN_FDS:4096,nextfd:function(t,e){t=t||0,e=e||re.MAX_OPEN_FDS;for(var r=t;r<=e;r++)if(!re.streams[r])return r;throw new re.ErrnoError(33)},getStream:function(t){return re.streams[t]},createStream:function(t,e,r){re.FSStream||(re.FSStream=function(){},re.FSStream.prototype={object:{get:function(){return this.node},set:function(t){this.node=t}},isRead:{get:function(){return 1!==(2097155&this.flags)}},isWrite:{get:function(){return 0!==(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n=new re.FSStream;for(var i in t)n[i]=t[i];t=n;var o=re.nextfd(e,r);return t.fd=o,re.streams[o]=t,t},closeStream:function(t){re.streams[t]=null},chrdev_stream_ops:{open:function(t){var e=re.getDevice(t.node.rdev);t.stream_ops=e.stream_ops,t.stream_ops.open&&t.stream_ops.open(t)},llseek:function(){throw new re.ErrnoError(70)}},major:function(t){return t>>8},minor:function(t){return 255&t},makedev:function(t,e){return t<<8|e},registerDevice:function(t,e){re.devices[t]={stream_ops:e}},getDevice:function(t){return re.devices[t]},getMounts:function(t){var e=[],r=[t];while(r.length){var n=r.pop();e.push(n),r.push.apply(r,n.mounts)}return e},syncfs:function(t,e){"function"===typeof t&&(e=t,t=!1),re.syncFSRequests++,re.syncFSRequests>1&&x("warning: "+re.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=re.getMounts(re.root.mount),n=0;function i(t){return re.syncFSRequests--,e(t)}function o(t){if(t)return o.errored?void 0:(o.errored=!0,i(t));++n>=r.length&&i(null)}r.forEach((function(e){if(!e.type.syncfs)return o(null);e.type.syncfs(e,t,o)}))},mount:function(t,e,r){var n,i="/"===r,o=!r;if(i&&re.root)throw new re.ErrnoError(10);if(!i&&!o){var a=re.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,re.isMountpoint(n))throw new re.ErrnoError(10);if(!re.isDir(n.mode))throw new re.ErrnoError(54)}var s={type:t,opts:e,mountpoint:r,mounts:[]},u=t.mount(s);return u.mount=s,s.root=u,i?re.root=u:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),u},unmount:function(t){var e=re.lookupPath(t,{follow_mount:!1});if(!re.isMountpoint(e.node))throw new re.ErrnoError(28);var r=e.node,n=r.mounted,i=re.getMounts(n);Object.keys(re.nameTable).forEach((function(t){var e=re.nameTable[t];while(e){var r=e.name_next;i.includes(e.mount)&&re.destroyNode(e),e=r}})),r.mounted=null;var o=r.mount.mounts.indexOf(n);r.mount.mounts.splice(o,1)},lookup:function(t,e){return t.node_ops.lookup(t,e)},mknod:function(t,e,r){var n=re.lookupPath(t,{parent:!0}),i=n.node,o=Yt.basename(t);if(!o||"."===o||".."===o)throw new re.ErrnoError(28);var a=re.mayCreate(i,o);if(a)throw new re.ErrnoError(a);if(!i.node_ops.mknod)throw new re.ErrnoError(63);return i.node_ops.mknod(i,o,e,r)},create:function(t,e){return e=void 0!==e?e:438,e&=4095,e|=32768,re.mknod(t,e,0)},mkdir:function(t,e){return e=void 0!==e?e:511,e&=1023,e|=16384,re.mknod(t,e,0)},mkdirTree:function(t,e){for(var r=t.split("/"),n="",i=0;ithis.length-1||t<0)){var e=t%this.chunkSize,r=t/this.chunkSize|0;return this.getter(r)[e]}},o.prototype.setDataGetter=function(t){this.getter=t},o.prototype.cacheLength=function(){var t=new XMLHttpRequest;if(t.open("HEAD",r,!1),t.send(null),!(t.status>=200&&t.status<300||304===t.status))throw new Error("Couldn't load "+r+". Status: "+t.status);var e,n=Number(t.getResponseHeader("Content-length")),i=(e=t.getResponseHeader("Accept-Ranges"))&&"bytes"===e,o=(e=t.getResponseHeader("Content-Encoding"))&&"gzip"===e,a=1048576;i||(a=n);var s=function(t,e){if(t>e)throw new Error("invalid range ("+t+", "+e+") or no bytes requested!");if(e>n-1)throw new Error("only "+n+" bytes available! programmer error!");var i=new XMLHttpRequest;if(i.open("GET",r,!1),n!==a&&i.setRequestHeader("Range","bytes="+t+"-"+e),"undefined"!=typeof Uint8Array&&(i.responseType="arraybuffer"),i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+r+". Status: "+i.status);return void 0!==i.response?new Uint8Array(i.response||[]):Xe(i.responseText||"",!0)},u=this;u.setDataGetter((function(t){var e=t*a,r=(t+1)*a-1;if(r=Math.min(r,n-1),"undefined"===typeof u.chunks[t]&&(u.chunks[t]=s(e,r)),"undefined"===typeof u.chunks[t])throw new Error("doXHR failed!");return u.chunks[t]})),!o&&n||(a=n=1,n=this.getter(0).length,a=n,k("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=a,this.lengthKnown=!0},"undefined"!==typeof XMLHttpRequest){if(!v)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new o;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:r};var u=re.createFile(t,e,s,n,i);s.contents?u.contents=s.contents:s.url&&(u.contents=null,u.url=s.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var h={},f=Object.keys(u.stream_ops);return f.forEach((function(t){var e=u.stream_ops[t];h[t]=function(){return re.forceLoadFile(u),e.apply(null,arguments)}})),h.read=function(t,e,r,n,i){re.forceLoadFile(u);var o=t.node.contents;if(i>=o.length)return 0;var a=Math.min(o.length-i,n);if(o.slice)for(var s=0;s>2]=n.dev,Q[r+4>>2]=0,Q[r+8>>2]=n.ino,Q[r+12>>2]=n.mode,Q[r+16>>2]=n.nlink,Q[r+20>>2]=n.uid,Q[r+24>>2]=n.gid,Q[r+28>>2]=n.rdev,Q[r+32>>2]=0,Ct=[n.size>>>0,(Ot=n.size,+Math.abs(Ot)>=1?Ot>0?(0|Math.min(+Math.floor(Ot/4294967296),4294967295))>>>0:~~+Math.ceil((Ot-+(~~Ot>>>0))/4294967296)>>>0:0)],Q[r+40>>2]=Ct[0],Q[r+44>>2]=Ct[1],Q[r+48>>2]=4096,Q[r+52>>2]=n.blocks,Q[r+56>>2]=n.atime.getTime()/1e3|0,Q[r+60>>2]=0,Q[r+64>>2]=n.mtime.getTime()/1e3|0,Q[r+68>>2]=0,Q[r+72>>2]=n.ctime.getTime()/1e3|0,Q[r+76>>2]=0,Ct=[n.ino>>>0,(Ot=n.ino,+Math.abs(Ot)>=1?Ot>0?(0|Math.min(+Math.floor(Ot/4294967296),4294967295))>>>0:~~+Math.ceil((Ot-+(~~Ot>>>0))/4294967296)>>>0:0)],Q[r+80>>2]=Ct[0],Q[r+84>>2]=Ct[1],0},doMsync:function(t,e,r,n,i){var o=X.slice(t,t+r);re.msync(e,o,i,r,n)},doMkdir:function(t,e){return t=Yt.normalize(t),"/"===t[t.length-1]&&(t=t.substr(0,t.length-1)),re.mkdir(t,e,0),0},doMknod:function(t,e,r){switch(61440&e){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return re.mknod(t,e,r),0},doReadlink:function(t,e,r){if(r<=0)return-28;var n=re.readlink(t),i=Math.min(r,st(n)),o=V[e+i];return at(n,e,r+1),V[e+i]=o,i},doAccess:function(t,e){if(-8&e)return-28;var r,n=re.lookupPath(t,{follow:!0});if(r=n.node,!r)return-44;var i="";return 4&e&&(i+="r"),2&e&&(i+="w"),1&e&&(i+="x"),i&&re.nodePermissions(r,i)?-2:0},doDup:function(t,e,r){var n=re.getStream(r);return n&&re.close(n),re.open(t,e,0,r,r).fd},doReadv:function(t,e,r,n){for(var i=0,o=0;o>2],s=Q[e+(8*o+4)>>2],u=re.read(t,V,a,s,n);if(u<0)return-1;if(i+=u,u>2],s=Q[e+(8*o+4)>>2],u=re.write(t,V,a,s,n);if(u<0)return-1;i+=u}return i},varargs:void 0,get:function(){ne.varargs+=4;var t=Q[ne.varargs-4>>2];return t},getStr:function(t){var e=it(t);return e},getStreamFromFD:function(t){var e=re.getStream(t);if(!e)throw new re.ErrnoError(8);return e},get64:function(t,e){return t}};function ie(t,e){try{return t=ne.getStr(t),ne.doAccess(t,e)}catch(r){return"undefined"!==typeof re&&r instanceof re.ErrnoError||Tt(r),-r.errno}}function oe(t,e){try{return t=ne.getStr(t),re.chmod(t,e),0}catch(r){return"undefined"!==typeof re&&r instanceof re.ErrnoError||Tt(r),-r.errno}}function ae(t,e,r){try{return t=ne.getStr(t),re.chown(t,e,r),0}catch(n){return"undefined"!==typeof re&&n instanceof re.ErrnoError||Tt(n),-n.errno}}function se(t,e){try{return re.fchmod(t,e),0}catch(r){return"undefined"!==typeof re&&r instanceof re.ErrnoError||Tt(r),-r.errno}}function ue(t,e,r){try{return re.fchown(t,e,r),0}catch(n){return"undefined"!==typeof re&&n instanceof re.ErrnoError||Tt(n),-n.errno}}function he(t){return Q[er()>>2]=t,t}function fe(t,e,r){ne.varargs=r;try{var n=ne.getStreamFromFD(t);switch(e){case 0:var i,o=ne.get();return o<0?-28:(i=re.open(n.path,n.flags,0,o),i.fd);case 1:case 2:return 0;case 3:return n.flags;case 4:o=ne.get();return n.flags|=o,0;case 12:o=ne.get();var a=0;return J[o+a>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return he(28),-1;default:return-28}}catch(s){return"undefined"!==typeof re&&s instanceof re.ErrnoError||Tt(s),-s.errno}}function le(t,e){try{var r=ne.getStreamFromFD(t);return ne.doStat(re.stat,r.path,e)}catch(n){return"undefined"!==typeof re&&n instanceof re.ErrnoError||Tt(n),-n.errno}}function ce(t,e,r,n){try{var i=ne.get64(r,n);return re.ftruncate(t,i),0}catch(o){return"undefined"!==typeof re&&o instanceof re.ErrnoError||Tt(o),-o.errno}}function de(t,e){try{if(0===e)return-28;var r=re.cwd(),n=st(r);return e>>16),dt(D.buffer),1}catch(e){}}function Ie(t){var e=X.length;t>>>=0;var r=2147483648;if(t>r)return!1;for(var n=1;n<=4;n*=2){var i=e*(1+.2/n);i=Math.min(i,t+100663296);var o=Math.min(r,ct(Math.max(t,i),65536)),a=Te(o);if(a)return!0}return!1}function Oe(t){var e=te();while(te()-e>2]=r.length;var n=0;return r.forEach((function(t){n+=t.length+1})),Q[e>>2]=n,0}catch(i){return"undefined"!==typeof re&&i instanceof re.ErrnoError||Tt(i),i.errno}}function De(t){try{var e=ne.getStreamFromFD(t);return re.close(e),0}catch(r){return"undefined"!==typeof re&&r instanceof re.ErrnoError||Tt(r),r.errno}}function je(t,e){try{var r=ne.getStreamFromFD(t),n=r.tty?2:re.isDir(r.mode)?3:re.isLink(r.mode)?7:4;return V[e>>0]=n,0}catch(i){return"undefined"!==typeof re&&i instanceof re.ErrnoError||Tt(i),i.errno}}function qe(t,e,r,n){try{var i=ne.getStreamFromFD(t),o=ne.doReadv(i,e,r);return Q[n>>2]=o,0}catch(a){return"undefined"!==typeof re&&a instanceof re.ErrnoError||Tt(a),a.errno}}function Ue(t,e,r,n,i){try{var o=ne.getStreamFromFD(t),a=4294967296,s=r*a+(e>>>0),u=9007199254740992;return s<=-u||s>=u?-61:(re.llseek(o,s,n),Ct=[o.position>>>0,(Ot=o.position,+Math.abs(Ot)>=1?Ot>0?(0|Math.min(+Math.floor(Ot/4294967296),4294967295))>>>0:~~+Math.ceil((Ot-+(~~Ot>>>0))/4294967296)>>>0:0)],Q[i>>2]=Ct[0],Q[i+4>>2]=Ct[1],o.getdents&&0===s&&0===n&&(o.getdents=null),0)}catch(h){return"undefined"!==typeof re&&h instanceof re.ErrnoError||Tt(h),h.errno}}function Fe(t){try{var e=ne.getStreamFromFD(t);return e.stream_ops&&e.stream_ops.fsync?-e.stream_ops.fsync(e):0}catch(r){return"undefined"!==typeof re&&r instanceof re.ErrnoError||Tt(r),r.errno}}function ze(t,e,r,n){try{var i=ne.getStreamFromFD(t),o=ne.doWritev(i,e,r);return Q[n>>2]=o,0}catch(a){return"undefined"!==typeof re&&a instanceof re.ErrnoError||Tt(a),a.errno}}function He(t){var e=Date.now();return Q[t>>2]=e/1e3|0,Q[t+4>>2]=e%1e3*1e3|0,0}function Ke(t){var e=Date.now()/1e3|0;return t&&(Q[t>>2]=e),e}function We(t,e){t=it(t);try{return re.utime(t,e,e),0}catch(r){if(!(r instanceof re.ErrnoError))throw r+" : "+Ht();return he(r.errno),-1}}function Ze(t,e){var r;if(e){var n=e+8;r=1e3*Q[n>>2],r+=Q[n+4>>2]/1e3}else r=Date.now();return We(t,r)}var Ge=function(t,e,r,n){t||(t=this),this.parent=t,this.mount=t.mount,this.mounted=null,this.id=re.nextInode++,this.name=e,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},Ye=365,Ve=146;function Xe(t,e,r){var n=r>0?r:st(t)+1,i=new Array(n),o=ot(t,i,0,i.length);return e&&(i.length=o),i}Object.defineProperties(Ge.prototype,{read:{get:function(){return(this.mode&Ye)===Ye},set:function(t){t?this.mode|=Ye:this.mode&=~Ye}},write:{get:function(){return(this.mode&Ve)===Ve},set:function(t){t?this.mode|=Ve:this.mode&=~Ve}},isFolder:{get:function(){return re.isDir(this.mode)}},isDevice:{get:function(){return re.isChrdev(this.mode)}}}),re.FSNode=Ge,re.staticInit();var Je,Qe={a:Kt,r:Gt,E:ie,g:oe,x:ae,h:se,y:ue,b:fe,i:le,D:ce,B:de,w:me,d:ve,j:be,I:ge,F:we,G:_e,H:Ee,z:Se,t:Ae,e:ke,v:xe,k:Re,m:$e,c:Ie,q:Oe,o:Ne,p:Pe,f:De,n:je,s:qe,l:Ue,C:Fe,u:ze,J:He,K:Ke,A:Ze},tr=(jt(),h["___wasm_call_ctors"]=function(){return(h["___wasm_call_ctors"]=h["asm"]["M"]).apply(null,arguments)},h["_memset"]=function(){return(tr=h["_memset"]=h["asm"]["N"]).apply(null,arguments)}),er=(h["_sqlite3_free"]=function(){return(h["_sqlite3_free"]=h["asm"]["O"]).apply(null,arguments)},h["___errno_location"]=function(){return(er=h["___errno_location"]=h["asm"]["P"]).apply(null,arguments)}),rr=(h["_sqlite3_step"]=function(){return(h["_sqlite3_step"]=h["asm"]["Q"]).apply(null,arguments)},h["_sqlite3_finalize"]=function(){return(h["_sqlite3_finalize"]=h["asm"]["R"]).apply(null,arguments)},h["_sqlite3_prepare_v2"]=function(){return(h["_sqlite3_prepare_v2"]=h["asm"]["S"]).apply(null,arguments)},h["_sqlite3_reset"]=function(){return(h["_sqlite3_reset"]=h["asm"]["T"]).apply(null,arguments)},h["_sqlite3_clear_bindings"]=function(){return(h["_sqlite3_clear_bindings"]=h["asm"]["U"]).apply(null,arguments)},h["_sqlite3_value_blob"]=function(){return(h["_sqlite3_value_blob"]=h["asm"]["V"]).apply(null,arguments)},h["_sqlite3_value_text"]=function(){return(h["_sqlite3_value_text"]=h["asm"]["W"]).apply(null,arguments)},h["_sqlite3_value_bytes"]=function(){return(h["_sqlite3_value_bytes"]=h["asm"]["X"]).apply(null,arguments)},h["_sqlite3_value_double"]=function(){return(h["_sqlite3_value_double"]=h["asm"]["Y"]).apply(null,arguments)},h["_sqlite3_value_int"]=function(){return(h["_sqlite3_value_int"]=h["asm"]["Z"]).apply(null,arguments)},h["_sqlite3_value_type"]=function(){return(h["_sqlite3_value_type"]=h["asm"]["_"]).apply(null,arguments)},h["_sqlite3_result_blob"]=function(){return(h["_sqlite3_result_blob"]=h["asm"]["$"]).apply(null,arguments)},h["_sqlite3_result_double"]=function(){return(h["_sqlite3_result_double"]=h["asm"]["aa"]).apply(null,arguments)},h["_sqlite3_result_error"]=function(){return(h["_sqlite3_result_error"]=h["asm"]["ba"]).apply(null,arguments)},h["_sqlite3_result_int"]=function(){return(h["_sqlite3_result_int"]=h["asm"]["ca"]).apply(null,arguments)},h["_sqlite3_result_int64"]=function(){return(h["_sqlite3_result_int64"]=h["asm"]["da"]).apply(null,arguments)},h["_sqlite3_result_null"]=function(){return(h["_sqlite3_result_null"]=h["asm"]["ea"]).apply(null,arguments)},h["_sqlite3_result_text"]=function(){return(h["_sqlite3_result_text"]=h["asm"]["fa"]).apply(null,arguments)},h["_sqlite3_column_count"]=function(){return(h["_sqlite3_column_count"]=h["asm"]["ga"]).apply(null,arguments)},h["_sqlite3_data_count"]=function(){return(h["_sqlite3_data_count"]=h["asm"]["ha"]).apply(null,arguments)},h["_sqlite3_column_blob"]=function(){return(h["_sqlite3_column_blob"]=h["asm"]["ia"]).apply(null,arguments)},h["_sqlite3_column_bytes"]=function(){return(h["_sqlite3_column_bytes"]=h["asm"]["ja"]).apply(null,arguments)},h["_sqlite3_column_double"]=function(){return(h["_sqlite3_column_double"]=h["asm"]["ka"]).apply(null,arguments)},h["_sqlite3_column_text"]=function(){return(h["_sqlite3_column_text"]=h["asm"]["la"]).apply(null,arguments)},h["_sqlite3_column_type"]=function(){return(h["_sqlite3_column_type"]=h["asm"]["ma"]).apply(null,arguments)},h["_sqlite3_column_name"]=function(){return(h["_sqlite3_column_name"]=h["asm"]["na"]).apply(null,arguments)},h["_sqlite3_bind_blob"]=function(){return(h["_sqlite3_bind_blob"]=h["asm"]["oa"]).apply(null,arguments)},h["_sqlite3_bind_double"]=function(){return(h["_sqlite3_bind_double"]=h["asm"]["pa"]).apply(null,arguments)},h["_sqlite3_bind_int"]=function(){return(h["_sqlite3_bind_int"]=h["asm"]["qa"]).apply(null,arguments)},h["_sqlite3_bind_text"]=function(){return(h["_sqlite3_bind_text"]=h["asm"]["ra"]).apply(null,arguments)},h["_sqlite3_bind_parameter_index"]=function(){return(h["_sqlite3_bind_parameter_index"]=h["asm"]["sa"]).apply(null,arguments)},h["_sqlite3_sql"]=function(){return(h["_sqlite3_sql"]=h["asm"]["ta"]).apply(null,arguments)},h["_sqlite3_normalized_sql"]=function(){return(h["_sqlite3_normalized_sql"]=h["asm"]["ua"]).apply(null,arguments)},h["_sqlite3_errmsg"]=function(){return(h["_sqlite3_errmsg"]=h["asm"]["va"]).apply(null,arguments)},h["_sqlite3_exec"]=function(){return(h["_sqlite3_exec"]=h["asm"]["wa"]).apply(null,arguments)},h["_sqlite3_changes"]=function(){return(h["_sqlite3_changes"]=h["asm"]["xa"]).apply(null,arguments)},h["_sqlite3_close_v2"]=function(){return(h["_sqlite3_close_v2"]=h["asm"]["ya"]).apply(null,arguments)},h["_sqlite3_create_function_v2"]=function(){return(h["_sqlite3_create_function_v2"]=h["asm"]["za"]).apply(null,arguments)},h["_sqlite3_open"]=function(){return(h["_sqlite3_open"]=h["asm"]["Aa"]).apply(null,arguments)},h["_malloc"]=function(){return(rr=h["_malloc"]=h["asm"]["Ba"]).apply(null,arguments)}),nr=h["_free"]=function(){return(nr=h["_free"]=h["asm"]["Ca"]).apply(null,arguments)},ir=(h["_RegisterExtensionFunctions"]=function(){return(h["_RegisterExtensionFunctions"]=h["asm"]["Ea"]).apply(null,arguments)},h["__get_tzname"]=function(){return(ir=h["__get_tzname"]=h["asm"]["Fa"]).apply(null,arguments)}),or=h["__get_daylight"]=function(){return(or=h["__get_daylight"]=h["asm"]["Ga"]).apply(null,arguments)},ar=h["__get_timezone"]=function(){return(ar=h["__get_timezone"]=h["asm"]["Ha"]).apply(null,arguments)},sr=h["stackSave"]=function(){return(sr=h["stackSave"]=h["asm"]["Ia"]).apply(null,arguments)},ur=h["stackRestore"]=function(){return(ur=h["stackRestore"]=h["asm"]["Ja"]).apply(null,arguments)},hr=h["stackAlloc"]=function(){return(hr=h["stackAlloc"]=h["asm"]["Ka"]).apply(null,arguments)},fr=h["_memalign"]=function(){return(fr=h["_memalign"]=h["asm"]["La"]).apply(null,arguments)};function lr(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}function cr(t){function e(){Je||(Je=!0,h["calledRun"]=!0,U||(yt(),h["onRuntimeInitialized"]&&h["onRuntimeInitialized"](),wt()))}t=t||d,St>0||(gt(),St>0||(h["setStatus"]?(h["setStatus"]("Running..."),setTimeout((function(){setTimeout((function(){h["setStatus"]("")}),1),e()}),1)):e()))}if(h["cwrap"]=K,h["UTF8ToString"]=it,h["stackSave"]=sr,h["stackRestore"]=ur,h["stackAlloc"]=hr,kt=function t(){Je||cr(),Je||(kt=t)},h["run"]=cr,h["preInit"]){"function"==typeof h["preInit"]&&(h["preInit"]=[h["preInit"]]);while(h["preInit"].length>0)h["preInit"].pop()()}return cr(),h})),h)};"object"===u(e)&&"object"===u(t)?(t.exports=f,t.exports.default=f):(a=[],s=function(){return f}.apply(e,a),void 0===s||(t.exports=s))}).call(this,r("62e4")(t),r("4362"),"/",r("b639").Buffer)},"0366":function(t,e,r){var n=r("1c0b");t.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 0:return function(){return t.call(e)};case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,i){return t.call(e,r,n,i)}}return function(){return t.apply(e,arguments)}}},"057f":function(t,e,r){var n=r("fc6a"),i=r("241c").f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return i(t)}catch(e){return a.slice()}};t.exports.f=function(t){return a&&"[object Window]"==o.call(t)?s(t):i(n(t))}},"05f0":function(t,e,r){"use strict";var n=r("d113").codes.ERR_INVALID_OPT_VALUE;function i(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}function o(t,e,r,o){var a=i(e,o,r);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0){var s=o?r:"highWaterMark";throw new n(s,a)}return Math.floor(a)}return t.objectMode?16:16384}t.exports={getHighWaterMark:o}},"0632":function(t,e,r){ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ +var n=r("b639"),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=a),a.prototype=Object.create(i.prototype),o(i,a),a.from=function(t,e,r){if("number"===typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},a.alloc=function(t,e,r){if("number"!==typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"===typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},a.allocUnsafe=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return i(t)},a.allocUnsafeSlow=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},"06cf":function(t,e,r){var n=r("83ab"),i=r("d1e7"),o=r("5c6c"),a=r("fc6a"),s=r("c04e"),u=r("5135"),h=r("0cfb"),f=Object.getOwnPropertyDescriptor;e.f=n?f:function(t,e){if(t=a(t),e=s(e,!0),h)try{return f(t,e)}catch(r){}if(u(t,e))return o(!i.f.call(t,e),t[e])}},"0706":function(module,exports){var indexOf=function(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0;r>>27}function f(t){return t<<30|t>>>2}function l(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,s=0|this._e,u=0;u<16;++u)e[u]=t.readInt32BE(4*u);for(;u<80;++u)e[u]=e[u-3]^e[u-8]^e[u-14]^e[u-16];for(var c=0;c<80;++c){var d=~~(c/20),p=h(r)+l(d,n,i,o)+s+e[c]+a[d]|0;s=o,o=i,i=f(n),n=r,r=p}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=o+this._d|0,this._e=s+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},"0960":function(t,e,r){t.exports=r("b19a")},"09dc":function(t,e,r){"use strict";t.exports=f;var n=r("9d8a").codes,i=n.ERR_METHOD_NOT_IMPLEMENTED,o=n.ERR_MULTIPLE_CALLBACK,a=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,u=r("e666");function h(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new o);r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length=e.length){o++;break}var a=e.slice(2,i-1);if(("0002"!==n.toString("hex")&&!r||"0001"!==n.toString("hex")&&r)&&o++,a.length<8&&o++,o)throw new Error("decryption error");return e.slice(i)}function d(t,e){t=f.from(t),e=f.from(e);var r=0,n=t.length;t.length!==e.length&&(r++,n=Math.min(t.length,e.length));var i=-1;while(++id||new a(e).cmp(u.modulus)>=0)throw new Error("decryption error");o=r?h(new a(e),u):s(e,u);var p=f.alloc(d-o.length);if(o=f.concat([p,o],d),4===i)return l(u,o);if(1===i)return c(u,o,r);if(3===i)return o;throw new Error("unknown padding")}},1:function(t,e){},10:function(t,e){},"10d1":function(t,e,r){"use strict";var n,i=r("da84"),o=r("e2cc"),a=r("f183"),s=r("6d61"),u=r("acac"),h=r("861d"),f=r("69f3").enforce,l=r("7f9a"),c=!i.ActiveXObject&&"ActiveXObject"in i,d=Object.isExtensible,p=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},m=t.exports=s("WeakMap",p,u);if(l&&c){n=u.getConstructor(p,"WeakMap",!0),a.REQUIRED=!0;var v=m.prototype,b=v["delete"],g=v.has,y=v.get,w=v.set;o(v,{delete:function(t){if(h(t)&&!d(t)){var e=f(this);return e.frozen||(e.frozen=new n),b.call(this,t)||e.frozen["delete"](t)}return b.call(this,t)},has:function(t){if(h(t)&&!d(t)){var e=f(this);return e.frozen||(e.frozen=new n),g.call(this,t)||e.frozen.has(t)}return g.call(this,t)},get:function(t){if(h(t)&&!d(t)){var e=f(this);return e.frozen||(e.frozen=new n),g.call(this,t)?y.call(this,t):e.frozen.get(t)}return y.call(this,t)},set:function(t,e){if(h(t)&&!d(t)){var r=f(this);r.frozen||(r.frozen=new n),g.call(this,t)?w.call(this,t,e):r.frozen.set(t,e)}else w.call(this,t,e);return this}})}},11:function(t,e){},"116d":function(t,e,r){t.exports=r("b4e8")},"11dc":function(t,e,r){"use strict";(function(e,n){var i=65536,o=4294967295;function a(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}var s=r("8707").Buffer,u=e.crypto||e.msCrypto;function h(t,e){if(t>o)throw new RangeError("requested too many random bytes");var r=s.allocUnsafe(t);if(t>0)if(t>i)for(var a=0;a1||"".split(/.?/).length?function(t,r){var n=String(a(this)),o=void 0===r?m:r>>>0;if(0===o)return[];if(void 0===t)return[n];if(!i(t))return e.call(n,t,o);var s,u,h,f=[],c=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),p=0,v=new RegExp(t.source,c+"g");while(s=l.call(v,n)){if(u=v.lastIndex,u>p&&(f.push(n.slice(p,s.index)),s.length>1&&s.index=o))break;v.lastIndex===s.index&&v.lastIndex++}return p===n.length?!h&&v.test("")||f.push(""):f.push(n.slice(p)),f.length>o?f.slice(0,o):f}:"0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:e.call(this,t,r)}:e,[function(e,r){var i=a(this),o=void 0==e?void 0:e[t];return void 0!==o?o.call(e,i,r):n.call(String(i),e,r)},function(t,i){var a=r(n,t,this,i,n!==e);if(a.done)return a.value;var l=o(t),c=String(this),d=s(l,RegExp),b=l.unicode,g=(l.ignoreCase?"i":"")+(l.multiline?"m":"")+(l.unicode?"u":"")+(v?"y":"g"),y=new d(v?l:"^(?:"+l.source+")",g),w=void 0===i?m:i>>>0;if(0===w)return[];if(0===c.length)return null===f(y,c)?[c]:[];var M=0,_=0,E=[];while(_2?arguments[2]:void 0,l=a((void 0===f?s:i(f,s))-h,s-u),c=1;h0)h in r?r[u]=r[h]:delete r[u],u+=c,h+=c;return r}},"14c3":function(t,e,r){var n=r("c6b6"),i=r("9263");t.exports=function(t,e){var r=t.exec;if("function"===typeof r){var o=r.call(t,e);if("object"!==typeof o)throw TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==n(t))throw TypeError("RegExp#exec called on incompatible receiver");return i.call(t,e)}},1545:function(t,e,r){"use strict";e.utils=r("5ee7"),e.Cipher=r("0184"),e.DES=r("4e2b"),e.CBC=r("0da4"),e.EDE=r("1fec")},"159b":function(t,e,r){var n=r("da84"),i=r("fdbc"),o=r("17c2"),a=r("9112");for(var s in i){var u=n[s],h=u&&u.prototype;if(h&&h.forEach!==o)try{a(h,"forEach",o)}catch(f){h.forEach=o}}},"170b":function(t,e,r){"use strict";var n=r("ebb5"),i=r("50c4"),o=r("23cb"),a=r("4840"),s=n.aTypedArray,u=n.exportTypedArrayMethod;u("subarray",(function(t,e){var r=s(this),n=r.length,u=o(t,n);return new(a(r,r.constructor))(r.buffer,r.byteOffset+u*r.BYTES_PER_ELEMENT,i((void 0===e?n:o(e,n))-u))}))},"17c2":function(t,e,r){"use strict";var n=r("b727").forEach,i=r("a640"),o=r("ae40"),a=i("forEach"),s=o("forEach");t.exports=a&&s?[].forEach:function(t){return n(this,t,arguments.length>1?arguments[1]:void 0)}},"182d":function(t,e,r){var n=r("f8cd");t.exports=function(t,e){var r=n(t);if(r%e)throw RangeError("Wrong offset");return r}},"19aa":function(t,e){t.exports=function(t,e,r){if(!(t instanceof e))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return t}},"19ea":function(t,e,r){"use strict";(function(e,n){function i(t){var e=this;this.next=null,this.entry=null,this.finish=function(){K(e,t)}}var o;t.exports=R,R.WritableState=x;var a={deprecate:r("b7d1")},s=r("5bbb"),u=r("b639").Buffer,h=e.Uint8Array||function(){};function f(t){return u.from(t)}function l(t){return u.isBuffer(t)||t instanceof h}var c,d=r("493f"),p=r("b9b5"),m=p.getHighWaterMark,v=r("9d8a").codes,b=v.ERR_INVALID_ARG_TYPE,g=v.ERR_METHOD_NOT_IMPLEMENTED,y=v.ERR_MULTIPLE_CALLBACK,w=v.ERR_STREAM_CANNOT_PIPE,M=v.ERR_STREAM_DESTROYED,_=v.ERR_STREAM_NULL_VALUES,E=v.ERR_STREAM_WRITE_AFTER_END,S=v.ERR_UNKNOWN_ENCODING,A=d.errorOrDestroy;function k(){}function x(t,e,n){o=o||r("e666"),t=t||{},"boolean"!==typeof n&&(n=e instanceof o),this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=m(this,t,"writableHighWaterMark",n),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===t.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){N(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}function R(t){o=o||r("e666");var e=this instanceof o;if(!e&&!c.call(R,this))return new R(t);this._writableState=new x(t,this,e),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),s.call(this)}function $(t,e){var r=new E;A(t,r),n.nextTick(e,r)}function T(t,e,r,i){var o;return null===r?o=new _:"string"===typeof r||e.objectMode||(o=new b("chunk",["string","Buffer"],r)),!o||(A(t,o),n.nextTick(i,o),!1)}function I(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=u.from(e,r)),e}function O(t,e,r,n,i,o){if(!r){var a=I(e,n,i);n!==a&&(r=!0,i="buffer",n=a)}var s=e.objectMode?1:n.length;e.length+=s;var u=e.length-1))throw new S(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),R.prototype._write=function(t,e,r){r(new g("_write()"))},R.prototype._writev=null,R.prototype.end=function(t,e,r){var n=this._writableState;return"function"===typeof t?(r=t,t=null,e=null):"function"===typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||H(this,n,r),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),R.prototype.destroy=d.destroy,R.prototype._undestroy=d.undestroy,R.prototype._destroy=function(t,e){e(t)}}).call(this,r("c8ba"),r("4362"))},"1a2a":function(t,e,r){"use strict";var n=r("3fb5"),i=r("d424"),o=r("6430"),a=r("8707").Buffer,s=r("5a76"),u=r("b5ca"),h=r("69f2"),f=a.alloc(128);function l(t,e){o.call(this,"digest"),"string"===typeof e&&(e=a.from(e));var r="sha512"===t||"sha384"===t?128:64;if(this._alg=t,this._key=e,e.length>r){var n="rmd160"===t?new u:h(t);e=n.update(e).digest()}else e.length=51||!n((function(){var e=[],r=e.constructor={};return r[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},"1e3c":function(t,e,r){var n=r("6430"),i=r("1545"),o=r("3fb5"),a=r("8707").Buffer,s={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function u(t){n.call(this);var e,r=t.mode.toLowerCase(),i=s[r];e=t.decrypt?"decrypt":"encrypt";var o=t.key;a.isBuffer(o)||(o=a.from(o)),"des-ede"!==r&&"des-ede-cbc"!==r||(o=a.concat([o,o.slice(0,8)]));var u=t.iv;a.isBuffer(u)||(u=a.from(u)),this._des=i.create({key:o,iv:u,type:e})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],t.exports=u,o(u,n),u.prototype._update=function(t){return a.from(this._des.update(t))},u.prototype._final=function(){return a.from(this._des.final())}},"1fb5":function(t,e,r){"use strict";e.byteLength=f,e.toByteArray=c,e.fromByteArray=m;for(var n=[],i=[],o="undefined"!==typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");-1===r&&(r=e);var n=r===e?0:4-r%4;return[r,n]}function f(t){var e=h(t),r=e[0],n=e[1];return 3*(r+n)/4-n}function l(t,e,r){return 3*(e+r)/4-r}function c(t){var e,r,n=h(t),a=n[0],s=n[1],u=new o(l(t,a,s)),f=0,c=s>0?a-4:a;for(r=0;r>16&255,u[f++]=e>>8&255,u[f++]=255&e;return 2===s&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,u[f++]=255&e),1===s&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,u[f++]=e>>8&255,u[f++]=255&e),u}function d(t){return n[t>>18&63]+n[t>>12&63]+n[t>>6&63]+n[63&t]}function p(t,e,r){for(var n,i=[],o=e;ou?u:s+a));return 1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},"1fec":function(t,e,r){"use strict";var n=r("da3e"),i=r("3fb5"),o=r("0184"),a=r("4e2b");function s(t,e){n.equal(e.length,24,"Invalid key length");var r=e.slice(0,8),i=e.slice(8,16),o=e.slice(16,24);this.ciphers="encrypt"===t?[a.create({type:"encrypt",key:r}),a.create({type:"decrypt",key:i}),a.create({type:"encrypt",key:o})]:[a.create({type:"decrypt",key:o}),a.create({type:"encrypt",key:i}),a.create({type:"decrypt",key:r})]}function u(t){o.call(this,t);var e=new s(this.type,this.options.key);this._edeState=e}i(u,o),t.exports=u,u.create=function(t){return new u(t)},u.prototype._update=function(t,e,r,n){var i=this._edeState;i.ciphers[0]._update(t,e,r,n),i.ciphers[1]._update(r,n,r,n),i.ciphers[2]._update(r,n,r,n)},u.prototype._pad=a.prototype._pad,u.prototype._unpad=a.prototype._unpad},2:function(t,e){},"206d":function(t,e,r){(function(e,n){var i,o=r("8707").Buffer,a=r("7d2a"),s=r("9f9d"),u=r("e07b"),h=r("8be6"),f=e.crypto&&e.crypto.subtle,l={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},c=[];function d(t){if(e.process&&!e.process.browser)return Promise.resolve(!1);if(!f||!f.importKey||!f.deriveBits)return Promise.resolve(!1);if(void 0!==c[t])return c[t];i=i||o.alloc(8);var r=p(i,i,10,128,t).then((function(){return!0})).catch((function(){return!1}));return c[t]=r,r}function p(t,e,r,n,i){return f.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then((function(t){return f.deriveBits({name:"PBKDF2",salt:e,iterations:r,hash:{name:i}},t,n<<3)})).then((function(t){return o.from(t)}))}function m(t,e){t.then((function(t){n.nextTick((function(){e(null,t)}))}),(function(t){n.nextTick((function(){e(t)}))}))}t.exports=function(t,r,i,o,f,c){"function"===typeof f&&(c=f,f=void 0),f=f||"sha1";var v=l[f.toLowerCase()];if(!v||"function"!==typeof e.Promise)return n.nextTick((function(){var e;try{e=u(t,r,i,o,f)}catch(n){return c(n)}c(null,e)}));if(a(i,o),t=h(t,s,"Password"),r=h(r,s,"Salt"),"function"!==typeof c)throw new Error("No callback provided to pbkdf2");m(d(v).then((function(e){return e?p(t,r,i,o,v):u(t,r,i,o,f)})),c)}}).call(this,r("c8ba"),r("4362"))},"20f6":function(t,e,r){var n=e;n.der=r("cfbd"),n.pem=r("8df7")},2137:function(t,e,r){"use strict";var n=r("c3c0"),i=r("da3e");function o(t,e,r){if(!(this instanceof o))return new o(t,e,r);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(n.toArray(e,r))}t.exports=o,o.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),i(t.length<=this.blockSize);for(var e=t.length;ep;p++)if(v=f?y(n(g=t[p])[0],g[1]):y(t[p]),v&&v instanceof h)return v;return new h(!1)}c=d.call(t)}b=c.next;while(!(g=b.call(c)).done)if(v=u(c,y,g.value,f),"object"==typeof v&&v&&v instanceof h)return v;return new h(!1)};f.stop=function(t){return new h(!0,t)}},"22ab":function(t,e,r){"use strict";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function i(t){for(var e=1;e0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";var e=this.head,r=""+e.data;while(e=e.next)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return f.alloc(0);var e=f.allocUnsafe(t>>>0),r=this.head,n=0;while(r)p(r.data,e,n),n+=r.data.length,r=r.next;return e}},{key:"consume",value:function(t,e){var r;return ti.length?i.length:t;if(o===i.length?n+=i:n+=i.slice(0,t),t-=o,0===t){o===i.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=i.slice(o));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(t){var e=f.allocUnsafe(t),r=this.head,n=1;r.data.copy(e),t-=r.data.length;while(r=r.next){var i=r.data,o=t>i.length?i.length:t;if(i.copy(e,e.length-t,0,o),t-=o,0===t){o===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(o));break}++n}return this.length-=n,e}},{key:d,value:function(t,e){return c(this,i({},e,{depth:0,customInspect:!1}))}}]),t}()},"23cb":function(t,e,r){var n=r("a691"),i=Math.max,o=Math.min;t.exports=function(t,e){var r=n(t);return r<0?i(r+e,0):o(r,e)}},"23e7":function(t,e,r){var n=r("da84"),i=r("06cf").f,o=r("9112"),a=r("6eeb"),s=r("ce4e"),u=r("e893"),h=r("94ca");t.exports=function(t,e){var r,f,l,c,d,p,m=t.target,v=t.global,b=t.stat;if(f=v?n:b?n[m]||s(m,{}):(n[m]||{}).prototype,f)for(l in e){if(d=e[l],t.noTargetGet?(p=i(f,l),c=p&&p.value):c=f[l],r=h(v?l:m+(b?".":"#")+l,t.forced),!r&&void 0!==c){if(typeof d===typeof c)continue;u(d,c)}(t.sham||c&&c.sham)&&o(d,"sham",!0),a(f,l,d,t)}}},"241c":function(t,e,r){var n=r("ca84"),i=r("7839"),o=i.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return n(t,o)}},2532:function(t,e,r){"use strict";var n=r("23e7"),i=r("5a34"),o=r("1d80"),a=r("ab13");n({target:"String",proto:!0,forced:!a("includes")},{includes:function(t){return!!~String(o(this)).indexOf(i(t),arguments.length>1?arguments[1]:void 0)}})},"25a1":function(t,e,r){"use strict";var n=r("ebb5"),i=r("d58f").right,o=n.aTypedArray,a=n.exportTypedArrayMethod;a("reduceRight",(function(t){return i(o(this),t,arguments.length,arguments.length>1?arguments[1]:void 0)}))},"25f0":function(t,e,r){"use strict";var n=r("6eeb"),i=r("825a"),o=r("d039"),a=r("ad6d"),s="toString",u=RegExp.prototype,h=u[s],f=o((function(){return"/a/b"!=h.call({source:"a",flags:"b"})})),l=h.name!=s;(f||l)&&n(RegExp.prototype,s,(function(){var t=i(this),e=String(t.source),r=t.flags,n=String(void 0===r&&t instanceof RegExp&&!("flags"in u)?a.call(t):r);return"/"+e+"/"+n}),{unsafe:!0})},2626:function(t,e,r){"use strict";var n=r("d066"),i=r("9bf2"),o=r("b622"),a=r("83ab"),s=o("species");t.exports=function(t){var e=n(t),r=i.f;a&&e&&!e[s]&&r(e,s,{configurable:!0,get:function(){return this}})}},"27bf":function(t,e,r){"use strict";t.exports=a;var n=r("b19a"),i=Object.create(r("3a7c"));function o(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.length","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}')},2954:function(t,e,r){"use strict";var n=r("ebb5"),i=r("4840"),o=r("d039"),a=n.aTypedArray,s=n.aTypedArrayConstructor,u=n.exportTypedArrayMethod,h=[].slice,f=o((function(){new Int8Array(1).slice()}));u("slice",(function(t,e){var r=h.call(a(this),t,e),n=i(this,this.constructor),o=0,u=r.length,f=new(s(n))(u);while(u>o)f[o]=r[o++];return f}),f)},"2aee":function(t,e,r){var n=r("4111"),i=r("d70e"),o=r("4dd0"),a=r("fda6"),s=r("a099"),u=r("8707").Buffer;function h(t){var e;"object"!==typeof t||u.isBuffer(t)||(e=t.passphrase,t=t.key),"string"===typeof t&&(t=u.from(t));var r,i,a=o(t,e),s=a.tag,h=a.data;switch(s){case"CERTIFICATE":i=n.certificate.decode(h,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(i||(i=n.PublicKey.decode(h,"der")),r=i.algorithm.algorithm.join("."),r){case"1.2.840.113549.1.1.1":return n.RSAPublicKey.decode(i.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return i.subjectPrivateKey=i.subjectPublicKey,{type:"ec",data:i};case"1.2.840.10040.4.1":return i.algorithm.params.pub_key=n.DSAparam.decode(i.subjectPublicKey.data,"der"),{type:"dsa",data:i.algorithm.params};default:throw new Error("unknown key id "+r)}throw new Error("unknown key type "+s);case"ENCRYPTED PRIVATE KEY":h=n.EncryptedPrivateKey.decode(h,"der"),h=f(h,e);case"PRIVATE KEY":switch(i=n.PrivateKey.decode(h,"der"),r=i.algorithm.algorithm.join("."),r){case"1.2.840.113549.1.1.1":return n.RSAPrivateKey.decode(i.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:i.algorithm.curve,privateKey:n.ECPrivateKey.decode(i.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return i.algorithm.params.priv_key=n.DSAparam.decode(i.subjectPrivateKey,"der"),{type:"dsa",params:i.algorithm.params};default:throw new Error("unknown key id "+r)}throw new Error("unknown key type "+s);case"RSA PUBLIC KEY":return n.RSAPublicKey.decode(h,"der");case"RSA PRIVATE KEY":return n.RSAPrivateKey.decode(h,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:n.DSAPrivateKey.decode(h,"der")};case"EC PRIVATE KEY":return h=n.ECPrivateKey.decode(h,"der"),{curve:h.parameters.value,privateKey:h.privateKey};default:throw new Error("unknown key type "+s)}}function f(t,e){var r=t.algorithm.decrypt.kde.kdeparams.salt,n=parseInt(t.algorithm.decrypt.kde.kdeparams.iters.toString(),10),o=i[t.algorithm.decrypt.cipher.algo.join(".")],h=t.algorithm.decrypt.cipher.iv,f=t.subjectPrivateKey,l=parseInt(o.split("-")[1],10)/8,c=s.pbkdf2Sync(e,r,n,l,"sha1"),d=a.createDecipheriv(o,c,h),p=[];return p.push(d.update(f)),p.push(d.final()),u.concat(p)}t.exports=h,h.signature=n.signature},"2c63":function(t,e,r){t.exports=r("dc14")},"2ca0":function(t,e,r){"use strict";var n=r("23e7"),i=r("06cf").f,o=r("50c4"),a=r("5a34"),s=r("1d80"),u=r("ab13"),h=r("c430"),f="".startsWith,l=Math.min,c=u("startsWith"),d=!h&&!c&&!!function(){var t=i(String.prototype,"startsWith");return t&&!t.writable}();n({target:"String",proto:!0,forced:!d&&!c},{startsWith:function(t){var e=String(s(this));a(t);var r=o(l(arguments.length>1?arguments[1]:void 0,e.length)),n=String(t);return f?f.call(e,n,r):e.slice(r,r+n.length)===n}})},"2d00":function(t,e,r){var n,i,o=r("da84"),a=r("342f"),s=o.process,u=s&&s.versions,h=u&&u.v8;h?(n=h.split("."),i=n[0]+n[1]):a&&(n=a.match(/Edge\/(\d+)/),(!n||n[1]>=74)&&(n=a.match(/Chrome\/(\d+)/),n&&(i=n[1]))),t.exports=i&&+i},3:function(t,e){},3280:function(t,e,r){"use strict";var n=r("ebb5"),i=r("e58c"),o=n.aTypedArray,a=n.exportTypedArrayMethod;a("lastIndexOf",(function(t){return i.apply(o(this),arguments)}))},3300:function(t,e,r){"use strict";var n=r("f3a3"),i=r("80af"),o=r("3fb5"),a=r("ea53"),s=n.assert;function u(t){a.call(this,"short",t),this.a=new i(t.a,16).toRed(this.red),this.b=new i(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function h(t,e,r,n){a.BasePoint.call(this,t,"affine"),null===e&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(e,16),this.y=new i(r,16),n&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function f(t,e,r,n){a.BasePoint.call(this,t,"jacobian"),null===e&&null===r&&null===n?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(e,16),this.y=new i(r,16),this.z=new i(n,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(u,a),t.exports=u,u.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,r,n;if(t.beta)e=new i(t.beta,16).toRed(this.red);else{var o=this._getEndoRoots(this.p);e=o[0].cmp(o[1])<0?o[0]:o[1],e=e.toRed(this.red)}if(t.lambda)r=new i(t.lambda,16);else{var a=this._getEndoRoots(this.n);0===this.g.mul(a[0]).x.cmp(this.g.x.redMul(e))?r=a[0]:(r=a[1],s(0===this.g.mul(r).x.cmp(this.g.x.redMul(e))))}return n=t.basis?t.basis.map((function(t){return{a:new i(t.a,16),b:new i(t.b,16)}})):this._getEndoBasis(r),{beta:e,lambda:r,basis:n}}},u.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:i.mont(t),r=new i(2).toRed(e).redInvm(),n=r.redNeg(),o=new i(3).toRed(e).redNeg().redSqrt().redMul(r),a=n.redAdd(o).fromRed(),s=n.redSub(o).fromRed();return[a,s]},u.prototype._getEndoBasis=function(t){var e,r,n,o,a,s,u,h,f,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),c=t,d=this.n.clone(),p=new i(1),m=new i(0),v=new i(0),b=new i(1),g=0;while(0!==c.cmpn(0)){var y=d.div(c);h=d.sub(y.mul(c)),f=v.sub(y.mul(p));var w=b.sub(y.mul(m));if(!n&&h.cmp(l)<0)e=u.neg(),r=p,n=h.neg(),o=f;else if(n&&2===++g)break;u=h,d=c,c=h,v=p,p=f,b=m,m=w}a=h.neg(),s=f;var M=n.sqr().add(o.sqr()),_=a.sqr().add(s.sqr());return _.cmp(M)>=0&&(a=e,s=r),n.negative&&(n=n.neg(),o=o.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:n,b:o},{a:a,b:s}]},u.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],i=n.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).divRound(this.n),a=i.mul(r.a),s=o.mul(n.a),u=i.mul(r.b),h=o.mul(n.b),f=t.sub(a).sub(s),l=u.add(h).neg();return{k1:f,k2:l}},u.prototype.pointFromX=function(t,e){t=new i(t,16),t.red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=n.fromRed().isOdd();return(e&&!o||!e&&o)&&(n=n.redNeg()),this.point(t,n)},u.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),i=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(i).cmpn(0)},u.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},h.prototype.isInfinity=function(){return this.inf},h.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},h.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),i=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),o=i.redSqr().redISub(this.x.redAdd(this.x)),a=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},h.prototype.getX=function(){return this.x.fromRed()},h.prototype.getY=function(){return this.y.fromRed()},h.prototype.mul=function(t){return t=new i(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},h.prototype.mulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i):this.curve._wnafMulAdd(1,n,i,2)},h.prototype.jmulAdd=function(t,e,r){var n=[this,e],i=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,i,!0):this.curve._wnafMulAdd(1,n,i,2,!0)},h.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},h.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return e},h.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var t=this.curve.jpoint(this.x,this.y,this.curve.one);return t},o(f,a.BasePoint),u.prototype.jpoint=function(t,e,r){return new f(this,t,e,r)},f.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},f.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},f.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),i=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),a=t.y.redMul(r.redMul(this.z)),s=n.redSub(i),u=o.redSub(a);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var h=s.redSqr(),f=h.redMul(s),l=n.redMul(h),c=u.redSqr().redIAdd(f).redISub(l).redISub(l),d=u.redMul(l.redISub(c)).redISub(o.redMul(f)),p=this.z.redMul(t.z).redMul(s);return this.curve.jpoint(c,d,p)},f.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),i=this.y,o=t.y.redMul(e).redMul(this.z),a=r.redSub(n),s=i.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),h=u.redMul(a),f=r.redMul(u),l=s.redSqr().redIAdd(h).redISub(f).redISub(f),c=s.redMul(f.redISub(l)).redISub(i.redMul(h)),d=this.z.redMul(a);return this.curve.jpoint(l,c,d)},f.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var e=this,r=0;r=0)return!1;if(r.redIAdd(i),0===this.x.cmp(r))return!0}},f.prototype.inspect=function(){return this.isInfinity()?"":""},f.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},3337:function(t,e,r){"use strict";var n=e;n.version=r("2801").version,n.utils=r("f3a3"),n.rand=r("fdac"),n.curve=r("4136"),n.curves=r("0cbb"),n.ec=r("b9a8"),n.eddsa=r("945d")},"334a":function(t,e,r){e=t.exports=r("4250"),e.Stream=e,e.Readable=e,e.Writable=r("19ea"),e.Duplex=r("e666"),e.Transform=r("09dc"),e.PassThrough=r("0ae3"),e.finished=r("ee93"),e.pipeline=r("fbd5")},"342f":function(t,e,r){var n=r("d066");t.exports=n("navigator","userAgent")||""},"343e":function(t,e,r){var n=e;n.der=r("3768"),n.pem=r("85b3")},"34d5":function(t,e,r){e=t.exports=r("cf35"),e.Stream=e,e.Readable=e,e.Writable=r("49ce"),e.Duplex=r("5e7d"),e.Transform=r("f1c8"),e.PassThrough=r("9d28"),e.finished=r("42a7"),e.pipeline=r("ac4f")},3505:function(t,e,r){var n=r("8707").Buffer,i=r("8c8a");function o(t,e,r){var o=e.length,a=i(e,t._cache);return t._cache=t._cache.slice(o),t._prev=n.concat([t._prev,r?e:a]),a}e.encrypt=function(t,e,r){var i,a=n.allocUnsafe(0);while(e.length){if(0===t._cache.length&&(t._cache=t._cipher.encryptBlock(t._prev),t._prev=n.allocUnsafe(0)),!(t._cache.length<=e.length)){a=n.concat([a,o(t,e,r)]);break}i=t._cache.length,a=n.concat([a,o(t,e.slice(0,i),r)]),e=e.slice(i)}return a}},"35a1":function(t,e,r){var n=r("f5df"),i=r("3f8c"),o=r("b622"),a=o("iterator");t.exports=function(t){if(void 0!=t)return t[a]||t["@@iterator"]||i[n(t)]}},3768:function(t,e,r){var n=r("3fb5"),i=r("b639").Buffer,o=r("7f7a"),a=o.base,s=o.constants.der;function u(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new h,this.tree._init(t.body)}function h(t){a.Node.call(this,"der",t)}function f(t){return t<10?"0"+t:t}function l(t,e,r,n){var i;if("seqof"===t?t="seq":"setof"===t&&(t="set"),s.tagByName.hasOwnProperty(t))i=s.tagByName[t];else{if("number"!==typeof t||(0|t)!==t)return n.error("Unknown tag: "+t);i=t}return i>=31?n.error("Multi-octet tag encoding unsupported"):(e||(i|=32),i|=s.tagClassByName[r||"universal"]<<6,i)}t.exports=u,u.prototype.encode=function(t,e){return this.tree._encode(t,e).join()},n(h,a.Node),h.prototype._encodeComposite=function(t,e,r,n){var o=l(t,e,r,this.reporter);if(n.length<128){var a=new i(2);return a[0]=o,a[1]=n.length,this._createEncoderBuffer([a,n])}for(var s=1,u=n.length;u>=256;u>>=8)s++;a=new i(2+s);a[0]=o,a[1]=128|s;u=1+s;for(var h=n.length;h>0;u--,h>>=8)a[u]=255&h;return this._createEncoderBuffer([a,n])},h.prototype._encodeStr=function(t,e){if("bitstr"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if("bmpstr"===e){for(var r=new i(2*t.length),n=0;n=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,40*t[0]+t[1])}var o=0;for(n=0;n=128;a>>=7)o++}var s=new i(o),u=s.length-1;for(n=t.length-1;n>=0;n--){a=t[n];s[u--]=127&a;while((a>>=7)>0)s[u--]=128|127&a}return this._createEncoderBuffer(s)},h.prototype._encodeTime=function(t,e){var r,n=new Date(t);return"gentime"===e?r=[f(n.getFullYear()),f(n.getUTCMonth()+1),f(n.getUTCDate()),f(n.getUTCHours()),f(n.getUTCMinutes()),f(n.getUTCSeconds()),"Z"].join(""):"utctime"===e?r=[f(n.getFullYear()%100),f(n.getUTCMonth()+1),f(n.getUTCDate()),f(n.getUTCHours()),f(n.getUTCMinutes()),f(n.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(r,"octstr")},h.prototype._encodeNull=function(){return this._createEncoderBuffer("")},h.prototype._encodeInt=function(t,e){if("string"===typeof t){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=e[t]}if("number"!==typeof t&&!i.isBuffer(t)){var r=t.toArray();!t.sign&&128&r[0]&&r.unshift(0),t=new i(r)}if(i.isBuffer(t)){var n=t.length;0===t.length&&n++;var o=new i(n);return t.copy(o),0===t.length&&(o[0]=0),this._createEncoderBuffer(o)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);n=1;for(var a=t;a>=256;a>>=8)n++;for(o=new Array(n),a=o.length-1;a>=0;a--)o[a]=255&t,t>>=8;return 128&o[0]&&o.unshift(0),this._createEncoderBuffer(new i(o))},h.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},h.prototype._use=function(t,e){return"function"===typeof t&&(t=t(e)),t._getEncoder("der").tree},h.prototype._skipDefault=function(t,e,r){var n,i=this._baseState;if(null===i["default"])return!1;var o=t.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i["default"],e,r).join()),o.length!==i.defaultBuffer.length)return!1;for(n=0;n=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}function v(t,e,r){var n=new b;return n.mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):n<63?d(this,t,e):n<1024?m(this,t,e):v(this,t,e),r},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(w,y),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return g[t]=e,e},S.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},i(A,S),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},"37e8":function(t,e,r){var n=r("83ab"),i=r("9bf2"),o=r("825a"),a=r("df75");t.exports=n?Object.defineProperties:function(t,e){o(t);var r,n=a(e),s=n.length,u=0;while(s>u)i.f(t,r=n[u++],e[r]);return t}},"380f":function(t,e,r){"use strict";var n=r("f3a3"),i=n.assert,o=n.parseBytes,a=n.cachedProperty;function s(t,e){this.eddsa=t,this._secret=o(e.secret),t.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=o(e.pub)}s.fromPublic=function(t,e){return e instanceof s?e:new s(t,{pub:e})},s.fromSecret=function(t,e){return e instanceof s?e:new s(t,{secret:e})},s.prototype.secret=function(){return this._secret},a(s,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),a(s,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),a(s,"privBytes",(function(){var t=this.eddsa,e=this.hash(),r=t.encodingLength-1,n=e.slice(0,t.encodingLength);return n[0]&=248,n[r]&=127,n[r]|=64,n})),a(s,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),a(s,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),a(s,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(t){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(t,this)},s.prototype.verify=function(t,e){return this.eddsa.verify(t,e,this)},s.prototype.getSecret=function(t){return i(this._secret,"KeyPair is public only"),n.encode(this.secret(),t)},s.prototype.getPublic=function(t){return n.encode(this.pubBytes(),t)},t.exports=s},"399f":function(t,e,r){(function(t){(function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a=r(11).Buffer}catch($){}function s(t,e,r){for(var i=0,o=Math.min(t.length,r),a=0,s=e;s=49&&h<=54?h-49+10:h>=17&&h<=22?h-17+10:h,i|=u,a|=u}return n(!(240&a),"Invalid character in "+t),i}function u(t,e,r,i){for(var o=0,a=0,s=Math.min(t.length,r),u=e;u=49?h-49+10:h>=17?h-17+10:h,n(h>=0&&a"}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this._strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this._strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this._strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!==typeof Symbol&&"function"===typeof Symbol.for?o.prototype[Symbol.for("nodejs.util.inspect.custom")]=f:o.prototype.inspect=f;var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?l[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var h=c[t],f=d[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modrn(f).toString(t);p=p.idivn(f),r=p.isZero()?m+r:l[h-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16,2)},a&&(o.prototype.toBuffer=function(t,e){return this.toArrayLike(a,t,e)}),o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)};var p=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)};function m(t){for(var e=new Array(t.bitLength()),r=0;r>>i&1}return e}function v(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r._strip()}o.prototype.toArrayLike=function(t,e,r){this._strip();var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0");var a=p(t,o),s="le"===e?"LE":"BE";return this["_toArrayLike"+s](a,i),a},o.prototype._toArrayLikeLE=function(t,e){for(var r=0,n=0,i=0,o=0;i>8&255),r>16&255),6===o?(r>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r=0&&(t[r--]=a>>8&255),r>=0&&(t[r--]=a>>16&255),6===o?(r>=0&&(t[r--]=a>>24&255),n=0,o=0):(n=a>>>24,o+=2)}if(r>=0){t[r--]=n;while(r>=0)t[r--]=0}},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function g(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r._strip()}function y(t,e,r){return g(t,e,r)}function w(t,e){this.x=t,this.y=e}Math.imul||(b=v),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?b(this,t,e):n<63?v(this,t,e):n<1024?g(this,t,e):y(this,t,e),r},w.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},w.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,r+=o/67108864|0,r+=a>>>26,this.words[i]=67108863&a}return 0!==r&&(this.words[i]=r,this.length++),e?this.ineg():this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=m(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this._strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u._strip(),n._strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modrn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modrn=function(t){var e=t<0;e&&(t=-t),n(t<=67108863);for(var r=(1<<26)%t,i=0,o=this.length-1;o>=0;o--)i=(r*i+(0|this.words[o]))%t;return e?-i:i},o.prototype.modn=function(t){return this.modrn(t)},o.prototype.idivn=function(t){var e=t<0;e&&(t=-t),n(t<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*r;this.words[i]=o/t|0,r=o%t}return this._strip(),e?this.ineg():this},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new x(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var M={k256:null,p224:null,p192:null,p25519:null};function _(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function E(){_.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function S(){_.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function A(){_.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function k(){_.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function x(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function R(t){x.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}_.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},_.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},_.prototype.split=function(t,e){t.iushrn(this.n,0,e)},_.prototype.imulK=function(t){return t.imul(this.k)},i(E,_),E.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},E.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(M[t])return M[t];var e;if("k256"===t)e=new E;else if("p224"===t)e=new S;else if("p192"===t)e=new A;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new k}return M[t]=e,e},x.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},x.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},x.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(h(t,t.umod(this.m)._forceRed(this)),t)},x.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},x.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},x.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},x.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},x.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},x.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},x.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},x.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},x.prototype.isqr=function(t){return this.imul(t,t.clone())},x.prototype.sqr=function(t){return this.mul(t,t)},x.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},x.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},x.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new R(t)},i(R,x),R.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},R.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},R.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},R.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},R.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},"39a9":function(t,e,r){ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ +var n=r("b639"),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=a),a.prototype=Object.create(i.prototype),o(i,a),a.from=function(t,e,r){if("number"===typeof t)throw new TypeError("Argument must not be a number");return i(t,e,r)},a.alloc=function(t,e,r){if("number"!==typeof t)throw new TypeError("Argument must be a number");var n=i(t);return void 0!==e?"string"===typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},a.allocUnsafe=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return i(t)},a.allocUnsafeSlow=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return n.SlowBuffer(t)}},"39f5":function(t,e,r){var n=r("8707").Buffer;function i(t){n.isBuffer(t)||(t=n.from(t));for(var e=t.length/4|0,r=new Array(e),i=0;i>>24]^f[p>>>16&255]^l[m>>>8&255]^c[255&v]^e[b++],a=h[p>>>24]^f[m>>>16&255]^l[v>>>8&255]^c[255&d]^e[b++],s=h[m>>>24]^f[v>>>16&255]^l[d>>>8&255]^c[255&p]^e[b++],u=h[v>>>24]^f[d>>>16&255]^l[p>>>8&255]^c[255&m]^e[b++],d=o,p=a,m=s,v=u;return o=(n[d>>>24]<<24|n[p>>>16&255]<<16|n[m>>>8&255]<<8|n[255&v])^e[b++],a=(n[p>>>24]<<24|n[m>>>16&255]<<16|n[v>>>8&255]<<8|n[255&d])^e[b++],s=(n[m>>>24]<<24|n[v>>>16&255]<<16|n[d>>>8&255]<<8|n[255&p])^e[b++],u=(n[v>>>24]<<24|n[d>>>16&255]<<16|n[p>>>8&255]<<8|n[255&m])^e[b++],o>>>=0,a>>>=0,s>>>=0,u>>>=0,[o,a,s,u]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var r=[],n=[],i=[[],[],[],[]],o=[[],[],[],[]],a=0,s=0,u=0;u<256;++u){var h=s^s<<1^s<<2^s<<3^s<<4;h=h>>>8^255&h^99,r[a]=h,n[h]=a;var f=t[a],l=t[f],c=t[l],d=257*t[h]^16843008*h;i[0][a]=d<<24|d>>>8,i[1][a]=d<<16|d>>>16,i[2][a]=d<<8|d>>>24,i[3][a]=d,d=16843009*c^65537*l^257*f^16843008*a,o[0][h]=d<<24|d>>>8,o[1][h]=d<<16|d>>>16,o[2][h]=d<<8|d>>>24,o[3][h]=d,0===a?a=s=1:(a=f^t[t[t[c^f]]],s^=t[t[s]])}return{SBOX:r,INV_SBOX:n,SUB_MIX:i,INV_SUB_MIX:o}}();function h(t){this._key=i(t),this._reset()}h.blockSize=16,h.keySize=32,h.prototype.blockSize=h.blockSize,h.prototype.keySize=h.keySize,h.prototype._reset=function(){for(var t=this._key,e=t.length,r=e+6,n=4*(r+1),i=[],o=0;o>>24,a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a],a^=s[o/e|0]<<24):e>6&&o%e===4&&(a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a]),i[o]=i[o-e]^a}for(var h=[],f=0;f>>24]]^u.INV_SUB_MIX[1][u.SBOX[c>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[c>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&c]]}this._nRounds=r,this._keySchedule=i,this._invKeySchedule=h},h.prototype.encryptBlockRaw=function(t){return t=i(t),a(t,this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},h.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),r=n.allocUnsafe(16);return r.writeUInt32BE(e[0],0),r.writeUInt32BE(e[1],4),r.writeUInt32BE(e[2],8),r.writeUInt32BE(e[3],12),r},h.prototype.decryptBlock=function(t){t=i(t);var e=t[1];t[1]=t[3],t[3]=e;var r=a(t,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),o=n.allocUnsafe(16);return o.writeUInt32BE(r[0],0),o.writeUInt32BE(r[3],4),o.writeUInt32BE(r[2],8),o.writeUInt32BE(r[1],12),o},h.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},t.exports.AES=h},"3a7b":function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").findIndex,o=n.aTypedArray,a=n.exportTypedArrayMethod;a("findIndex",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},"3a7c":function(t,e,r){(function(t){function r(t){return Array.isArray?Array.isArray(t):"[object Array]"===v(t)}function n(t){return"boolean"===typeof t}function i(t){return null===t}function o(t){return null==t}function a(t){return"number"===typeof t}function s(t){return"string"===typeof t}function u(t){return"symbol"===typeof t}function h(t){return void 0===t}function f(t){return"[object RegExp]"===v(t)}function l(t){return"object"===typeof t&&null!==t}function c(t){return"[object Date]"===v(t)}function d(t){return"[object Error]"===v(t)||t instanceof Error}function p(t){return"function"===typeof t}function m(t){return null===t||"boolean"===typeof t||"number"===typeof t||"string"===typeof t||"symbol"===typeof t||"undefined"===typeof t}function v(t){return Object.prototype.toString.call(t)}e.isArray=r,e.isBoolean=n,e.isNull=i,e.isNullOrUndefined=o,e.isNumber=a,e.isString=s,e.isSymbol=u,e.isUndefined=h,e.isRegExp=f,e.isObject=l,e.isDate=c,e.isError=d,e.isFunction=p,e.isPrimitive=m,e.isBuffer=t.isBuffer}).call(this,r("b639").Buffer)},"3bbe":function(t,e,r){var n=r("861d");t.exports=function(t){if(!n(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},"3c5d":function(t,e,r){"use strict";var n=r("ebb5"),i=r("50c4"),o=r("182d"),a=r("7b0b"),s=r("d039"),u=n.aTypedArray,h=n.exportTypedArrayMethod,f=s((function(){new Int8Array(1).set({})}));h("set",(function(t){u(this);var e=o(arguments.length>1?arguments[1]:void 0,1),r=this.length,n=a(t),s=i(n.length),h=0;if(s+e>r)throw RangeError("Wrong length");while(h=r.length?{value:void 0,done:!0}:(t=n(r,i),e.index+=t.length,{value:t,done:!1})}))},"3daf":function(t,e,r){"use strict";var n=r("f3a3"),i=r("80af"),o=r("3fb5"),a=r("ea53"),s=n.assert;function u(t){this.twisted=1!==(0|t.a),this.mOneA=this.twisted&&-1===(0|t.a),this.extended=this.mOneA,a.call(this,"edwards",t),this.a=new i(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1===(0|t.c)}function h(t,e,r,n,o){a.BasePoint.call(this,t,"projective"),null===e&&null===r&&null===n?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(e,16),this.y=new i(r,16),this.z=n?new i(n,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(u,a),t.exports=u,u.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},u.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},u.prototype.jpoint=function(t,e,r,n){return this.point(t,e,r,n)},u.prototype.pointFromX=function(t,e){t=new i(t,16),t.red||(t=t.toRed(this.red));var r=t.redSqr(),n=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),a=n.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var u=s.fromRed().isOdd();return(e&&!u||!e&&u)&&(s=s.redNeg()),this.point(t,s)},u.prototype.pointFromY=function(t,e){t=new i(t,16),t.red||(t=t.toRed(this.red));var r=t.redSqr(),n=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),a=n.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,t)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==e&&(s=s.redNeg()),this.point(s,t)},u.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),r=t.y.redSqr(),n=e.redMul(this.a).redAdd(r),i=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(r)));return 0===n.cmp(i)},o(h,a.BasePoint),u.prototype.pointFromJSON=function(t){return h.fromJSON(this,t)},u.prototype.point=function(t,e,r,n){return new h(this,t,e,r,n)},h.fromJSON=function(t,e){return new h(t,e[0],e[1],e[2])},h.prototype.inspect=function(){return this.isInfinity()?"":""},h.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},h.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var n=this.curve._mulA(t),i=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=n.redAdd(e),a=o.redSub(r),s=n.redSub(e),u=i.redMul(a),h=o.redMul(s),f=i.redMul(s),l=a.redMul(o);return this.curve.point(u,h,l,f)},h.prototype._projDbl=function(){var t,e,r,n=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var a=this.curve._mulA(i),s=a.redAdd(o);if(this.zOne)t=n.redSub(i).redSub(o).redMul(s.redSub(this.curve.two)),e=s.redMul(a.redSub(o)),r=s.redSqr().redSub(s).redSub(s);else{var u=this.z.redSqr(),h=s.redSub(u).redISub(u);t=n.redSub(i).redISub(o).redMul(h),e=s.redMul(a.redSub(o)),r=s.redMul(h)}}else{a=i.redAdd(o),u=this.curve._mulC(this.z).redSqr(),h=a.redSub(u).redSub(u);t=this.curve._mulC(n.redISub(a)).redMul(h),e=this.curve._mulC(a).redMul(i.redISub(o)),r=a.redMul(h)}return this.curve.point(t,e,r)},h.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},h.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),r=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),n=this.t.redMul(this.curve.dd).redMul(t.t),i=this.z.redMul(t.z.redAdd(t.z)),o=r.redSub(e),a=i.redSub(n),s=i.redAdd(n),u=r.redAdd(e),h=o.redMul(a),f=s.redMul(u),l=o.redMul(u),c=a.redMul(s);return this.curve.point(h,f,c,l)},h.prototype._projAdd=function(t){var e,r,n=this.z.redMul(t.z),i=n.redSqr(),o=this.x.redMul(t.x),a=this.y.redMul(t.y),s=this.curve.d.redMul(o).redMul(a),u=i.redSub(s),h=i.redAdd(s),f=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(a),l=n.redMul(u).redMul(f);return this.curve.twisted?(e=n.redMul(h).redMul(a.redSub(this.curve._mulA(o))),r=u.redMul(h)):(e=n.redMul(h).redMul(a.redSub(o)),r=this.curve._mulC(u).redMul(h)),this.curve.point(l,e,r)},h.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},h.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},h.prototype.mulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!1)},h.prototype.jmulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!0)},h.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},h.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},h.prototype.getX=function(){return this.normalize(),this.x.fromRed()},h.prototype.getY=function(){return this.normalize(),this.y.fromRed()},h.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},h.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var r=t.clone(),n=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(n),0===this.x.cmp(e))return!0}},h.prototype.toP=h.prototype.normalize,h.prototype.mixedAdd=h.prototype.add},"3e8f":function(t,e){},"3f62":function(t,e,r){var n=r("8707").Buffer,i=n.alloc(16,0);function o(t){return[t.readUInt32BE(0),t.readUInt32BE(4),t.readUInt32BE(8),t.readUInt32BE(12)]}function a(t){var e=n.allocUnsafe(16);return e.writeUInt32BE(t[0]>>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function s(t){this.h=t,this.state=n.alloc(16,0),this.cache=n.allocUnsafe(0)}s.prototype.ghash=function(t){var e=-1;while(++e0;t--)n[t]=n[t]>>>1|(1&n[t-1])<<31;n[0]=n[0]>>>1,r&&(n[0]=n[0]^225<<24)}this.state=a(i)},s.prototype.update=function(t){var e;this.cache=n.concat([this.cache,t]);while(this.cache.length>=16)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},s.prototype.final=function(t,e){return this.cache.length&&this.ghash(n.concat([this.cache,i],16)),this.ghash(a([0,t,0,e])),this.state},t.exports=s},"3f8c":function(t,e){t.exports={}},"3fb5":function(t,e){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},"3fcc":function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").map,o=r("4840"),a=n.aTypedArray,s=n.aTypedArrayConstructor,u=n.exportTypedArrayMethod;u("map",(function(t){return i(a(this),t,arguments.length>1?arguments[1]:void 0,(function(t,e){return new(s(o(t,t.constructor)))(e)}))}))},4:function(t,e){},"409b":function(t,e){t.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},4111:function(t,e,r){"use strict";var n=r("7f7a");e.certificate=r("56b5");var i=n.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));e.RSAPrivateKey=i;var o=n.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));e.RSAPublicKey=o;var a=n.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}));e.PublicKey=a;var s=n.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),u=n.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())}));e.PrivateKey=u;var h=n.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));e.EncryptedPrivateKey=h;var f=n.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));e.DSAPrivateKey=f,e.DSAparam=n.define("DSAparam",(function(){this.int()}));var l=n.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(c),this.key("publicKey").optional().explicit(1).bitstr())}));e.ECPrivateKey=l;var c=n.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));e.signature=n.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},4136:function(t,e,r){"use strict";var n=e;n.base=r("ea53"),n.short=r("3300"),n.mont=r("676f"),n.edwards=r("3daf")},4186:function(t,e,r){"use strict";(function(e){var n;function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var o=r("ee93"),a=Symbol("lastResolve"),s=Symbol("lastReject"),u=Symbol("error"),h=Symbol("ended"),f=Symbol("lastPromise"),l=Symbol("handlePromise"),c=Symbol("stream");function d(t,e){return{value:t,done:e}}function p(t){var e=t[a];if(null!==e){var r=t[c].read();null!==r&&(t[f]=null,t[a]=null,t[s]=null,e(d(r,!1)))}}function m(t){e.nextTick(p,t)}function v(t,e){return function(r,n){t.then((function(){e[h]?r(d(void 0,!0)):e[l](r,n)}),n)}}var b=Object.getPrototypeOf((function(){})),g=Object.setPrototypeOf((n={get stream(){return this[c]},next:function(){var t=this,r=this[u];if(null!==r)return Promise.reject(r);if(this[h])return Promise.resolve(d(void 0,!0));if(this[c].destroyed)return new Promise((function(r,n){e.nextTick((function(){t[u]?n(t[u]):r(d(void 0,!0))}))}));var n,i=this[f];if(i)n=new Promise(v(i,this));else{var o=this[c].read();if(null!==o)return Promise.resolve(d(o,!1));n=new Promise(this[l])}return this[f]=n,n}},i(n,Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var t=this;return new Promise((function(e,r){t[c].destroy(null,(function(t){t?r(t):e(d(void 0,!0))}))}))})),n),b),y=function(t){var e,r=Object.create(g,(e={},i(e,c,{value:t,writable:!0}),i(e,a,{value:null,writable:!0}),i(e,s,{value:null,writable:!0}),i(e,u,{value:null,writable:!0}),i(e,h,{value:t._readableState.endEmitted,writable:!0}),i(e,l,{value:function(t,e){var n=r[c].read();n?(r[f]=null,r[a]=null,r[s]=null,t(d(n,!1))):(r[a]=t,r[s]=e)},writable:!0}),e));return r[f]=null,o(t,(function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[s];return null!==e&&(r[f]=null,r[a]=null,r[s]=null,e(t)),void(r[u]=t)}var n=r[a];null!==n&&(r[f]=null,r[a]=null,r[s]=null,n(d(void 0,!0))),r[h]=!0})),t.on("readable",m.bind(null,r)),r};t.exports=y}).call(this,r("4362"))},"41df":function(t,e,r){var n=e;n.Reporter=r("d1c8").Reporter,n.DecoderBuffer=r("6283").DecoderBuffer,n.EncoderBuffer=r("6283").EncoderBuffer,n.Node=r("8360")},4228:function(t,e,r){var n=r("82f0"),i=r("8707").Buffer,o=r("bac2"),a=r("09f5"),s=r("6430"),u=r("39f5"),h=r("ae84"),f=r("3fb5");function l(t,e,r){s.call(this),this._cache=new c,this._last=void 0,this._cipher=new u.AES(e),this._prev=i.from(r),this._mode=t,this._autopadding=!0}function c(){this.cache=i.allocUnsafe(0)}function d(t){var e=t[15];if(e<1||e>16)throw new Error("unable to decrypt data");var r=-1;while(++r16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},c.prototype.flush=function(){if(this.cache.length)return this.cache},e.createDecipher=m,e.createDecipheriv=p},4250:function(t,e,r){"use strict";(function(e,n){var i;t.exports=$,$.ReadableState=R;r("faa1").EventEmitter;var o=function(t,e){return t.listeners(e).length},a=r("5bbb"),s=r("b639").Buffer,u=e.Uint8Array||function(){};function h(t){return s.from(t)}function f(t){return s.isBuffer(t)||t instanceof u}var l,c=r(0);l=c&&c.debuglog?c.debuglog("stream"):function(){};var d,p,m,v=r("96a5"),b=r("493f"),g=r("b9b5"),y=g.getHighWaterMark,w=r("9d8a").codes,M=w.ERR_INVALID_ARG_TYPE,_=w.ERR_STREAM_PUSH_AFTER_EOF,E=w.ERR_METHOD_NOT_IMPLEMENTED,S=w.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r("3fb5")($,a);var A=b.errorOrDestroy,k=["error","close","destroy","pause","resume"];function x(t,e,r){if("function"===typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}function R(t,e,n){i=i||r("e666"),t=t||{},"boolean"!==typeof n&&(n=e instanceof i),this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=y(this,t,"readableHighWaterMark",n),this.buffer=new v,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(d||(d=r("7d72").StringDecoder),this.decoder=new d(t.encoding),this.encoding=t.encoding)}function $(t){if(i=i||r("e666"),!(this instanceof $))return new $(t);var e=this instanceof i;this._readableState=new R(t,this,e),this.readable=!0,t&&("function"===typeof t.read&&(this._read=t.read),"function"===typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function T(t,e,r,n,i){l("readableAddChunk",e);var o,a=t._readableState;if(null===e)a.reading=!1,N(t,a);else if(i||(o=O(a,e)),o)A(t,o);else if(a.objectMode||e&&e.length>0)if("string"===typeof e||a.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=h(e)),n)a.endEmitted?A(t,new S):I(t,a,e,!0);else if(a.ended)A(t,new _);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?I(t,a,e,!1):j(t,a)):I(t,a,e,!1)}else n||(a.reading=!1,j(t,a));return!a.ended&&(a.length=C?t=C:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function L(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=B(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function N(t,e){if(l("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?P(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,D(t)))}}function P(t){var e=t._readableState;l("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(l("emitReadable",e.flowing),e.emittedReadable=!0,n.nextTick(D,t))}function D(t){var e=t._readableState;l("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,W(t)}function j(t,e){e.readingMore||(e.readingMore=!0,n.nextTick(q,t,e))}function q(t,e){while(!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function z(t){l("readable nexttick read 0"),t.read(0)}function H(t,e){e.resumeScheduled||(e.resumeScheduled=!0,n.nextTick(K,t,e))}function K(t,e){l("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),W(t),e.flowing&&!e.reading&&t.read(0)}function W(t){var e=t._readableState;l("flow",e.flowing);while(e.flowing&&null!==t.read());}function Z(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function G(t){var e=t._readableState;l("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,n.nextTick(Y,e,t))}function Y(t,e){if(l("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function V(t,e){for(var r=0,n=t.length;r=e.highWaterMark:e.length>0)||e.ended))return l("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?G(this):P(this),null;if(t=L(t,e),0===t&&e.ended)return 0===e.length&&G(this),null;var n,i=e.needReadable;return l("need readable",i),(0===e.length||e.length-t0?Z(t,e):null,null===n?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&G(this)),null!==n&&this.emit("data",n),n},$.prototype._read=function(t){A(this,new E("_read()"))},$.prototype.pipe=function(t,e){var r=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=t;break;case 1:i.pipes=[i.pipes,t];break;default:i.pipes.push(t);break}i.pipesCount+=1,l("pipe count=%d opts=%j",i.pipesCount,e);var a=(!e||!1!==e.end)&&t!==n.stdout&&t!==n.stderr,s=a?h:g;function u(t,e){l("onunpipe"),t===r&&e&&!1===e.hasUnpiped&&(e.hasUnpiped=!0,d())}function h(){l("onend"),t.end()}i.endEmitted?n.nextTick(s):r.once("end",s),t.on("unpipe",u);var f=U(r);t.on("drain",f);var c=!1;function d(){l("cleanup"),t.removeListener("close",v),t.removeListener("finish",b),t.removeListener("drain",f),t.removeListener("error",m),t.removeListener("unpipe",u),r.removeListener("end",h),r.removeListener("end",g),r.removeListener("data",p),c=!0,!i.awaitDrain||t._writableState&&!t._writableState.needDrain||f()}function p(e){l("ondata");var n=t.write(e);l("dest.write",n),!1===n&&((1===i.pipesCount&&i.pipes===t||i.pipesCount>1&&-1!==V(i.pipes,t))&&!c&&(l("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function m(e){l("onerror",e),g(),t.removeListener("error",m),0===o(t,"error")&&A(t,e)}function v(){t.removeListener("finish",b),g()}function b(){l("onfinish"),t.removeListener("close",v),g()}function g(){l("unpipe"),r.unpipe(t)}return r.on("data",p),x(t,"error",m),t.once("close",v),t.once("finish",b),t.emit("pipe",r),i.flowing||(l("pipe resume"),r.resume()),t},$.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0,!1!==i.flowing&&this.resume()):"readable"===t&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,l("on readable",i.length,i.reading),i.length?P(this):i.reading||n.nextTick(z,this))),r},$.prototype.addListener=$.prototype.on,$.prototype.removeListener=function(t,e){var r=a.prototype.removeListener.call(this,t,e);return"readable"===t&&n.nextTick(F,this),r},$.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||n.nextTick(F,this),e},$.prototype.resume=function(){var t=this._readableState;return t.flowing||(l("resume"),t.flowing=!t.readableListening,H(this,t)),t.paused=!1,this},$.prototype.pause=function(){return l("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(l("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},$.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on("end",(function(){if(l("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){if(l("wrapped data"),r.decoder&&(i=r.decoder.write(i)),(!r.objectMode||null!==i&&void 0!==i)&&(r.objectMode||i&&i.length)){var o=e.push(i);o||(n=!0,t.pause())}})),t)void 0===this[i]&&"function"===typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var o=0;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}function v(t,e,r){var n=new b;return n.mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):n<63?d(this,t,e):n<1024?m(this,t,e):v(this,t,e),r},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(w,y),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return g[t]=e,e},S.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},i(A,S),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},4930:function(t,e,r){var n=r("d039");t.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},"493f":function(t,e,r){"use strict";(function(e){function r(t,r){var o=this,s=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return s||u?(r?r(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,e.nextTick(a,this,t)):e.nextTick(a,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!r&&t?o._writableState?o._writableState.errorEmitted?e.nextTick(i,o):(o._writableState.errorEmitted=!0,e.nextTick(n,o,t)):e.nextTick(n,o,t):r?(e.nextTick(i,o),r(t)):e.nextTick(i,o)})),this)}function n(t,e){a(t,e),i(t)}function i(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function o(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(t,e){t.emit("error",e)}function s(t,e){var r=t._readableState,n=t._writableState;r&&r.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit("error",e)}t.exports={destroy:r,undestroy:o,errorOrDestroy:s}}).call(this,r("4362"))},"49ce":function(t,e,r){"use strict";(function(e,n){function i(t){var e=this;this.next=null,this.entry=null,this.finish=function(){K(e,t)}}var o;t.exports=R,R.WritableState=x;var a={deprecate:r("b7d1")},s=r("f12a"),u=r("b639").Buffer,h=e.Uint8Array||function(){};function f(t){return u.from(t)}function l(t){return u.isBuffer(t)||t instanceof h}var c,d=r("9019"),p=r("05f0"),m=p.getHighWaterMark,v=r("d113").codes,b=v.ERR_INVALID_ARG_TYPE,g=v.ERR_METHOD_NOT_IMPLEMENTED,y=v.ERR_MULTIPLE_CALLBACK,w=v.ERR_STREAM_CANNOT_PIPE,M=v.ERR_STREAM_DESTROYED,_=v.ERR_STREAM_NULL_VALUES,E=v.ERR_STREAM_WRITE_AFTER_END,S=v.ERR_UNKNOWN_ENCODING,A=d.errorOrDestroy;function k(){}function x(t,e,n){o=o||r("5e7d"),t=t||{},"boolean"!==typeof n&&(n=e instanceof o),this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=m(this,t,"writableHighWaterMark",n),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===t.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){N(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}function R(t){o=o||r("5e7d");var e=this instanceof o;if(!e&&!c.call(R,this))return new R(t);this._writableState=new x(t,this,e),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),s.call(this)}function $(t,e){var r=new E;A(t,r),n.nextTick(e,r)}function T(t,e,r,i){var o;return null===r?o=new _:"string"===typeof r||e.objectMode||(o=new b("chunk",["string","Buffer"],r)),!o||(A(t,o),n.nextTick(i,o),!1)}function I(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=u.from(e,r)),e}function O(t,e,r,n,i,o){if(!r){var a=I(e,n,i);n!==a&&(r=!0,i="buffer",n=a)}var s=e.objectMode?1:n.length;e.length+=s;var u=e.length-1))throw new S(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),R.prototype._write=function(t,e,r){r(new g("_write()"))},R.prototype._writev=null,R.prototype.end=function(t,e,r){var n=this._writableState;return"function"===typeof t?(r=t,t=null,e=null):"function"===typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||H(this,n,r),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),R.prototype.destroy=d.destroy,R.prototype._undestroy=d.undestroy,R.prototype._destroy=function(t,e){e(t)}}).call(this,r("c8ba"),r("4362"))},"4a9b":function(t,e,r){var n=r("74e8");n("Float64",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},"4d64":function(t,e,r){var n=r("fc6a"),i=r("50c4"),o=r("23cb"),a=function(t){return function(e,r,a){var s,u=n(e),h=i(u.length),f=o(a,h);if(t&&r!=r){while(h>f)if(s=u[f++],s!=s)return!0}else for(;h>f;f++)if((t||f in u)&&u[f]===r)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},"4dd0":function(t,e,r){var n=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r\+\/\=]+)[\n\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,o=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r\+\/\=]+)-----END \1-----$/m,a=r("ae84"),s=r("fda6"),u=r("8707").Buffer;t.exports=function(t,e){var r,h=t.toString(),f=h.match(n);if(f){var l="aes"+f[1],c=u.from(f[2],"hex"),d=u.from(f[3].replace(/[\r\n]/g,""),"base64"),p=a(e,c.slice(0,8),parseInt(f[1],10)).key,m=[],v=s.createDecipheriv(l,p,c);m.push(v.update(d)),m.push(v.final()),r=u.concat(m)}else{var b=h.match(o);r=new u(b[2].replace(/[\r\n]/g,""),"base64")}var g=h.match(i)[1];return{tag:g,data:r}}},"4de4":function(t,e,r){"use strict";var n=r("23e7"),i=r("b727").filter,o=r("1dde"),a=r("ae40"),s=o("filter"),u=a("filter");n({target:"Array",proto:!0,forced:!s||!u},{filter:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(t,e,r){"use strict";var n=r("0366"),i=r("7b0b"),o=r("9bdd"),a=r("e95a"),s=r("50c4"),u=r("8418"),h=r("35a1");t.exports=function(t){var e,r,f,l,c,d,p=i(t),m="function"==typeof this?this:Array,v=arguments.length,b=v>1?arguments[1]:void 0,g=void 0!==b,y=h(p),w=0;if(g&&(b=n(b,v>2?arguments[2]:void 0,2)),void 0==y||m==Array&&a(y))for(e=s(p.length),r=new m(e);e>w;w++)d=g?b(p[w],w):p[w],u(r,w,d);else for(l=y.call(p),c=l.next,r=new m;!(f=c.call(l)).done;w++)d=g?o(l,b,[f.value,w],!0):f.value,u(r,w,d);return r.length=w,r}},"4e2b":function(t,e,r){"use strict";var n=r("da3e"),i=r("3fb5"),o=r("5ee7"),a=r("0184");function s(){this.tmp=new Array(2),this.keys=null}function u(t){a.call(this,t);var e=new s;this._desState=e,this.deriveKeys(e,t.key)}i(u,a),t.exports=u,u.create=function(t){return new u(t)};var h=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];u.prototype.deriveKeys=function(t,e){t.keys=new Array(32),n.equal(e.length,this.blockSize,"Invalid key length");var r=o.readUInt32BE(e,0),i=o.readUInt32BE(e,4);o.pc1(r,i,t.tmp,0),r=t.tmp[0],i=t.tmp[1];for(var a=0;a>>1];r=o.r28shl(r,s),i=o.r28shl(i,s),o.pc2(r,i,t.keys,a)}},u.prototype._update=function(t,e,r,n){var i=this._desState,a=o.readUInt32BE(t,e),s=o.readUInt32BE(t,e+4);o.ip(a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],"encrypt"===this.type?this._encrypt(i,a,s,i.tmp,0):this._decrypt(i,a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],o.writeUInt32BE(r,a,n),o.writeUInt32BE(r,s,n+4)},u.prototype._pad=function(t,e){for(var r=t.length-e,n=e;n>>0,a=d}o.rip(s,a,n,i)},u.prototype._decrypt=function(t,e,r,n,i){for(var a=r,s=e,u=t.keys.length-2;u>=0;u-=2){var h=t.keys[u],f=t.keys[u+1];o.expand(a,t.tmp,0),h^=t.tmp[0],f^=t.tmp[1];var l=o.substitute(h,f),c=o.permute(l),d=a;a=(s^c)>>>0,s=d}o.rip(a,s,n,i)}},"4ef2":function(t,e,r){"use strict";r.r(e);var n=r("a692"),i=r.n(n);r("a4d3"),r("e01a"),r("d3b7"),r("d28b"),r("3ca3"),r("ddb0"),r("fb6a"),r("b0c0"),r("a630");function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,o=t},f:function(){try{s||null==r["return"]||r["return"]()}finally{if(u)throw o}}}}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function h(t,e){for(var r=0;r4&&void 0!==arguments[4]?arguments[4]:1500;null===this.db&&this.createDb();var o=Object.keys(e),a=e[o[0]].length;this.db.exec(w.getCreateStatement(t,e));var u=w.generateChunks(e,i),h=Math.ceil(a/i),f=0,l=w.getInsertStmt(t,o),c=this.db.prepare(l);n({progress:0,id:r});var d,p=s(u);try{for(p.s();!(d=p.n()).done;){var m=d.value;this.db.exec("BEGIN");var v,b=s(m);try{for(b.s();!(v=b.n()).done;){var g=v.value;c.run(g)}}catch(y){b.e(y)}finally{b.f()}this.db.exec("COMMIT"),f++,n({progress:f/h*100,id:r})}}catch(y){p.e(y)}finally{p.f()}return{finish:!0}}},{key:"export",value:function(){return this.db.export()}},{key:"close",value:function(){return this.db&&this.db.close(),{finished:!0}}}],[{key:"build",value:function(){return _.then((function(){return new t}))}}]),t}();const A=S.build();function k(t){const e=this;switch(e&&e.action){case"open":return t.open(e.buffer);case"reopen":return t.open(t.export());case"exec":return t.exec(e.sql,e.params);case"import":return t.import(e.tabName,e.data,e.progressCounterId,postMessage);case"export":return t.export();case"close":return t.close();default:throw new Error("Invalid action : "+(e&&e.action))}}function x(t){return{error:t.message}}i()(t=>A.then(k.bind(t)).catch(x))},"4fd1":function(t,e,r){var n=r("3fb5"),i=r("b672"),o=r("8707").Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,i.call(this,128,112)}function h(t,e,r){return r^t&(e^r)}function f(t,e,r){return t&e|r&(t|e)}function l(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function c(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function d(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function m(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function v(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function b(t,e){return t>>>0>>0?1:0}n(u,i),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._ah,n=0|this._bh,i=0|this._ch,o=0|this._dh,s=0|this._eh,u=0|this._fh,g=0|this._gh,y=0|this._hh,w=0|this._al,M=0|this._bl,_=0|this._cl,E=0|this._dl,S=0|this._el,A=0|this._fl,k=0|this._gl,x=0|this._hl,R=0;R<32;R+=2)e[R]=t.readInt32BE(4*R),e[R+1]=t.readInt32BE(4*R+4);for(;R<160;R+=2){var $=e[R-30],T=e[R-30+1],I=d($,T),O=p(T,$);$=e[R-4],T=e[R-4+1];var C=m($,T),B=v(T,$),L=e[R-14],N=e[R-14+1],P=e[R-32],D=e[R-32+1],j=O+N|0,q=I+L+b(j,O)|0;j=j+B|0,q=q+C+b(j,B)|0,j=j+D|0,q=q+P+b(j,D)|0,e[R]=q,e[R+1]=j}for(var U=0;U<160;U+=2){q=e[U],j=e[U+1];var F=f(r,n,i),z=f(w,M,_),H=l(r,w),K=l(w,r),W=c(s,S),Z=c(S,s),G=a[U],Y=a[U+1],V=h(s,u,g),X=h(S,A,k),J=x+Z|0,Q=y+W+b(J,x)|0;J=J+X|0,Q=Q+V+b(J,X)|0,J=J+Y|0,Q=Q+G+b(J,Y)|0,J=J+j|0,Q=Q+q+b(J,j)|0;var tt=K+z|0,et=H+F+b(tt,K)|0;y=g,x=k,g=u,k=A,u=s,A=S,S=E+J|0,s=o+Q+b(S,E)|0,o=i,E=_,i=n,_=M,n=r,M=w,w=J+tt|0,r=Q+et+b(w,J)|0}this._al=this._al+w|0,this._bl=this._bl+M|0,this._cl=this._cl+_|0,this._dl=this._dl+E|0,this._el=this._el+S|0,this._fl=this._fl+A|0,this._gl=this._gl+k|0,this._hl=this._hl+x|0,this._ah=this._ah+r+b(this._al,w)|0,this._bh=this._bh+n+b(this._bl,M)|0,this._ch=this._ch+i+b(this._cl,_)|0,this._dh=this._dh+o+b(this._dl,E)|0,this._eh=this._eh+s+b(this._el,S)|0,this._fh=this._fh+u+b(this._fl,A)|0,this._gh=this._gh+g+b(this._gl,k)|0,this._hh=this._hh+y+b(this._hl,x)|0},u.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=u},5:function(t,e){},"50c4":function(t,e,r){var n=r("a691"),i=Math.min;t.exports=function(t){return t>0?i(n(t),9007199254740991):0}},5135:function(t,e){var r={}.hasOwnProperty;t.exports=function(t,e){return r.call(t,e)}},5165:function(t,e,r){(function(t){var n=r("8c8a");function i(t){return t._prev=t._cipher.encryptBlock(t._prev),t._prev}e.encrypt=function(e,r){while(e._cache.length>s%8,t._prev=o(t._prev,r?i:a);return h}function o(t,e){var r=t.length,i=-1,o=n.allocUnsafe(t.length);t=n.concat([t,n.from([e])]);while(++i>7;return o}e.encrypt=function(t,e,r){var o=e.length,a=n.allocUnsafe(o),s=-1;while(++s]*>)/g,m=/\$([$&'`]|\d\d?)/g,v=function(t){return void 0===t?t:String(t)};n("replace",2,(function(t,e,r,n){var b=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,g=n.REPLACE_KEEPS_$0,y=b?"$":"$0";return[function(r,n){var i=u(this),o=void 0==r?void 0:r[t];return void 0!==o?o.call(r,i,n):e.call(String(i),r,n)},function(t,n){if(!b&&g||"string"===typeof n&&-1===n.indexOf(y)){var o=r(e,t,this,n);if(o.done)return o.value}var u=i(t),d=String(this),p="function"===typeof n;p||(n=String(n));var m=u.global;if(m){var M=u.unicode;u.lastIndex=0}var _=[];while(1){var E=f(u,d);if(null===E)break;if(_.push(E),!m)break;var S=String(E[0]);""===S&&(u.lastIndex=h(d,a(u.lastIndex),M))}for(var A="",k=0,x=0;x<_.length;x++){E=_[x];for(var R=String(E[0]),$=l(c(s(E.index),d.length),0),T=[],I=1;I=k&&(A+=d.slice(k,$)+B,k=$+R.length)}return A+d.slice(k)}];function w(t,r,n,i,a,s){var u=n+t.length,h=i.length,f=m;return void 0!==a&&(a=o(a),f=p),e.call(s,f,(function(e,o){var s;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return r.slice(0,n);case"'":return r.slice(u);case"<":s=a[o.slice(1,-1)];break;default:var f=+o;if(0===f)return e;if(f>h){var l=d(f/10);return 0===l?e:l<=h?void 0===i[l-1]?o.charAt(1):i[l-1]+o.charAt(1):e}s=i[f-1]}return void 0===s?"":s}))}}))},5377:function(t,e,r){var n=r("83ab"),i=r("9bf2"),o=r("ad6d"),a=r("9f7f").UNSUPPORTED_Y;n&&("g"!=/./g.flags||a)&&i.f(RegExp.prototype,"flags",{configurable:!0,get:o})},"561d":function(t,e,r){(function(e){var n=r("48e6"),i=r("7a10"),o=new i,a=new n(24),s=new n(11),u=new n(10),h=new n(3),f=new n(7),l=r("58a2"),c=r("11dc");function d(t,r){return r=r||"utf8",e.isBuffer(t)||(t=new e(t,r)),this._pub=new n(t),this}function p(t,r){return r=r||"utf8",e.isBuffer(t)||(t=new e(t,r)),this._priv=new n(t),this}t.exports=b;var m={};function v(t,e){var r=e.toString("hex"),n=[r,t.toString(16)].join("_");if(n in m)return m[n];var i,c=0;if(t.isEven()||!l.simpleSieve||!l.fermatTest(t)||!o.test(t))return c+=1,c+="02"===r||"05"===r?8:4,m[n]=c,c;switch(o.test(t.shrn(1))||(c+=2),r){case"02":t.mod(a).cmp(s)&&(c+=8);break;case"05":i=t.mod(u),i.cmp(h)&&i.cmp(f)&&(c+=8);break;default:c+=4}return m[n]=c,c}function b(t,e,r){this.setGenerator(e),this.__prime=new n(t),this._prime=n.mont(this.__prime),this._primeLen=t.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=d,this.setPrivateKey=p):this._primeCode=8}function g(t,r){var n=new e(t.toArray());return r?n.toString(r):n}Object.defineProperty(b.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!==typeof this._primeCode&&(this._primeCode=v(this.__prime,this.__gen)),this._primeCode}}),b.prototype.generateKeys=function(){return this._priv||(this._priv=new n(c(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},b.prototype.computeSecret=function(t){t=new n(t),t=t.toRed(this._prime);var r=t.redPow(this._priv).fromRed(),i=new e(r.toArray()),o=this.getPrime();if(i.lengtht)r.ishrn(1);if(r.isEven()&&r.iadd(u),r.testn(1)||r.iadd(h),e.cmp(h)){if(!e.cmp(f))while(r.mod(l).cmp(c))r.iadd(p)}else while(r.mod(o).cmp(d))r.iadd(p);if(a=r.shrn(1),b(a)&&b(r)&&g(a)&&g(r)&&s.test(a)&&s.test(r))return r}}},"58a8":function(t,e,r){var n=r("1d80"),i=r("5899"),o="["+i+"]",a=RegExp("^"+o+o+"*"),s=RegExp(o+o+"*$"),u=function(t){return function(e){var r=String(n(e));return 1&t&&(r=r.replace(a,"")),2&t&&(r=r.replace(s,"")),r}};t.exports={start:u(1),end:u(2),trim:u(3)}},5919:function(t,e,r){"use strict";e.sha1=r("13e2"),e.sha224=r("07f2"),e.sha256=r("6eed"),e.sha384=r("8b95"),e.sha512=r("b525")},"5a34":function(t,e,r){var n=r("44e7");t.exports=function(t){if(n(t))throw TypeError("The method doesn't accept regular expressions");return t}},"5a76":function(t,e,r){var n=r("f576");t.exports=function(t){return(new n).update(t).digest()}},"5bbb":function(t,e,r){t.exports=r("faa1").EventEmitter},"5c6c":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"5cc6":function(t,e,r){var n=r("74e8");n("Uint8",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},"5e1a":function(t,e,r){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=r("8707").Buffer,o=r(3);function a(t,e,r){t.copy(e,r)}t.exports=function(){function t(){n(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";var e=this.head,r=""+e.data;while(e=e.next)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;var e=i.allocUnsafe(t>>>0),r=this.head,n=0;while(r)a(r.data,e,n),n+=r.data.length,r=r.next;return e},t}(),o&&o.inspect&&o.inspect.custom&&(t.exports.prototype[o.inspect.custom]=function(){var t=o.inspect({length:this.length});return this.constructor.name+" "+t})},"5e7d":function(t,e,r){"use strict";(function(e){var n=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=h;var i=r("cf35"),o=r("49ce");r("3fb5")(h,i);for(var a=n(o.prototype),s=0;s>>0},e.writeUInt32BE=function(t,e,r){t[0+r]=e>>>24,t[1+r]=e>>>16&255,t[2+r]=e>>>8&255,t[3+r]=255&e},e.ip=function(t,e,r,n){for(var i=0,o=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)i<<=1,i|=e>>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=t>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)o<<=1,o|=e>>>s+a&1;for(s=1;s<=25;s+=8)o<<=1,o|=t>>>s+a&1}r[n+0]=i>>>0,r[n+1]=o>>>0},e.rip=function(t,e,r,n){for(var i=0,o=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)i<<=1,i|=e>>>s+a&1,i<<=1,i|=t>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)o<<=1,o|=e>>>s+a&1,o<<=1,o|=t>>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},e.pc1=function(t,e,r,n){for(var i=0,o=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;for(s=0;s<=24;s+=8)i<<=1,i|=t>>s+a&1}for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;r[n+0]=i>>>0,r[n+1]=o>>>0},e.r28shl=function(t,e){return t<>>28-e};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];e.pc2=function(t,e,r,i){for(var o=0,a=0,s=n.length>>>1,u=0;u>>n[u]&1;for(u=s;u>>n[u]&1;r[i+0]=o>>>0,r[i+1]=a>>>0},e.expand=function(t,e,r){var n=0,i=0;n=(1&t)<<5|t>>>27;for(var o=23;o>=15;o-=4)n<<=6,n|=t>>>o&63;for(o=11;o>=3;o-=4)i|=t>>>o&63,i<<=6;i|=(31&t)<<1|t>>>31,e[r+0]=n>>>0,e[r+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];e.substitute=function(t,e){for(var r=0,n=0;n<4;n++){var o=t>>>18-6*n&63,a=i[64*n+o];r<<=4,r|=a}for(n=0;n<4;n++){o=e>>>18-6*n&63,a=i[256+64*n+o];r<<=4,r|=a}return r>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];e.permute=function(t){for(var e=0,r=0;r>>o[r]&1;return e>>>0},e.padSplit=function(t,e,r){var n=t.toString(2);while(n.length>8&255]},D=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},j=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},q=function(t){return B(t,23,4)},U=function(t){return B(t,52,8)},F=function(t,e){b(t[A],e,{get:function(){return M(this)[e]}})},z=function(t,e,r,n){var i=c(r),o=M(t);if(i+e>o.byteLength)throw C(x);var a=M(o.buffer).bytes,s=i+o.byteOffset,u=a.slice(s,s+e);return n?u:u.reverse()},H=function(t,e,r,n,i,o){var a=c(r),s=M(t);if(a+e>s.byteLength)throw C(x);for(var u=M(s.buffer).bytes,h=a+s.byteOffset,f=n(+i),l=0;lG;)(K=Z[G++])in $||a($,K,R[K]);W.constructor=$}m&&p(I)!==O&&m(I,O);var Y=new T(new $(2)),V=I.setInt8;Y.setInt8(0,2147483648),Y.setInt8(1,2147483649),!Y.getInt8(0)&&Y.getInt8(1)||s(I,{setInt8:function(t,e){V.call(this,t,e<<24>>24)},setUint8:function(t,e){V.call(this,t,e<<24>>24)}},{unsafe:!0})}else $=function(t){h(this,$,E);var e=c(t);_(this,{bytes:g.call(new Array(e),0),byteLength:e}),i||(this.byteLength=e)},T=function(t,e,r){h(this,T,S),h(t,$,S);var n=M(t).byteLength,o=f(e);if(o<0||o>n)throw C("Wrong offset");if(r=void 0===r?n-o:l(r),o+r>n)throw C(k);_(this,{buffer:t,byteLength:r,byteOffset:o}),i||(this.buffer=t,this.byteLength=r,this.byteOffset=o)},i&&(F($,"byteLength"),F(T,"buffer"),F(T,"byteLength"),F(T,"byteOffset")),s(T[A],{getInt8:function(t){return z(this,1,t)[0]<<24>>24},getUint8:function(t){return z(this,1,t)[0]},getInt16:function(t){var e=z(this,2,t,arguments.length>1?arguments[1]:void 0);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=z(this,2,t,arguments.length>1?arguments[1]:void 0);return e[1]<<8|e[0]},getInt32:function(t){return j(z(this,4,t,arguments.length>1?arguments[1]:void 0))},getUint32:function(t){return j(z(this,4,t,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(t){return L(z(this,4,t,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(t){return L(z(this,8,t,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(t,e){H(this,1,t,N,e)},setUint8:function(t,e){H(this,1,t,N,e)},setInt16:function(t,e){H(this,2,t,P,e,arguments.length>2?arguments[2]:void 0)},setUint16:function(t,e){H(this,2,t,P,e,arguments.length>2?arguments[2]:void 0)},setInt32:function(t,e){H(this,4,t,D,e,arguments.length>2?arguments[2]:void 0)},setUint32:function(t,e){H(this,4,t,D,e,arguments.length>2?arguments[2]:void 0)},setFloat32:function(t,e){H(this,4,t,q,e,arguments.length>2?arguments[2]:void 0)},setFloat64:function(t,e){H(this,8,t,U,e,arguments.length>2?arguments[2]:void 0)}});y($,E),y(T,S),t.exports={ArrayBuffer:$,DataView:T}},6283:function(t,e,r){var n=r("3fb5"),i=r("41df").Reporter,o=r("b639").Buffer;function a(t,e){i.call(this,e),o.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error("Input not Buffer")}function s(t,e){if(Array.isArray(t))this.length=0,this.value=t.map((function(t){return t instanceof s||(t=new s(t,e)),this.length+=t.length,t}),this);else if("number"===typeof t){if(!(0<=t&&t<=255))return e.error("non-byte EncoderBuffer value");this.value=t,this.length=1}else if("string"===typeof t)this.value=t,this.length=o.byteLength(t);else{if(!o.isBuffer(t))return e.error("Unsupported type: "+typeof t);this.value=t,this.length=t.length}}n(a,i),e.DecoderBuffer=a,a.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},a.prototype.restore=function(t){var e=new a(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,i.prototype.restore.call(this,t.reporter),e},a.prototype.isEmpty=function(){return this.offset===this.length},a.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")},a.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||"DecoderBuffer overrun");var r=new a(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+t,this.offset+=t,r},a.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},e.EncoderBuffer=s,s.prototype.join=function(t,e){return t||(t=new o(this.length)),e||(e=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(t,e),e+=r.length})):("number"===typeof this.value?t[e]=this.value:"string"===typeof this.value?t.write(this.value,e):o.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length)),t}},62831:function(t,e,r){var n; +/*! + * sqlite-parser - v1.0.1 + * @copyright 2015-2017 Code School (http://codeschool.com) + * @author Nick Wronski + */ +(function(e){t.exports=e()})((function(){return function t(e,r,i){function o(s,u){if(!r[s]){if(!e[s]){var h="function"==typeof n&&n;if(!u&&h)return n(s,!0);if(a)return a(s,!0);var f=new Error("Cannot find module '"+s+"'");throw f.code="MODULE_NOT_FOUND",f}var l=r[s]={exports:{}};e[s][0].call(l.exports,(function(t){var r=e[s][1][t];return o(r||t)}),l,l.exports,t,e,r,i)}return r[s].exports}for(var a="function"==typeof n&&n,s=0;s0},function(t,e){return{args:Object.assign(e,t)}},function(t){return{filter:q(t)}},S("Error Message"),function(t){return t},S("Statement"),function(t,e){return Object.assign(e,t)},S("QUERY PLAN"),function(t,e){return{explain:O(t)}},S("QUERY PLAN Keyword"),function(t,e){return L([t,e])},S("END Transaction Statement"),function(t,e){return{type:"statement",variant:"transaction",action:"commit"}},S("BEGIN Transaction Statement"),function(t,e,r,n){return Object.assign({type:"statement",variant:"transaction",action:"begin"},e,n)},function(t){return t},function(t){return{defer:q(t)}},S("ROLLBACK Statement"),function(t,e){return Object.assign({type:"statement",variant:"transaction",action:"rollback"},e)},S("TO Clause"),function(t){return{savepoint:t}},function(t){return q(t)},S("SAVEPOINT Statement"),function(t,e){return{type:"statement",variant:t,target:e}},S("RELEASE Statement"),function(t,e,r){return{type:"statement",variant:q(t),target:r}},S("ALTER TABLE Statement"),function(t,e,r){return Object.assign({type:"statement",variant:q(t),target:e},r)},S("ALTER TABLE Keyword"),function(t,e){return L([t,e])},S("RENAME TO Keyword"),function(t,e){return{action:q(t),name:e}},S("ADD COLUMN Keyword"),function(t,e){return{action:q(t),definition:e}},function(t,e){return Object.assign(e,t)},S("WITH Clause"),function(t,e,r){var n={variant:O(e)?"recursive":"common"};return U(r)&&(r=r.map((function(t){return Object.assign(t,n)}))),{with:r}},function(t,e){return N([t,e])},S("Common Table Expression"),function(t,e){return Object.assign({type:"expression",format:"table",variant:"common",target:t},e)},function(t){return{expression:t}},function(t,e){return Object.assign(e,t)},S("ATTACH Statement"),function(t,e,r,n){return{type:"statement",variant:q(t),target:n,attach:r}},S("DETACH Statement"),function(t,e,r){return{type:"statement",variant:q(t),target:r}},S("VACUUM Statement"),function(t,e){return Object.assign({type:"statement",variant:"vacuum"},e)},function(t){return{target:t}},S("ANALYZE Statement"),function(t,e){return Object.assign({type:"statement",variant:q(t)},e)},function(t){return{target:t["name"]}},S("REINDEX Statement"),function(t){return{target:t["name"]}},S("PRAGMA Statement"),function(t,e,r){return{type:"statement",variant:q(t),target:e,args:{type:"expression",variant:"list",expression:r}}},function(t){return t},function(t){return/^(yes|no|on|off|false|true|0|1)$/i.test(t)},function(t){return{type:"literal",variant:"boolean",normalized:/^(yes|on|true|1)$/i.test(t)?"1":"0",value:t}},function(t){return q(t)},function(t){return{type:"identifier",variant:"name",name:t}},S("SELECT Statement"),function(t,e,r){return Object.assign(t,e,r)},S("ORDER BY Clause"),function(t){return{order:t["result"]}},S("LIMIT Clause"),function(t,e,r){return{limit:Object.assign({type:"expression",variant:"limit",start:e},r)}},S("OFFSET Clause"),function(t,e){return{offset:e}},function(t,e){return U(e)?{type:"statement",variant:"compound",statement:t,compound:e}:t},S("Union Operation"),function(t,e){return{type:"compound",variant:t,statement:e}},function(t,e,r,n){return Object.assign({type:"statement",variant:"select"},t,e,r,n)},S("SELECT Results Clause"),function(t,e){return Object.assign({result:e},t)},S("SELECT Results Modifier"),function(t){return{distinct:!0}},function(t){return{}},S("FROM Clause"),function(t,e){return{from:e}},S("WHERE Clause"),function(t,e){return{where:I(e)}},S("GROUP BY Clause"),function(t,e,r){return Object.assign({group:e},r)},S("HAVING Clause"),function(t,e){return{having:e}},function(t,e){return{type:"identifier",variant:"star",name:B([t,e])}},function(t,e){return B([t,e])},function(t,e){return Object.assign(t,e)},function(t,e){return U(e)?{type:"map",variant:"join",source:t,map:e}:t},function(t,e){return Object.assign(t,e)},S("CROSS JOIN Operation"),function(t){return{type:"join",variant:"cross join",source:t}},S("JOIN Operation"),function(t,e){return{type:"join",variant:q(t),source:e}},function(t,e,r){return Object.assign({type:"function",variant:"table",name:t,args:e},r)},S("Qualified Table"),function(t,e){return Object.assign(t,e)},S("Qualified Table Identifier"),function(t,e){return Object.assign(t,e)},S("Qualfied Table Index"),function(t,e){return{index:e}},function(t,e){return{index:L([t,e])}},S("SELECT Source"),function(t,e){return Object.assign(t,e)},S("Subquery"),function(t,e){return Object.assign(t,e)},S("Alias"),function(t,e){return{alias:e}},S("JOIN Operator"),function(t,e,r){return L([t,e,r])},function(t,e){return L([t,e])},function(t){return q(t)},S("JOIN Constraint"),function(t){return{constraint:Object.assign({type:"constraint",variant:"join"},t)}},S("Join ON Clause"),function(t,e){return{format:q(t),on:e}},S("Join USING Clause"),function(t,e){return{format:q(t),using:e}},S("VALUES Clause"),function(t,e){return{type:"statement",variant:"select",result:e}},function(t,e){return{result:N([t,e])}},function(t){return t},S("Ordering Expression"),function(t,e){return O(e)?Object.assign({type:"expression",variant:"order",expression:t},e):t},S("Star"),S("Fallback Type"),S("INSERT Statement"),function(t,e){return Object.assign({type:"statement",variant:"insert"},t,e)},S("INSERT Keyword"),function(t,e){return Object.assign({action:q(t)},e)},S("REPLACE Keyword"),function(t){return{action:q(t)}},S("INSERT OR Modifier"),function(t,e){return{or:q(e)}},function(t,e){return Object.assign({into:t},e)},S("INTO Clause"),function(t,e){return e},S("INTO Keyword"),function(t){return{result:t}},S("Column List"),function(t,e){return{columns:N([t,e])}},function(t){return t},S("Column Name"),function(t){return{type:"identifier",variant:"column",name:t}},function(t,e){return e},S("VALUES Keyword"),function(t,e){return N([t,e])},S("Wrapped Expression List"),function(t){return t},S("DEFAULT VALUES Clause"),function(t,e){return{type:"values",variant:"default"}},S("Compound Operator"),S("UNION Operator"),function(t,e){return L([t,e])},function(t){return t},S("UPDATE Statement"),function(t,e,r,n,i,o,a){return Object.assign({type:"statement",variant:t,into:r},e,n,i,o,a)},S("UPDATE Keyword"),S("UPDATE OR Modifier"),function(t){return{or:q(t)}},S("SET Clause"),function(t){return{set:t}},S("Column Assignment"),function(t,e){return{type:"assignment",target:t,value:e}},S("DELETE Statement"),function(t,e,r,n,i){return Object.assign({type:"statement",variant:t,from:e},r,n,i)},S("DELETE Keyword"),S("CREATE Statement"),S("CREATE TABLE Statement"),function(t,e,r,n){return Object.assign({type:"statement",name:r},t,n,e)},function(t,e,r){return Object.assign({variant:t,format:q(r)},e)},function(t){return{temporary:O(t)}},S("IF NOT EXISTS Modifier"),function(t,e,r){return{condition:I({type:"condition",variant:q(t),condition:{type:"expression",variant:q(r),operator:L([e,r])}})}},S("Table Definition"),function(t,e,r){return Object.assign({definition:N([t,e])},r)},function(t,e){return{optimization:[{type:"optimization",value:L([t,e])}]}},function(t){return t},S("Column Definition"),function(t,e,r){return Object.assign({type:"definition",variant:"column",name:t,definition:O(r)?r:[]},e)},S("Column Datatype"),function(t){return{datatype:t}},S("Column Constraint"),function(t,e,r){return Object.assign(e,t)},function(t){return t[t.length-1]},S("CONSTRAINT Name"),function(t){return{name:t}},S("FOREIGN KEY Column Constraint"),function(t){return Object.assign({variant:"foreign key"},t)},S("PRIMARY KEY Column Constraint"),function(t,e,r,n){return Object.assign(t,r,e,n)},S("PRIMARY KEY Keyword"),function(t,e){return{type:"constraint",variant:L([t,e])}},S("AUTOINCREMENT Keyword"),function(t){return{autoIncrement:!0}},function(t,e){return Object.assign({type:"constraint",variant:t},e)},S("UNIQUE Column Constraint"),S("NULL Column Constraint"),function(t,e){return L([t,e])},S("CHECK Column Constraint"),S("DEFAULT Column Constraint"),function(t,e){return{type:"constraint",variant:q(t),value:e}},S("COLLATE Column Constraint"),function(t){return{type:"constraint",variant:"collate",collate:t}},S("Table Constraint"),function(t,e,r){return Object.assign({type:"definition",variant:"constraint"},e,t)},S("CHECK Table Constraint"),function(t){return{definition:I(t)}},S("PRIMARY KEY Table Constraint"),function(t,e,r){return{definition:I(Object.assign(t,r,e[1])),columns:e[0]}},function(t){return{type:"constraint",variant:q(t)}},function(t,e){return L([t,e])},S("UNIQUE Keyword"),function(t){return q(t)},function(t,e){return[t].concat(e)},function(t){return t.map((function(t){var e=n(t,1),r=e[0];return r}))},function(t){var e=t.find((function(t){var e=n(t,2),r=(e[0],e[1]);return O(r)}));return[t.map((function(t){var e=n(t,2),r=e[0];e[1];return r})),e?e[1]:null]},S("Indexed Column"),function(t,e,r){var n=t;return O(e)&&(n=Object.assign({type:"expression",variant:"order",expression:t},e)),[n,r]},S("Collation"),function(t){return{collate:I(t)}},S("Column Direction"),function(t){return{direction:q(t)}},function(t,e){return{conflict:q(e)}},S("ON CONFLICT Keyword"),function(t,e){return L([t,e])},function(t,e){return{type:"constraint",variant:q(t),expression:e}},S("FOREIGN KEY Table Constraint"),function(t,e,r){return Object.assign({definition:I(Object.assign(t,r))},e)},S("FOREIGN KEY Keyword"),function(t,e){return{type:"constraint",variant:L([t,e])}},function(t,e,r){return Object.assign({type:"constraint"},t,e,r)},S("REFERENCES Clause"),function(t,e){return{references:e}},function(t,e){return{action:N([t,e])}},S("FOREIGN KEY Action Clause"),function(t,e,r){return{type:"action",variant:q(t),action:q(r)}},S("FOREIGN KEY Action"),function(t,e){return L([t,e])},function(t){return q(t)},function(t,e){return L([t,e])},function(t,e){return{type:"action",variant:q(t),action:e}},S("DEFERRABLE Clause"),function(t,e,r){return{defer:L([t,e,r])}},function(t,e){return L([t,e])},function(t){return{definition:I(t)}},S("CREATE INDEX Statement"),function(t,e,r,n,i){return Object.assign({type:"statement",target:r,on:n},t,e,i)},function(t,e,r){return Object.assign({variant:q(t),format:q(r)},e)},function(t){return{unique:!0}},S("ON Clause"),function(t,e,r){return{type:"identifier",variant:"expression",format:"table",name:e["name"],columns:r}},S("CREATE TRIGGER Statement"),function(t,e,r,n,i,o,a,s){return Object.assign({type:"statement",target:r,on:i,event:n,by:O(o)?o:"row",action:I(s)},t,e,a)},function(t,e,r){return Object.assign({variant:q(t),format:q(r)},e)},S("Conditional Clause"),function(t,e){return Object.assign({type:"event"},t,e)},function(t){return{occurs:q(t)}},function(t,e){return L([t,e])},S("Conditional Action"),function(t){return{event:q(t)}},function(t,e){return{event:q(t),of:e}},function(t,e){return e},"statement",w("STATEMENT",!0),function(t,e,r){return q(r)},function(t,e){return{when:e}},S("Actions Clause"),function(t,e,r){return e},function(t){return t},S("CREATE VIEW Statement"),function(t,e,r,n){return Object.assign({type:"statement",target:r,result:n},t,e)},function(t,e){return Object.assign({type:"identifier",variant:"expression",format:"view",name:t["name"],columns:[]},e)},function(t,e,r){return Object.assign({variant:q(t),format:q(r)},e)},S("CREATE VIRTUAL TABLE Statement"),function(t,e,r,n){return Object.assign({type:"statement",target:r,result:n},t,e)},function(t,e,r){return{variant:q(t),format:q(e)}},function(t,e){return Object.assign({type:"module",variant:"virtual",name:t},e)},S("Module Arguments"),function(t){return{args:{type:"expression",variant:"list",expression:O(t)?t:[]}}},function(t,e){return N([t,e]).filter((function(t){return O(t)}))},function(t){return t},S("DROP Statement"),function(t,e){return Object.assign({type:"statement",target:Object.assign(e,{variant:t["format"]})},t)},S("DROP Keyword"),function(t,e,r){return Object.assign({variant:q(t),format:e,condition:[]},r)},S("DROP Type"),S("IF EXISTS Keyword"),function(t,e){return{condition:[{type:"condition",variant:q(t),condition:{type:"expression",variant:q(e),operator:q(e)}}]}},S("Or"),S("Add"),S("Subtract"),S("Multiply"),S("Divide"),S("Modulo"),S("Shift Left"),S("Shift Right"),S("Logical AND"),S("Logical OR"),S("Less Than"),S("Greater Than"),S("Less Than Or Equal"),S("Greater Than Or Equal"),S("Equal"),S("Not Equal"),S("IS"),function(t,e){return L([t,e])},S("Identifier"),S("Database Identifier"),function(t){return{type:"identifier",variant:"database",name:t}},S("Function Identifier"),function(t,e){return{type:"identifier",variant:"function",name:B([t,e])}},S("Table Identifier"),function(t,e){return{type:"identifier",variant:"table",name:B([t,e])}},function(t,e){return B([t,e])},S("Column Identifier"),function(t,e){return{type:"identifier",variant:"column",name:B([t,e])}},function(){return""},function(t,e){return B([t,e])},S("Collation Identifier"),function(t){return{type:"identifier",variant:"collation",name:t}},S("Savepoint Identifier"),function(t){return{type:"identifier",variant:"savepoint",name:t}},S("Index Identifier"),function(t,e){return{type:"identifier",variant:"index",name:B([t,e])}},S("Trigger Identifier"),function(t,e){return{type:"identifier",variant:"trigger",name:B([t,e])}},S("View Identifier"),function(t,e){return{type:"identifier",variant:"view",name:B([t,e])}},S("Pragma Identifier"),function(t,e){return{type:"identifier",variant:"pragma",name:B([t,e])}},S("CTE Identifier"),function(t){return t},function(t,e){return Object.assign({type:"identifier",variant:"expression",format:"table",name:t["name"],columns:[]},e)},S("Table Constraint Identifier"),function(t){return{type:"identifier",variant:"constraint",format:"table",name:t}},S("Column Constraint Identifier"),function(t){return{type:"identifier",variant:"constraint",format:"column",name:t}},S("Datatype Name"),function(t){return[t,"text"]},function(t){return[t,"real"]},function(t){return[t,"numeric"]},function(t){return[t,"integer"]},function(t){return[t,"none"]},S("TEXT Datatype Name"),"n",w("N",!0),"var",w("VAR",!0),"char",w("CHAR",!0),"tiny",w("TINY",!0),"medium",w("MEDIUM",!0),"long",w("LONG",!0),"text",w("TEXT",!0),"clob",w("CLOB",!0),S("REAL Datatype Name"),"float",w("FLOAT",!0),"real",w("REAL",!0),S("DOUBLE Datatype Name"),"double",w("DOUBLE",!0),"precision",w("PRECISION",!0),function(t,e){return B([t,e])},S("NUMERIC Datatype Name"),"numeric",w("NUMERIC",!0),"decimal",w("DECIMAL",!0),"boolean",w("BOOLEAN",!0),"date",w("DATE",!0),"time",w("TIME",!0),"stamp",w("STAMP",!0),"string",w("STRING",!0),S("INTEGER Datatype Name"),"int",w("INT",!0),"2",w("2",!1),"4",w("4",!1),"8",w("8",!1),"eger",w("EGER",!0),"big",w("BIG",!0),"small",w("SMALL",!0),"floating",w("FLOATING",!0),"point",w("POINT",!0),function(t,e){return B([t,e])},S("BLOB Datatype Name"),"blob",w("BLOB",!0),/^[a-z0-9$_]/i,M([["a","z"],["0","9"],"$","_"],!1,!0),"\\u",w("\\u",!1),/^[a-f0-9]/i,M([["a","f"],["0","9"]],!1,!0),function(t,e){return B([t,e]).toLowerCase()},function(t){return q(t)},_(),function(t){return j(t)},/^[ \t]/,M([" ","\t"],!1,!1),'"',w('"',!1),'""',w('""',!1),/^[^"]/,M(['"'],!0,!1),function(t){return P(t,'"')},"'",w("'",!1),function(t){return P(t,"'")},"`",w("`",!1),"``",w("``",!1),/^[^`]/,M(["`"],!0,!1),function(t){return P(t,"`")},S("Open Bracket"),"[",w("[",!1),S("Close Bracket"),"]",w("]",!1),S("Open Parenthesis"),"(",w("(",!1),S("Close Parenthesis"),")",w(")",!1),S("Comma"),",",w(",",!1),S("Period"),".",w(".",!1),S("Asterisk"),"*",w("*",!1),S("Question Mark"),"?",w("?",!1),S("Single Quote"),S("Double Quote"),S("Backtick"),S("Tilde"),"~",w("~",!1),S("Plus"),"+",w("+",!1),S("Minus"),"-",w("-",!1),"=",w("=",!1),S("Ampersand"),"&",w("&",!1),S("Pipe"),"|",w("|",!1),"%",w("%",!1),"<",w("<",!1),">",w(">",!1),S("Exclamation"),"!",w("!",!1),S("Semicolon"),";",w(";",!1),S("Colon"),S("Forward Slash"),"/",w("/",!1),S("Backslash"),"\\",w("\\",!1),"abort",w("ABORT",!0),"action",w("ACTION",!0),"add",w("ADD",!0),"after",w("AFTER",!0),"all",w("ALL",!0),"alter",w("ALTER",!0),"analyze",w("ANALYZE",!0),"and",w("AND",!0),"as",w("AS",!0),"asc",w("ASC",!0),"attach",w("ATTACH",!0),"autoincrement",w("AUTOINCREMENT",!0),"before",w("BEFORE",!0),"begin",w("BEGIN",!0),"between",w("BETWEEN",!0),"by",w("BY",!0),"cascade",w("CASCADE",!0),"case",w("CASE",!0),"cast",w("CAST",!0),"check",w("CHECK",!0),"collate",w("COLLATE",!0),"column",w("COLUMN",!0),"commit",w("COMMIT",!0),"conflict",w("CONFLICT",!0),"constraint",w("CONSTRAINT",!0),"create",w("CREATE",!0),"cross",w("CROSS",!0),"current_date",w("CURRENT_DATE",!0),"current_time",w("CURRENT_TIME",!0),"current_timestamp",w("CURRENT_TIMESTAMP",!0),"database",w("DATABASE",!0),"default",w("DEFAULT",!0),"deferrable",w("DEFERRABLE",!0),"deferred",w("DEFERRED",!0),"delete",w("DELETE",!0),"desc",w("DESC",!0),"detach",w("DETACH",!0),"distinct",w("DISTINCT",!0),"drop",w("DROP",!0),"each",w("EACH",!0),"else",w("ELSE",!0),"end",w("END",!0),"escape",w("ESCAPE",!0),"except",w("EXCEPT",!0),"exclusive",w("EXCLUSIVE",!0),"exists",w("EXISTS",!0),"explain",w("EXPLAIN",!0),"fail",w("FAIL",!0),"for",w("FOR",!0),"foreign",w("FOREIGN",!0),"from",w("FROM",!0),"full",w("FULL",!0),"glob",w("GLOB",!0),"group",w("GROUP",!0),"having",w("HAVING",!0),"if",w("IF",!0),"ignore",w("IGNORE",!0),"immediate",w("IMMEDIATE",!0),"in",w("IN",!0),"index",w("INDEX",!0),"indexed",w("INDEXED",!0),"initially",w("INITIALLY",!0),"inner",w("INNER",!0),"insert",w("INSERT",!0),"instead",w("INSTEAD",!0),"intersect",w("INTERSECT",!0),"into",w("INTO",!0),"is",w("IS",!0),"isnull",w("ISNULL",!0),"join",w("JOIN",!0),"key",w("KEY",!0),"left",w("LEFT",!0),"like",w("LIKE",!0),"limit",w("LIMIT",!0),"match",w("MATCH",!0),"natural",w("NATURAL",!0),"no",w("NO",!0),"not",w("NOT",!0),"notnull",w("NOTNULL",!0),"of",w("OF",!0),"offset",w("OFFSET",!0),"on",w("ON",!0),"or",w("OR",!0),"order",w("ORDER",!0),"outer",w("OUTER",!0),"plan",w("PLAN",!0),"pragma",w("PRAGMA",!0),"primary",w("PRIMARY",!0),"query",w("QUERY",!0),"raise",w("RAISE",!0),"recursive",w("RECURSIVE",!0),"references",w("REFERENCES",!0),"regexp",w("REGEXP",!0),"reindex",w("REINDEX",!0),"release",w("RELEASE",!0),"rename",w("RENAME",!0),"replace",w("REPLACE",!0),"restrict",w("RESTRICT",!0),"right",w("RIGHT",!0),"rollback",w("ROLLBACK",!0),"row",w("ROW",!0),"rowid",w("ROWID",!0),"savepoint",w("SAVEPOINT",!0),"select",w("SELECT",!0),"set",w("SET",!0),"table",w("TABLE",!0),"temp",w("TEMP",!0),"temporary",w("TEMPORARY",!0),"then",w("THEN",!0),"to",w("TO",!0),"transaction",w("TRANSACTION",!0),"trigger",w("TRIGGER",!0),"union",w("UNION",!0),"unique",w("UNIQUE",!0),"update",w("UPDATE",!0),"using",w("USING",!0),"vacuum",w("VACUUM",!0),"values",w("VALUES",!0),"view",w("VIEW",!0),"virtual",w("VIRTUAL",!0),"when",w("WHEN",!0),"where",w("WHERE",!0),"with",w("WITH",!0),"without",w("WITHOUT",!0),function(t){return q(t)},function(){return null},S("Line Comment"),"--",w("--",!1),/^[\n\v\f\r]/,M(["\n","\v","\f","\r"],!1,!1),S("Block Comment"),"/*",w("/*",!1),"*/",w("*/",!1),/^[\n\v\f\r\t ]/,M(["\n","\v","\f","\r","\t"," "],!1,!1),S("Whitespace"),"__TODO__",w("__TODO__",!1)],f=[$("%;ȿ/H#;#/?$;\".\" &\"/1$;#/($8$: $!!)($'#(#'#(\"'#&'#"),$("%;ȿ/C#;#/:$;x/1$;#/($8$: $!!)($'#(#'#(\"'#&'#"),$("%;x/B#;ȿ/9$$;%0#*;%&/)$8#:!#\"\" )(#'#(\"'#&'#"),$("$;Ƴ0#*;Ƴ&"),$("$;Ƴ/�#*;Ƴ&&&#"),$("%;$/:#;x/1$;ȿ/($8#:\"#!!)(#'#(\"'#&'#"),$('<%;\'.# &;(/@#;ȿ/7$;*." &"/)$8#:$#"" )(#\'#("\'#&\'#=." 7#'),$("%;Ƌ/' 8!:%!! )"),$('<%;ƕ/9#$;)0#*;)&/)$8":\'""! )("\'#&\'#=." 7&'),$('%4(""5!7)/1#;Ɨ/($8":*"! )("\'#&\'#'),$("<%;Ơ/R#;5/I$;ȿ/@$;+.\" &\"/2$;ơ/)$8%:,%\"#!)(%'#($'#(#'#(\"'#&'#=.\" 7+"),$("%;Ƣ/C#;ȿ/:$;5/1$;ȿ/($8$:-$!!)($'#(#'#(\"'#&'#"),$(";5.; &;6.5 &;2./ &;-.) &;..# &;/"),$('<%;Ȇ/1#;ȿ/($8":/"!!)("\'#&\'#=." 7.'),$('<%;ǒ.) &;ǔ.# &;Ǔ/1#;ȿ/($8":1"!!)("\'#&\'#=." 70'),$('<%;4." &"/2#;0/)$8":3""! )("\'#&\'#=." 72'),$("<%;Ʀ/A#$;10#*;1&/1$;Ʀ/($8#:5#!!)(#'#(\"'#&'#=.\" 74"),$('26""6677.) &48""5!79'),$('<%4;""5!7!! )"),$('<%;ƪ.# &;ƫ/\' 8!:"!! )=." 7?'),$('%;4." &"/2#;6/)$8":@""! )("\'#&\'#'),$(";<.# &;7"),$('%;8/7#;;." &"/)$8":A""! )("\'#&\'#'),$('<;9.# &;:=." 7B'),$('%$;>/�#*;>&&&#/7#;:." &"/)$8":C""! )("\'#&\'#'),$('%;ƣ/9#$;>0#*;>&/)$8":D""! )("\'#&\'#'),$('<%3F""5!7G/T#4H""5!7I." &"/@$$;>/�#*;>&&&#/*$8#:J##"! )(#\'#("\'#&\'#=." 7E'),$('<%3L""5"7M/?#$;=/�#*;=&&&#/)$8":N""! )("\'#&\'#=." 7K'),$('4O""5!7P'),$('4Q""5!7R'),$("<%;@.) &;B.# &;C/' 8!:T!! )=.\" 7S"),$('<%;ƥ/@#;A." &"/2$;ȿ/)$8#:V#""!)(#\'#("\'#&\'#=." 7U'),$('%4W""5!7X/9#$;>0#*;>&/)$8":Y""! )("\'#&\'#'),$('<%4[""5!7\\/H#$;Ɠ/�#*;Ɠ&&&#/2$;ȿ/)$8#:]#""!)(#\'#("\'#&\'#=." 7Z'),$('<%2_""6_7`/o#$;Ɠ.) &2a""6a7b/2#0/*;Ɠ.) &2a""6a7b&&&#/A$;ȿ/8$;D." &"/*$8$:c$##" )($\'#(#\'#("\'#&\'#=." 7^'),$('%;ƛ/1#;ȿ/($8":d"!!)("\'#&\'#'),$('<%;F." &"/;#;ȿ/2$;”/)$8#:f#"" )(#\'#("\'#&\'#=." 7e'),$('<%;k." &"/;#;Ǥ/2$;ȿ/)$8#:h#""!)(#\'#("\'#&\'#=." 7g'),$("<%;ȑ/_#;ȿ/V$;Ơ/M$;ȿ/D$;H/;$;ȿ/2$;ơ/)$8':j'\"&\")(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7i"),$("<%;I.# &;J/' 8!:l!! )=.\" 7k"),$("<%;ǯ/' 8!:n!! )=.\" 7m"),$("%;ț.) &;Ʒ.# &;Ǧ/M#;ȿ/D$;Ƣ/;$;ȿ/2$;w/)$8%:o%\"$ )(%'#($'#(#'#(\"'#&'#"),$(";?./ &;t.) &;,.# &;Ž"),$("%;Ơ/L#;ȿ/C$;p/:$;ȿ/1$;ơ/($8%:p%!\")(%'#($'#(#'#(\"'#&'#"),$(";L.; &;E.5 &;_./ &;a.) &;G.# &;K"),$("%;M/;#;ȿ/2$;Q/)$8#:q#\"\" )(#'#(\"'#&'#.# &;M"),$("%;P/A#;ȿ/8$;N.# &;p/)$8#:r#\"\" )(#'#(\"'#&'#.# &;N"),$(";Ʃ.U &;ƫ.O &;ƪ.I &%%;k/8#%<;Ǥ=.##&&!&'#/#$+\")(\"'#&'#/\"!&,)"),$("<%;ĭ/' 8!:t!! )=.\" 7s"),$("%;O/ƒ#$%;ȿ/>#;Ŧ/5$;ȿ/,$;O/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;Ŧ/5$;ȿ/,$;O/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$("%;R/ƒ#$%;ȿ/>#;T/5$;ȿ/,$;R/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;T/5$;ȿ/,$;R/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$(";ũ.) &;Ū.# &;ū"),$("%;S/ƒ#$%;ȿ/>#;V/5$;ȿ/,$;S/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;V/5$;ȿ/,$;S/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$(";ŧ.# &;Ũ"),$("%;U/ƒ#$%;ȿ/>#;X/5$;ȿ/,$;U/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;X/5$;ȿ/,$;U/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$(";Ŭ.U &;ŭ.O &;Ů.I &%%;ů/8#%<;ů=.##&&!&'#/#$+\")(\"'#&'#/\"!&,)"),$("%;W/ƒ#$%;ȿ/>#;Z/5$;ȿ/,$;W/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;Z/5$;ȿ/,$;W/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$(";Ų.{ &;ų.u &%%;Ű/8#%<;X=.##&&!&'#/#$+\")(\"'#&'#/\"!&,).I &%%;ű/8#%<;X=.##&&!&'#/#$+\")(\"'#&'#/\"!&,)"),$('%;Y/9#$;\\0#*;\\&/)$8":u""! )("\'#&\'#'),$("%;ȿ/1#;]/($8\":v\"! )(\"'#&'#.H &%;ȿ/>#;^/5$;ȿ/,$;Y/#$+$)($'#(#'#(\"'#&'#"),$('%3w""5$7x/?#;ȿ/6$3y""5$7z/\'$8#:{# )(#\'#("\'#&\'#.? &%;ǻ/& 8!:|! ).. &%;ȅ/& 8!:{! )'),$(";ŷ./ &;ŵ.) &;Ŷ.# &;Ŵ"),$("<%;lj/i#;ȿ/`$;Ơ/W$;p/N$;ȿ/E$;`/<$;ȿ/3$;ơ/*$8(:~(#'$\")(('#(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7}"),$("<%;ƿ/:#;ȿ/1$;&/($8#:€#! )(#'#(\"'#&'#=.\" 7"),$("<%;Lj/“#;ȿ/Š$;b.\" &\"/|$;ȿ/s$$;c/�#*;c&&&#/]$;ȿ/T$;d.\" &\"/F$;ȿ/=$;Ǡ/4$;ȿ/+$8*:‚*$)'%#)(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7"),$("%%<;Ȱ=.##&&!&'#/1#;p/($8\":ƒ\"! )(\"'#&'#"),$("<%;Ȱ/i#;ȿ/`$;p/W$;ȿ/N$;Ȥ/E$;ȿ/<$;p/3$;ȿ/*$8(:…(#'%!)(('#(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7„"),$("<%;ǟ/D#;ȿ/;$;p/2$;ȿ/)$8$:‡$\"#!)($'#(#'#(\"'#&'#=.\" 7†"),$("%;[/;#;ȿ/2$;f/)$8#:ˆ#\"\" )(#'#(\"'#&'#.# &;["),$(";l.) &;i.# &;g"),$('<%;k." &"/o#;ǿ./ &;ǫ.) &;Ȕ.# &;ȁ/T$;ȿ/K$;p/B$;ȿ/9$;h." &"/+$8&:Š&$%$" )(&\'#(%\'#($\'#(#\'#("\'#&\'#=." 7‰'),$("<%;ǡ/D#;ȿ/;$;p/2$;ȿ/)$8$:Œ$\"#!)($'#(#'#(\"'#&'#=.\" 7‹"),$('<%;k." &"/E#;Dž/<$;ȿ/3$;j/*$8$:Ž$##" )($\'#(#\'#("\'#&\'#=." 7'),$("%;e/W#%;ȿ/>#;ƾ/5$;ȿ/,$;e/#$+$)($'#(#'#(\"'#&'#/)$8\":\"\"! )(\"'#&'#"),$('%;Ȅ/1#;ȿ/($8":"!!)("\'#&\'#'),$('<%;k." &"/E#;DZ/<$;ȿ/3$;m/*$8$:’$##" )($\'#(#\'#("\'#&\'#=." 7‘'),$(";n.# &;Ż"),$("%;Ơ/I#;•.# &;q/:$;ȿ/1$;ơ/($8$:“$!\")($'#(#'#(\"'#&'#"),$("%;e/ƒ#$%;ȿ/>#;ƾ/5$;ȿ/,$;e/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;ƾ/5$;ȿ/,$;e/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$("%;o/ƒ#$%;ȿ/>#;Ȋ/5$;ȿ/,$;o/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;Ȋ/5$;ȿ/,$;o/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$('<%;r." &"/1#;ȿ/($8":•"!!)("\'#&\'#=." 7”'),$("%;p/B#;ȿ/9$$;s0#*;s&/)$8#:–#\"\" )(#'#(\"'#&'#"),$("%;Ƣ/:#;p/1$;ȿ/($8#:“#!!)(#'#(\"'#&'#"),$("<%;ź/[#;ȿ/R$;Ơ/I$;u.\" &\"/;$;ȿ/2$;ơ/)$8&:˜&\"%\")(&'#(%'#($'#(#'#(\"'#&'#=.\" 7—"),$('<%;Û/\' 8!:š!! ).V &%;v." &"/G#;q/>$9:› "! -""&!&#/)$8#:œ#""!)(#\'#("\'#&\'#=." 7™'),$('%;ǜ.# &;ƻ/1#;ȿ/($8":"!!)("\'#&\'#'),$("<%;//' 8!:Ÿ!! )=.\" 7ž"),$('<%;y." &"/;#;{/2$;ȿ/)$8#:¡#""!)(#\'#("\'#&\'#=." 7 '),$('<%;ǥ/@#;ȿ/7$;z." &"/)$8#:£#"" )(#\'#("\'#&\'#=." 7¢'),$("<%;Ȑ/D#;ȿ/;$;ȍ/2$;ȿ/)$8$:¥$\"#!)($'#(#'#(\"'#&'#=.\" 7¤"),$(";Œ.S &;û.M &;Ţ.G &;}.A &;|.; &;†.5 &;€./ &;„.) &;….# &;–"),$('<%;Ǎ.# &;Ǡ/@#;ȿ/7$;~." &"/)$8#:§#"" )(#\'#("\'#&\'#=." 7¦'),$('<%;DŽ/^#;ȿ/U$;." &"/G$;~." &"/9$;‚." &"/+$8%:©%$$"! )(%\'#($\'#(#\'#("\'#&\'#=." 7¨'),$('%;Ȧ/1#;ȿ/($8":ª"!!)("\'#&\'#'),$('%;ǘ.) &;ǰ.# &;ǣ/1#;ȿ/($8":«"!!)("\'#&\'#'),$('<%;ț/N#;ȿ/E$;~." &"/7$;." &"/)$8$:­$"# )($\'#(#\'#("\'#&\'#=." 7¬'),$('<%%;ȥ/,#;ȿ/#$+")("\'#&\'#." &"/?#;ƒ." &"/1$;‚/($8#:p#! )(#\'#("\'#&\'#=." 7®'),$('%;Ƃ/1#;ȿ/($8":¯"!!)("\'#&\'#'),$('%;Ȟ/1#;ȿ/($8":°"!!)("\'#&\'#'),$('<%;ƒ/2#;‚/)$8":²""! )("\'#&\'#=." 7±'),$("<%;Ȗ/J#;ȿ/A$;ƒ.\" &\"/3$;‚/*$8$:´$##! )($'#(#'#(\"'#&'#=.\" 7³"),$("<%;‡/N#;Ż/E$;ȿ/<$;ˆ/3$;ȿ/*$8%:¶%#$#!)(%'#($'#(#'#(\"'#&'#=.\" 7µ"),$("<%;Ƽ/D#;ȿ/;$;ȡ/2$;ȿ/)$8$:¸$\"#!)($'#(#'#(\"'#&'#=.\" 7·"),$(";‰.# &;Š"),$("<%;ȗ/M#;ȿ/D$;ȥ/;$;ȿ/2$;Ż/)$8%:º%\"$ )(%'#($'#(#'#(\"'#&'#=.\" 7¹"),$('<%;ƹ/I#;ȿ/@$;‹." &"/2$;Č/)$8$:¼$"# )($\'#(#\'#("\'#&\'#=." 7»'),$('%;nj/1#;ȿ/($8":°"!!)("\'#&\'#'),$('%;/2#;§/)$8":½""! )("\'#&\'#'),$('<%;Ž." &"/1#;ȿ/($8":*"!!)("\'#&\'#=." 7¾'),$("%;Ȳ/J#;ȿ/A$;.\" &\"/3$;/*$8$:¿$##! )($'#(#'#(\"'#&'#"),$('%;Ȓ/1#;ȿ/($8":°"!!)("\'#&\'#'),$("%;’/B#;ȿ/9$$;‘0#*;‘&/)$8#:À#\"\" )(#'#(\"'#&'#"),$("%;Ƣ/:#;’/1$;ȿ/($8#:“#!!)(#'#(\"'#&'#"),$('<%;Ƈ/2#;“/)$8":Â""! )("\'#&\'#=." 7Á'),$("%;ƿ/:#;ȿ/1$;”/($8#:Ã#! )(#'#(\"'#&'#"),$("%;Ơ/C#;•/:$;ȿ/1$;ơ/($8$: $!\")($'#(#'#(\"'#&'#"),$('%;/2#;¨/)$8":Ä""! )("\'#&\'#'),$(";—.; &;™.5 &;š./ &;œ.) &;ž.# &; "),$("<%;ǁ/‹#;ȿ/‚$%;Ǖ/,#;ȿ/#$+\")(\"'#&'#.\" &\"/a$;p/X$;ȿ/O$;ƿ/F$;ȿ/=$;˜/4$;ȿ/+$8):Æ)$(&%!)()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7Å"),$(";Ź.) &;-.# &;?"),$("<%;Ǜ/f#;ȿ/]$%;Ǖ/,#;ȿ/#$+\")(\"'#&'#.\" &\"/<$;˜/3$;ȿ/*$8%:È%#$\"!)(%'#($'#(#'#(\"'#&'#=.\" 7Ç"),$('<%;Ȭ/@#;ȿ/7$;›." &"/)$8#:Ê#"" )(#\'#("\'#&\'#=." 7É'),$('%;Ź/1#;ȿ/($8":Ë"!!)("\'#&\'#'),$('<%;ƽ/@#;ȿ/7$;." &"/)$8#:Í#"" )(#\'#("\'#&\'#=." 7Ì'),$('%;Ż.) &;ƃ.# &;Ź/1#;ȿ/($8":Î"!!)("\'#&\'#'),$('<%;ȕ/I#;ȿ/@$;Ÿ." &"/2$;ȿ/)$8$:Í$"#!)($\'#(#\'#("\'#&\'#=." 7Ï'),$('%;Ż.) &;ƃ.# &;Ɓ/1#;ȿ/($8":Ð"!!)("\'#&\'#'),$("<%;Ȏ/S#;ȿ/J$;Ɔ/A$;ȿ/8$;¡.\" &\"/*$8%:Ò%#$\" )(%'#($'#(#'#(\"'#&'#=.\" 7Ñ"),$("%;Ơ/C#;¢/:$;ȿ/1$;ơ/($8$:Ó$!\")($'#(#'#(\"'#&'#.D &%;Ƭ/:#;¢/1$;ȿ/($8#:Ó#!!)(#'#(\"'#&'#"),$(";¤.) &;£.# &;¦"),$(";5.) &;/.# &;3"),$('%;¥/<#9:Ô ! -""&!&#/($8":Õ"!!)("\'#&\'#'),$("%$;Ɠ/�#*;Ɠ&&&#/' 8!:Ö!! )"),$("%;¥/' 8!:×!! )"),$(";¨./ &;Ý.) &;ò.# &;ù"),$('<%;®/X#;ȿ/O$;©." &"/A$;ȿ/8$;ª." &"/*$8%:Ù%#$" )(%\'#($\'#(#\'#("\'#&\'#=." 7Ø'),$("<%;ȋ/L#;ȿ/C$;dž/:$;ȿ/1$;Ø/($8%:Û%! )(%'#($'#(#'#(\"'#&'#=.\" 7Ú"),$("<%;Ȁ/S#;ȿ/J$;p/A$;ȿ/8$;«.\" &\"/*$8%:Ý%#$\" )(%'#($'#(#'#(\"'#&'#=.\" 7Ü"),$('<%;¬/2#;p/)$8":ß""! )("\'#&\'#=." 7Þ'),$(";­.# &;Ƣ"),$('%;Ȉ/1#;ȿ/($8":°"!!)("\'#&\'#'),$("%;°/B#;ȿ/9$$;¯0#*;¯&/)$8#:à#\"\" )(#'#(\"'#&'#"),$("<%;ï/D#;ȿ/;$;°/2$;ȿ/)$8$:â$\"#!)($'#(#'#(\"'#&'#=.\" 7á"),$(";±.# &;×"),$('%;²/U#;¸." &"/G$;¹." &"/9$;º." &"/+$8$:ã$$#"! )($\'#(#\'#("\'#&\'#'),$('<%;ȟ/R#;ȿ/I$;³." &"/;$;ȿ/2$;¶/)$8%:å%"" )(%\'#($\'#(#\'#("\'#&\'#=." 7ä'),$('<;´.# &;µ=." 7æ'),$('%;ǜ/1#;ȿ/($8":ç"!!)("\'#&\'#'),$('%;ƻ/1#;ȿ/($8":è"!!)("\'#&\'#'),$("%;¼/B#;ȿ/9$$;·0#*;·&/)$8#:À#\"\" )(#'#(\"'#&'#"),$("%;Ƣ/:#;¼/1$;ȿ/($8#:-#!!)(#'#(\"'#&'#"),$("<%;ǩ/D#;ȿ/;$;À/2$;ȿ/)$8$:ê$\"#!)($'#(#'#(\"'#&'#=.\" 7é"),$("<%;ȱ/D#;ȿ/;$;p/2$;ȿ/)$8$:ì$\"#!)($'#(#'#(\"'#&'#=.\" 7ë"),$("<%;Ǭ/e#;ȿ/\\$;dž/S$;ȿ/J$;q/A$;ȿ/8$;».\" &\"/*$8':î'#&\" )(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7í"),$("<%;ǭ/D#;ȿ/;$;p/2$;ȿ/)$8$:ð$\"#!)($'#(#'#(\"'#&'#=.\" 7ï"),$(";½.# &;¿"),$('%;¾." &"/2#;Û/)$8":ñ""! )("\'#&\'#'),$('%;ƕ/2#;ƣ/)$8":ò""! )("\'#&\'#'),$('%;p/@#;ȿ/7$;Í." &"/)$8#:ó#"" )(#\'#("\'#&\'#'),$("%;Ä/B#;ȿ/9$$;Á0#*;Á&/)$8#:ô#\"\" )(#'#(\"'#&'#"),$('%;Â.# &;Ã/7#;Ô." &"/)$8":õ""! )("\'#&\'#'),$("<%;Ƣ/:#;Ä/1$;ȿ/($8#:÷#!!)(#'#(\"'#&'#=.\" 7ö"),$("<%;Î/D#;ȿ/;$;Ä/2$;ȿ/)$8$:ù$\"#!)($'#(#'#(\"'#&'#=.\" 7ø"),$(";Ë.5 &;?./ &;Å.) &;Æ.# &;Ì"),$("%;ź/S#;ȿ/J$;í/A$;ȿ/8$;Í.\" &\"/*$8%:ú%#$\" )(%'#($'#(#'#(\"'#&'#"),$('<%;Ç/@#;ȿ/7$;È." &"/)$8#:ü#"" )(#\'#("\'#&\'#=." 7û'),$('<%;Ż/@#;ȿ/7$;Í." &"/)$8#:þ#"" )(#\'#("\'#&\'#=." 7ý'),$('<;É.# &;Ê=." 7ÿ'),$("%;dz/V#;ȿ/M$;dž/D$;ȿ/;$;ƃ/2$;ȿ/)$8&:Ā&\"%!)(&'#(%'#($'#(#'#(\"'#&'#"),$("%;k/;#;dz/2$;ȿ/)$8#:ā#\"\"!)(#'#(\"'#&'#"),$("<%;Ơ/R#;À/I$;ȿ/@$;ơ/7$;Í.\" &\"/)$8%:ă%\"# )(%'#($'#(#'#(\"'#&'#=.\" 7Ă"),$('<%;”/7#;Í." &"/)$8":ą""! )("\'#&\'#=." 7Ą'),$('<%%;ƿ/Q#%%<;Ɠ.# &;ȶ=.##&&!&\'#/,#;ȿ/#$+")("\'#&\'#/#$+")("\'#&\'#." &"/;#;ƕ/2$;ȿ/)$8#:ć#""!)(#\'#("\'#&\'#=." 7Ć'),$('<%;Ï." &"/J#;ȿ/A$;Ð." &"/3$;Ǽ/*$8$:ĉ$##! )($\'#(#\'#("\'#&\'#=." 7Ĉ'),$('%;Ȃ/1#;ȿ/($8":"!!)("\'#&\'#'),$(";Ñ.# &;Ó"),$('%;Ǿ.) &;Ț.# &;Ǫ/@#;ȿ/7$;Ò." &"/)$8#:Ċ#"" )(#\'#("\'#&\'#'),$('%;Ȍ/1#;ȿ/($8":ċ"!!)("\'#&\'#'),$('%;ǵ.# &;Ǒ/1#;ȿ/($8":ċ"!!)("\'#&\'#'),$('<%;Õ.# &;Ö/1#;ȿ/($8":č"!!)("\'#&\'#=." 7Č'),$('<%;ȉ/;#;ȿ/2$;p/)$8#:ď#"" )(#\'#("\'#&\'#=." 7Ď'),$('<%;ȫ/;#;ȿ/2$;æ/)$8#:đ#"" )(#\'#("\'#&\'#=." 7Đ'),$('<%;ȭ/;#;ȿ/2$;ë/)$8#:ē#"" )(#\'#("\'#&\'#=." 7Ē'),$("%;Ú/B#;ȿ/9$$;Ù0#*;Ù&/)$8#:Ĕ#\"\" )(#'#(\"'#&'#"),$("%;Ƣ/:#;Ú/1$;ȿ/($8#:ĕ#!!)(#'#(\"'#&'#"),$('<%;p/@#;ȿ/7$;į." &"/)$8#:ė#"" )(#\'#("\'#&\'#=." 7Ė'),$('<;Ƥ=." 7Ę'),$('<;Ș.5 &;ț./ &;Ʒ.) &;Ǧ.# &;ǯ=." 7ę'),$('<%;Þ/;#;ȿ/2$;â/)$8#:ě#"" )(#\'#("\'#&\'#=." 7Ě'),$(";ß.# &;à"),$('<%;Ƕ/@#;ȿ/7$;á." &"/)$8#:ĝ#"" )(#\'#("\'#&\'#=." 7Ĝ'),$('<%;Ș/1#;ȿ/($8":ğ"!!)("\'#&\'#=." 7Ğ'),$('<%;Ȋ/;#;ȿ/2$;Ü/)$8#:ġ#"" )(#\'#("\'#&\'#=." 7Ġ'),$('%;ã/2#;å/)$8":Ģ""! )("\'#&\'#'),$('<%;ä/2#;Ƈ/)$8":Ĥ""! )("\'#&\'#=." 7ģ'),$('<%;ǹ/,#;ȿ/#$+")("\'#&\'#=." 7ĥ'),$('<%;é.) &;•.# &;î/1#;ȿ/($8":Ħ"!!)("\'#&\'#=." 7Ē'),$("<%;Ơ/T#;è/K$;ȿ/B$$;ç0#*;ç&/2$;ơ/)$8%:Ĩ%\"#!)(%'#($'#(#'#(\"'#&'#=.\" 7ħ"),$("%;Ƣ/:#;è/1$;ȿ/($8#:ĩ#!!)(#'#(\"'#&'#"),$("<%;Ÿ/' 8!:ī!! )=.\" 7Ī"),$('<%;ê/2#;ë/)$8":Ĭ""! )("\'#&\'#=." 7Ē'),$('<%;ȭ/1#;ȿ/($8":°"!!)("\'#&\'#=." 7ĭ'),$("%;í/B#;ȿ/9$$;ì0#*;ì&/)$8#:Į#\"\" )(#'#(\"'#&'#"),$("%;Ƣ/:#;í/1$;ȿ/($8#:“#!!)(#'#(\"'#&'#"),$("<%;Ơ/C#;q/:$;ȿ/1$;ơ/($8$:İ$!\")($'#(#'#(\"'#&'#=.\" 7į"),$('<%;ǖ/;#;ȿ/2$;ȭ/)$8#:IJ#"" )(#\'#("\'#&\'#=." 7ı'),$("<%;ð.) &;Ǹ.# &;Ǣ/' 8!:°!! )=.\" 7ij"),$('<%;Ȩ/@#;ȿ/7$;ñ." &"/)$8#:ĵ#"" )(#\'#("\'#&\'#=." 7Ĵ'),$('%;ƻ/1#;ȿ/($8":Ķ"!!)("\'#&\'#'),$("<%;ó/Š#;ô.\" &\"/|$;Æ/s$;ȿ/j$;õ/a$;¹.\" &\"/S$;©.\" &\"/E$;ȿ/<$;ª.\" &\"/.$8):ĸ)'('&$#\" )()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7ķ"),$('<%;Ȫ/1#;ȿ/($8":°"!!)("\'#&\'#=." 7Ĺ'),$("<%;Ȋ/C#;ȿ/:$;Ü/1$;ȿ/($8$:Ļ$!!)($'#(#'#(\"'#&'#=.\" 7ĺ"),$("<%;Ƞ/C#;ȿ/:$;ö/1$;ȿ/($8$:Ľ$!!)($'#(#'#(\"'#&'#=.\" 7ļ"),$('%;ø/9#$;÷0#*;÷&/)$8":Į""! )("\'#&\'#'),$("%;ȿ/:#;Ƣ/1$;ø/($8#:ĩ#! )(#'#(\"'#&'#"),$("<%;Ž/M#;ȿ/D$;Ƭ/;$;p/2$;ȿ/)$8%:Ŀ%\"$!)(%'#($'#(#'#(\"'#&'#=.\" 7ľ"),$('<%;ú/h#;Æ/_$;ȿ/V$;¹." &"/H$;©." &"/:$;ª." &"/,$8&:Ł&%%$"! )(&\'#(%\'#($\'#(#\'#("\'#&\'#=." 7ŀ'),$("<%;Ǚ/C#;ȿ/:$;ǩ/1$;ȿ/($8$:°$!#)($'#(#'#(\"'#&'#=.\" 7ł"),$('<;ý.5 &;þ./ &;ÿ.) &;Ā.# &;ā=." 7Ń'),$('%;ǐ/1#;ȿ/($8":°"!!)("\'#&\'#'),$("%%<%;ü/>#;Dz./ &;ȧ.) &;Ȯ.# &;ȯ/#$+\")(\"'#&'#=.##&&!&'#/1#;Ă/($8\":ĩ\"! )(\"'#&'#"),$("%%<%;ü/>#;ȡ./ &;ȧ.) &;Ȯ.# &;ȯ/#$+\")(\"'#&'#=.##&&!&'#/1#;Ń/($8\":ĩ\"! )(\"'#&'#"),$("%%<%;ü/>#;ȡ./ &;Dz.) &;Ȯ.# &;ȯ/#$+\")(\"'#&'#=.##&&!&'#/1#;Ň/($8\":ĩ\"! )(\"'#&'#"),$("%%<%;ü/>#;ȡ./ &;Dz.) &;ȧ.# &;ȯ/#$+\")(\"'#&'#=.##&&!&'#/1#;Ŗ/($8\":ĩ\"! )(\"'#&'#"),$("%%<%;ü/>#;ȡ./ &;Dz.) &;ȧ.# &;Ȯ/#$+\")(\"'#&'#=.##&&!&'#/1#;Ś/($8\":ĩ\"! )(\"'#&'#"),$("<%;ă/T#;ą.\" &\"/F$;Ż/=$;ȿ/4$;Ć/+$8%:Ņ%$$#\" )(%'#($'#(#'#(\"'#&'#=.\" 7ń"),$("%;ü/J#;Ą.\" &\"/<$;ȡ/3$;ȿ/*$8$:ņ$##\"!)($'#(#'#(\"'#&'#"),$('%;ȣ.# &;Ȣ/1#;ȿ/($8":Ň"!!)("\'#&\'#'),$("<%;Ǯ/N#;ȿ/E$;k/<$;Ǥ/3$;ȿ/*$8%:ʼn%#$\"!)(%'#($'#(#'#(\"'#&'#=.\" 7ň"),$(";ć.# &;ł"),$("<%;Ơ/Z#;ĉ/Q$$;ċ0#*;ċ&/A$;ơ/8$;Ĉ.\" &\"/*$8%:ŋ%##\" )(%'#($'#(#'#(\"'#&'#=.\" 7Ŋ"),$("%;ȳ/D#;ȿ/;$;ȝ/2$;ȿ/)$8$:Ō$\"#!)($'#(#'#(\"'#&'#"),$("%;Č/B#;ȿ/9$$;Ċ0#*;Ċ&/)$8#:Į#\"\" )(#'#(\"'#&'#"),$("%;Ƣ/:#;Č/1$;ȿ/($8#:ª#!!)(#'#(\"'#&'#"),$('%;Ƣ." &"/1#;Ġ/($8":ō"! )("\'#&\'#'),$('<%;č/O#;ȿ/F$;Ď." &"/8$;ď." &"/*$8$:ŏ$##! )($\'#(#\'#("\'#&\'#=." 7Ŏ'),$("%;ƕ/=#%<;ȿ=/##&'!&&#/($8\":p\"!!)(\"'#&'#.\\ &%%<;Ď.) &;đ.# &;Ġ=.##&&!&'#/:#;ȿ/1$;Ƙ/($8#:p#! )(#'#(\"'#&'#"),$('<%;&/1#;ȿ/($8":ő"!!)("\'#&\'#=." 7Ő'),$("%;đ/B#$;Đ0#*;Đ&/2$;ȿ/)$8#:Į#\"\"!)(#'#(\"'#&'#"),$('%;ȿ/1#;đ/($8":ĩ"! )("\'#&\'#'),$('<%;Ē." &"/A#;Ĕ/8$;Ē." &"/*$8#:œ##"! )(#\'#("\'#&\'#=." 7Œ'),$("%$;ē/�#*;ē&&&#/' 8!:Ŕ!! )"),$("<%;Ǐ/C#;ȿ/:$;ƕ/1$;ȿ/($8$:Ŗ$!!)($'#(#'#(\"'#&'#=.\" 7ŕ"),$(";Ė.; &;ę.5 &;Ĝ./ &;ĝ.) &;ğ.# &;ĕ"),$("<%;ĵ/' 8!:Ř!! )=.\" 7ŗ"),$('<%;ė/U#;į." &"/G$;İ." &"/9$;Ę." &"/+$8$:Ś$$#"! )($\'#(#\'#("\'#&\'#=." 7ř'),$("<%;ȏ.# &;Ȏ/D#;ȿ/;$;ǽ/2$;ȿ/)$8$:Ŝ$\"#!)($'#(#'#(\"'#&'#=.\" 7ś"),$('<%;ǂ/1#;ȿ/($8":Ş"!!)("\'#&\'#=." 7ŝ'),$('%;Ě/@#;İ." &"/2$;ȿ/)$8#:ş#""!)(#\'#("\'#&\'#'),$('<%;ě.# &;ȩ/1#;ȿ/($8":ċ"!!)("\'#&\'#=." 7Š'),$('<%;k." &"/2#;Ȇ/)$8":Ţ""! )("\'#&\'#=." 7š'),$('<;IJ=." 7ţ'),$("<%;ǖ/D#;ȿ/;$;Ğ/2$;ȿ/)$8$:ť$\"#!)($'#(#'#(\"'#&'#=.\" 7Ť"),$(";L./ &;5.) &;,.# &;3"),$("<%;ĭ/' 8!:ŧ!! )=.\" 7Ŧ"),$('<%;Ē." &"/J#;ġ/A$;ȿ/8$;Ē." &"/*$8$:ũ$##" )($\'#(#\'#("\'#&\'#=." 7Ũ'),$(";ij.) &;ģ.# &;Ģ"),$("<%;IJ/' 8!:ū!! )=.\" 7Ū"),$("<%;Ĥ/J#;ȿ/A$;ĩ/8$;İ.\" &\"/*$8$:ŭ$##! )($'#(#'#(\"'#&'#=.\" 7Ŭ"),$('%;ĥ.# &;Ħ/1#;ȿ/($8":Ů"!!)("\'#&\'#'),$('<%;ȏ/;#;ȿ/2$;ǽ/)$8#:ů#"" )(#\'#("\'#&\'#=." 7ś'),$("<%;ȩ/' 8!:ű!! )=.\" 7Ű"),$("%;Ơ/T#;ī/K$;ȿ/B$$;Ī0#*;Ī&/2$;ơ/)$8%:Ų%\"#!)(%'#($'#(#'#(\"'#&'#"),$("%;ħ/' 8!:ų!! )"),$("%;ħ/' 8!:Ŵ!! )"),$("%;Ƣ/:#;ī/1$;ȿ/($8#:ĩ#!!)(#'#(\"'#&'#"),$('<%;Ĭ/O#;ȿ/F$;į." &"/8$;Ę." &"/*$8$:Ŷ$##! )($\'#(#\'#("\'#&\'#=." 7ŵ'),$("%;è/\\#%<%;ȿ/8#;Ƴ.) &;ơ.# &;į/#$+\")(\"'#&'#=/##&'!&&#/($8\":p\"!!)(\"'#&'#.# &;p"),$("<%$;Į/�#*;Į&&&#/' 8!:Ÿ!! )=.\" 7ŷ"),$("%;Nj/C#;ȿ/:$;Ɓ/1$;ȿ/($8$:p$!!)($'#(#'#(\"'#&'#"),$('<%;ǀ.# &;ǚ/1#;ȿ/($8":ź"!!)("\'#&\'#=." 7Ź'),$("%;ı/;#;Ü/2$;ȿ/)$8#:Ż#\"\"!)(#'#(\"'#&'#"),$("<%;ȉ/D#;ȿ/;$;ǎ/2$;ȿ/)$8$:Ž$\"#!)($'#(#'#(\"'#&'#=.\" 7ż"),$("%;NJ/;#;ȿ/2$;L/)$8#:ž#\"\" )(#'#(\"'#&'#"),$("<%;Ĵ/E#;æ/<$;ĵ/3$;ȿ/*$8$:ƀ$##\"!)($'#(#'#(\"'#&'#=.\" 7ſ"),$("<%;Ǩ/D#;ȿ/;$;ǽ/2$;ȿ/)$8$:Ƃ$\"#!)($'#(#'#(\"'#&'#=.\" 7Ɓ"),$('%;Ķ/F#;ķ." &"/8$;ŀ." &"/*$8#:ƃ##"! )(#\'#("\'#&\'#'),$("<%;ȓ/D#;ȿ/;$;Ƈ/2$;ȿ/)$8$:ƅ$\"#!)($'#(#'#(\"'#&'#=.\" 7Ƅ"),$("%;Ĺ/B#;ȿ/9$$;ĸ0#*;ĸ&/)$8#:Ɔ#\"\" )(#'#(\"'#&'#"),$('%;Ĺ/1#;ȿ/($8":Ķ"!!)("\'#&\'#'),$('<;ĺ.# &;Ŀ=." 7Ƈ'),$("%;ȉ/T#;ȿ/K$;Ǚ.# &;Ȫ/<$;ȿ/3$;Ļ/*$8%:ƈ%#$\" )(%'#($'#(#'#(\"'#&'#"),$('<;ļ.) &;Ľ.# &;ľ=." 7Ɖ'),$("%;Ƞ/J#;ȿ/A$;Ȇ.# &;ǖ/2$;ȿ/)$8$:Ɗ$\"#!)($'#(#'#(\"'#&'#"),$('%;LJ.# &;ș/1#;ȿ/($8":Ƌ"!!)("\'#&\'#'),$("%;ȃ/D#;ȿ/;$;Ƹ/2$;ȿ/)$8$:ƌ$\"#!)($'#(#'#(\"'#&'#"),$("%;ȁ/D#;ȿ/;$;ƕ/2$;ȿ/)$8$:ƍ$\"#!)($'#(#'#(\"'#&'#"),$('<%;k." &"/J#;Ǘ/A$;ȿ/8$;Ł." &"/*$8$:Ə$##" )($\'#(#\'#("\'#&\'#=." 7Ǝ'),$("%;Ǵ/J#;ȿ/A$;ǘ.# &;ǰ/2$;ȿ/)$8$:Ɛ$\"#!)($'#(#'#(\"'#&'#"),$("%;ř/' 8!:Ƒ!! )"),$("<%;ń/c#;ą.\" &\"/U$;ƃ/L$;ȿ/C$;ņ/:$;¹.\" &\"/,$8&:Ɠ&%%$#! )(&'#(%'#($'#(#'#(\"'#&'#=.\" 7ƒ"),$("%;ü/J#;Ņ.\" &\"/<$;Dz/3$;ȿ/*$8$:Ɣ$##\"!)($'#(#'#(\"'#&'#"),$('%;ȩ/1#;ȿ/($8":ƕ"!!)("\'#&\'#'),$("<%;ȉ/N#;ȿ/E$;Ż/<$;ȿ/3$;Ĩ/*$8%:Ɨ%#$\" )(%'#($'#(#'#(\"'#&'#=.\" 7Ɩ"),$("<%;ň/¦#;ą.\" &\"/˜$;Ƅ.\" &\"/Š$;ȿ/$;ʼn/x$;ȉ/o$;ȿ/f$;Ż/]$;ȿ/T$;ő.\" &\"/F$;Œ.\" &\"/8$;œ//$8,:ƙ,(+*)'$\"! )(,'#(+'#(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7Ƙ"),$("%;ü/J#;Ą.\" &\"/<$;ȧ/3$;ȿ/*$8$:ƚ$##\"!)($'#(#'#(\"'#&'#"),$('<%;Ŋ." &"/2#;Ō/)$8":Ɯ""! )("\'#&\'#=." 7ƛ'),$('%;ǃ.) &;ƺ.# &;ŋ/1#;ȿ/($8":Ɲ"!!)("\'#&\'#'),$("%;Ƿ/;#;ȿ/2$;ȇ/)$8#:ƞ#\"\" )(#'#(\"'#&'#"),$('<;ō.# &;Ŏ=." 7Ɵ'),$('%;Ǚ.# &;Ƕ/1#;ȿ/($8":Ơ"!!)("\'#&\'#'),$('%;Ȫ/@#;ȿ/7$;ŏ." &"/)$8#:ơ#"" )(#\'#("\'#&\'#'),$("%;ȇ/;#;ȿ/2$;Ő/)$8#:Ƣ#\"\" )(#'#(\"'#&'#"),$("%;è/B#;ȿ/9$$;ç0#*;ç&/)$8#:Į#\"\" )(#'#(\"'#&'#"),$("%;ǧ/c#;ȿ/Z$;Ǟ/Q$;ȿ/H$;Ȝ.) &3ƣ\"\"5)7Ƥ/3$;ȿ/*$8&:ƥ&#%#!)(&'#(%'#($'#(#'#(\"'#&'#"),$("<%;Ȱ/D#;ȿ/;$;p/2$;ȿ/)$8$:Ʀ$\"#!)($'#(#'#(\"'#&'#=.\" 7„"),$("<%;DŽ/W#;ȿ/N$;Ŕ/E$;ȿ/<$;Ǡ/3$;ȿ/*$8&:ƨ&#%#!)(&'#(%'#($'#(#'#(\"'#&'#=.\" 7Ƨ"),$("%$;ŕ/�#*;ŕ&&&#/' 8!:Ʃ!! )"),$("%;Œ/:#;ȿ/1$;$/($8#:\"#!\")(#'#(\"'#&'#"),$("<%;Ř/T#;ą.\" &\"/F$;ŗ/=$;ȿ/4$;ř/+$8%:ƫ%$$#\" )(%'#($'#(#'#(\"'#&'#=.\" 7ƪ"),$("%;ƅ/;#;ȿ/2$;æ/)$8#:Ƭ#\"\" )(#'#(\"'#&'#.# &;ƅ"),$("%;ü/J#;Ą.\" &\"/<$;Ȯ/3$;ȿ/*$8$:ƭ$##\"!)($'#(#'#(\"'#&'#"),$("%;ƿ/D#;ȿ/;$;¨/2$;ȿ/)$8$:Ĭ$\"#!)($'#(#'#(\"'#&'#"),$("<%;ś/f#;ą.\" &\"/X$;Ż/O$;ȿ/F$;ȫ/=$;ȿ/4$;Ŝ/+$8':Ư'$&%$ )(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7Ʈ"),$("%;ü/N#;ȯ/E$;ȿ/<$;ȡ/3$;ȿ/*$8%:ư%#$#!)(%'#($'#(#'#(\"'#&'#"),$('%;Ɨ/@#;ȿ/7$;ŝ." &"/)$8#:Ʊ#"" )(#\'#("\'#&\'#'),$("<%;Ơ/Z#;ȿ/Q$;Ş.\" &\"/C$;ȿ/:$;ơ/1$;ȿ/($8&:Ƴ&!#)(&'#(%'#($'#(#'#(\"'#&'#=.\" 7Ʋ"),$('%;Š/9#$;ş0#*;ş&/)$8":ƴ""! )("\'#&\'#'),$("%;ȿ/H#;Ƣ/?$;ȿ/6$;Š.\" &\"/($8$:Ƶ$! )($'#(#'#(\"'#&'#"),$("%%<%;ƕ/;#;ȿ/2$;&.# &;đ/#$+#)(#'#(\"'#&'#=.##&&!&'#/:#;p/1$;ȿ/($8#:İ#!!)(#'#(\"'#&'#.x &%;š/n#%%<;Ɠ=.##&&!&'#/,#;ȿ/#$+\")(\"'#&'#/F$;Ď.\" &\"/8$;ď.\" &\"/*$8$:ŏ$##! )($'#(#'#(\"'#&'#"),$(";ƕ.# &;Ƙ"),$('<%;ţ/;#;Ż/2$;ȿ/)$8#:Ʒ#""!)(#\'#("\'#&\'#=." 7ƶ'),$("<%;ǝ/J#;ȿ/A$;Ť/8$;ť.\" &\"/*$8$:ƹ$##! )($'#(#'#(\"'#&'#=.\" 7Ƹ"),$('<%;ȡ./ &;Dz.) &;ȧ.# &;Ȯ/1#;ȿ/($8":ċ"!!)("\'#&\'#=." 7ƺ'),$("<%;Ǯ/D#;ȿ/;$;Ǥ/2$;ȿ/)$8$:Ƽ$\"#!)($'#(#'#(\"'#&'#=.\" 7ƻ"),$('<%;Ʈ/,#;Ʈ/#$+")("\'#&\'#=." 7ƽ'),$('<;ƪ=." 7ƾ'),$('<;ƫ=." 7ƿ'),$('<;Ƥ=." 7ǀ'),$('<;Ƶ=." 7ǁ'),$('<;Ư=." 7ǂ'),$('<%;ư/,#;ư/#$+")("\'#&\'#=." 7ǃ'),$('<%;Ʊ/,#;Ʊ/#$+")("\'#&\'#=." 7DŽ'),$('<;ƭ=." 7Dž'),$('<;Ʈ=." 7dž'),$('<;ư=." 7LJ'),$('<;Ʊ=." 7Lj'),$('<%;ư/,#;Ƭ/#$+")("\'#&\'#=." 7lj'),$('<%;Ʊ/,#;Ƭ/#$+")("\'#&\'#=." 7NJ'),$('<%;Ƭ/1#;Ƭ." &"/#$+")("\'#&\'#=." 7Nj'),$('<%;Ʋ/,#;Ƭ/#$+")("\'#&\'#=." 7nj'),$('<%;ư/,#;Ʊ/#$+")("\'#&\'#=." 7nj'),$('<%;Ǻ/@#;ȿ/7$;k." &"/)$8#:ǎ#"" )(#\'#("\'#&\'#=." 7Ǎ'),$('<;ƕ.# &;Ƙ=." 7Ǐ'),$("<%;Ÿ/' 8!:Ǒ!! )=.\" 7ǐ"),$('<%;ż." &"/2#;Ÿ/)$8":Ǔ""! )("\'#&\'#=." 7ǒ'),$('<%;ż." &"/2#;Ÿ/)$8":Ǖ""! )("\'#&\'#=." 7ǔ'),$('%;Ÿ/2#;ƣ/)$8":ǖ""! )("\'#&\'#'),$('<%;ſ.) &;ƀ.# &;ž/2#;Ÿ/)$8":ǘ""! )("\'#&\'#=." 7Ǘ'),$("%;ȿ/& 8!:Ǚ! )"),$('%;ż/2#;ƀ/)$8":ǚ""! )("\'#&\'#'),$('%;Ÿ/2#;ƣ/)$8":D""! )("\'#&\'#'),$("<%;Ÿ/' 8!:ǜ!! )=.\" 7Ǜ"),$("<%;Ÿ/' 8!:Ǟ!! )=.\" 7ǝ"),$('<%;ż." &"/2#;Ÿ/)$8":Ǡ""! )("\'#&\'#=." 7ǟ'),$('<%;ż." &"/2#;Ÿ/)$8":Ǣ""! )("\'#&\'#=." 7ǡ'),$('<%;ż." &"/2#;Ÿ/)$8":Ǥ""! )("\'#&\'#=." 7ǣ'),$('<%;ż." &"/2#;Ÿ/)$8":Ǧ""! )("\'#&\'#=." 7ǥ'),$('<%;ƈ.# &;Ż/1#;ȿ/($8":Ǩ"!!)("\'#&\'#=." 7ǧ'),$("%;Ż/;#;ȿ/2$;æ/)$8#:ǩ#\"\" )(#'#(\"'#&'#"),$("<%;Ÿ/' 8!:ǫ!! )=.\" 7Ǫ"),$("<%;Ÿ/' 8!:ǭ!! )=.\" 7Ǭ"),$('<%;ƌ/=#%<;Ɠ=.##&&!&\'#/($8":ǯ"!!)("\'#&\'#.Å &%;ƍ/=#%<;Ɠ=.##&&!&\'#/($8":ǰ"!!)("\'#&\'#.› &%;Ə/=#%<;Ɠ=.##&&!&\'#/($8":DZ"!!)("\'#&\'#.q &%;Ɛ/=#%<;Ɠ=.##&&!&\'#/($8":Dz"!!)("\'#&\'#.G &%;ƒ/=#%<;Ɠ=.##&&!&\'#/($8":dz"!!)("\'#&\'#=." 7Ǯ'),$('<%%3ǵ""5!7Ƕ." &"/F#3Ƿ""5#7Ǹ." &"/2$3ǹ""5$7Ǻ/#$+#)(#\'#("\'#&\'#.k &%3ǻ""5$7Ǽ.5 &3ǽ""5&7Ǿ.) &3ǿ""5$7Ȁ." &"/2#3ȁ""5$7Ȃ/#$+")("\'#&\'#.) &3ȃ""5$7Ȅ/\' 8!:ċ!! )=." 7Ǵ'),$('<%;Ǝ.5 &3Ȇ""5%7ȇ.) &3Ȉ""5$7ȉ/\' 8!:ċ!! )=." 7ȅ'),$('<%3ȋ""5&7Ȍ/i#%$4(""5!7)/,#0)*4(""5!7)&&&#/2#3ȍ""5)7Ȏ/#$+")("\'#&\'#." &"/)$8":ȏ""! )("\'#&\'#=." 7Ȋ'),$('<%3ȑ""5\'7Ȓ.• &3ȓ""5\'7Ȕ.‰ &3ȕ""5\'7Ȗ.} &%3ȗ""5$7Ș/7#3ș""5$7Ț." &"/#$+")("\'#&\'#.S &%3ș""5$7Ț/7#3ț""5%7Ȝ." &"/#$+")("\'#&\'#.) &3ȝ""5&7Ȟ/\' 8!:ċ!! )=." 7Ȑ'),$('<%%3Ƞ""5#7ȡ/V#2Ȣ""6Ȣ7ȣ.A &2Ȥ""6Ȥ7ȥ.5 &2Ȧ""6Ȧ7ȧ.) &3Ȩ""5$7ȩ/#$+")("\'#&\'#.q &%3Ȫ""5#7ȫ.A &3ǽ""5&7Ǿ.5 &3Ȭ""5%7ȭ.) &3ǻ""5$7Ǽ." &"/2#3Ƞ""5#7ȡ/#$+")("\'#&\'#.# &;Ƒ/\' 8!:ċ!! )=." 7ȟ'),$('%3Ȯ""5(7ȯ/d#%$4(""5!7)/,#0)*4(""5!7)&&&#/2#3Ȱ""5%7ȱ/#$+")("\'#&\'#/)$8":Ȳ""! )("\'#&\'#'),$('<%3ȴ""5$7ȵ/\' 8!:ċ!! )=." 7ȳ'),$('4ȶ""5!7ȷ'),$('%2ȸ""6ȸ7ȹ/K#$4Ⱥ""5!7Ȼ/,#0)*4Ⱥ""5!7Ȼ&&&#/)$8":ȼ""! )("\'#&\'#'),$(";Ɩ.# &;Ɨ"),$(";ƙ./ &;Ɲ.) &;ƛ.# &;Ɯ"),$("%%<;ȴ.# &;>=.##&&!&'#/J#$;Ɣ.# &;Ɠ/,#0)*;Ɣ.# &;Ɠ&&&#/($8\":Ö\"! )(\"'#&'#"),$("%%<;ȶ.# &;>=.##&&!&'#/J#$;Ɣ.# &;Ɠ/,#0)*;Ɣ.# &;Ɠ&&&#/($8\":Ƚ\"! )(\"'#&'#"),$("%;ƞ/™#;ȿ/$%$%%<;ƚ=.##&&!&'#/1#1\"\"5!7Ⱦ/#$+\")(\"'#&'#0G*%%<;ƚ=.##&&!&'#/1#1\"\"5!7Ⱦ/#$+\")(\"'#&'#&/\"!&,)/1$;ƚ/($8$:ȿ$!!)($'#(#'#(\"'#&'#"),$('%$4ɀ""5!7Ɂ0)*4ɀ""5!7Ɂ&/5#;Ɵ/,$;ȿ/#$+#)(#\'#("\'#&\'#'),$('%2ɂ""6ɂ7Ƀ/k#$2Ʉ""6Ʉ7Ʌ.) &4Ɇ""5!7ɇ05*2Ʉ""6Ʉ7Ʌ.) &4Ɇ""5!7ɇ&/7$2ɂ""6ɂ7Ƀ/($8#:Ɉ#!!)(#\'#("\'#&\'#'),$('%2ɉ""6ɉ7Ɋ/k#$26""6677.) &48""5!7905*26""6677.) &48""5!79&/7$2ɉ""6ɉ7Ɋ/($8#:ɋ#!!)(#\'#("\'#&\'#'),$('%2Ɍ""6Ɍ7ɍ/k#$2Ɏ""6Ɏ7ɏ.) &4ɐ""5!7ɑ05*2Ɏ""6Ɏ7ɏ.) &4ɐ""5!7ɑ&/7$2Ɍ""6Ɍ7ɍ/($8#:ɒ#!!)(#\'#("\'#&\'#'),$('<%2ɔ""6ɔ7ɕ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɓ'),$('<%2ɗ""6ɗ7ɘ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɖ'),$('<%2ɚ""6ɚ7ɛ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ə'),$('<%2ɝ""6ɝ7ɞ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɜ'),$('<%2ɠ""6ɠ7ɡ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɟ'),$('<%2ɣ""6ɣ7ɤ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɢ'),$('<%2ɦ""6ɦ7ɧ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɥ'),$('<%2ɩ""6ɩ7ɪ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɨ'),$('<%2ɉ""6ɉ7Ɋ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɫ'),$('<%2ɂ""6ɂ7Ƀ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɬ'),$('<%2Ɍ""6Ɍ7ɍ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɭ'),$('<%2ɯ""6ɯ7ɰ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɮ'),$('<%2ɲ""6ɲ7ɳ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɱ'),$('<%2ɵ""6ɵ7ɶ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɴ'),$('<%2ɷ""6ɷ7ɸ/1#;ȿ/($8":""!!)("\'#&\'#=." 7Nj'),$('<%2ɺ""6ɺ7ɻ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɹ'),$('<%2ɽ""6ɽ7ɾ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɼ'),$('<%2ɿ""6ɿ7ʀ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ǂ'),$('<%2ʁ""6ʁ7ʂ/1#;ȿ/($8":""!!)("\'#&\'#=." 7LJ'),$('<%2ʃ""6ʃ7ʄ/1#;ȿ/($8":""!!)("\'#&\'#=." 7Lj'),$('<%2ʆ""6ʆ7ʇ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ʅ'),$('<%2ʉ""6ʉ7ʊ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ʈ'),$('<%2a""6a7b/1#;ȿ/($8":""!!)("\'#&\'#=." 7ʋ'),$('<%2ʍ""6ʍ7ʎ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ʌ'),$('<%2ʐ""6ʐ7ʑ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ʏ'),$('%3ʒ""5%7ʓ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʔ""5&7ʕ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʖ""5#7ʗ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʘ""5%7ʙ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʚ""5#7ʛ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʜ""5%7ʝ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3ʞ\"\"5'7ʟ/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3ʠ""5#7ʡ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʢ""5"7ʣ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʤ""5#7ʥ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʦ""5&7ʧ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʨ""5-7ʩ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʪ""5&7ʫ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʬ""5%7ʭ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3ʮ\"\"5'7ʯ/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3ʰ""5"7ʱ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3ʲ\"\"5'7ʳ/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3ʴ""5$7ʵ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʶ""5$7ʷ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʸ""5%7ʹ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3ʺ\"\"5'7ʻ/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3ʼ""5&7ʽ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʾ""5&7ʿ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˀ""5(7ˁ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˂""5*7˃/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˄""5&7˅/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˆ""5%7ˇ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˈ""5,7ˉ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˊ""5,7ˋ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˌ""517ˍ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˎ""5(7ˏ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3ː\"\"5'7ˑ/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3˒""5*7˓/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˔""5(7˕/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˖""5&7˗/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˘""5$7˙/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˚""5&7˛/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˜""5(7˝/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˞""5$7˟/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˠ""5$7ˡ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˢ""5$7ˣ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˤ""5#7˥/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˦""5&7˧/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˨""5&7˩/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˪""5)7˫/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˬ""5&7˭/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3ˮ\"\"5'7˯/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3˰""5$7˱/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˲""5#7˳/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3˴\"\"5'7˵/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3˶""5$7˷/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˸""5$7˹/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˺""5$7˻/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˼""5%7˽/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˾""5&7˿/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̀""5"7́/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̂""5&7̃/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̄""5)7̅/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̆""5"7̇/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̈""5%7̉/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3̊\"\"5'7̋/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3̌""5)7̍/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̎""5%7̏/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̐""5&7̑/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3̒\"\"5'7̓/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3̔""5)7̕/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̖""5$7̗/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̘""5"7̙/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̚""5&7̛/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̜""5$7̝/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̞""5#7̟/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̠""5$7̡/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̢""5$7̣/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̤""5%7̥/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̦""5%7̧/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3̨\"\"5'7̩/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3̪""5"7̫/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̬""5#7̭/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3̮\"\"5'7̯/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3y""5$7z/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̰""5"7̱/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̲""5&7̳/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̴""5"7̵/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̶""5"7̷/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̸""5%7̹/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̺""5%7̻/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̼""5$7̽/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̾""5&7̿/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3̀\"\"5'7́/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3͂""5%7̓/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̈́""5%7ͅ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͆""5)7͇/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͈""5*7͉/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͊""5&7͋/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3͌\"\"5'7͍/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$("%3͎\"\"5'7͏/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3͐""5&7͑/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3͒\"\"5'7͓/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3͔""5(7͕/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͖""5%7͗/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͘""5(7͙/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͚""5#7͛/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͜""5%7͝/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͞""5)7͟/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͠""5&7͡/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͢""5#7ͣ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͤ""5%7ͥ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͦ""5$7ͧ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͨ""5)7ͩ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͪ""5$7ͫ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͬ""5"7ͭ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͮ""5+7ͯ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3Ͱ\"\"5'7ͱ/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3Ͳ""5%7ͳ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʹ""5&7͵/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3Ͷ""5&7ͷ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͸""5%7͹/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͺ""5&7ͻ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͼ""5&7ͽ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3;""5$7Ϳ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3΀\"\"5'7΁/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3΂""5$7΃/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3΄""5%7΅/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3Ά""5$7·/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3Έ\"\"5'7Ή/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$("%;ȵ/' 8!:Ί!! )"),$(";Ʒ.˹ &;Ƹ.˳ &;ƹ.˭ &;ƺ.˧ &;ƻ.ˡ &;Ƽ.˛ &;ƽ.˕ &;ƾ.ˏ &;ƿ.ˉ &;ǀ.˃ &;ǁ.ʽ &;ǂ.ʷ &;ǃ.ʱ &;DŽ.ʫ &;Dž.ʥ &;dž.ʟ &;LJ.ʙ &;Lj.ʓ &;lj.ʍ &;NJ.ʇ &;Nj.ʁ &;nj.ɻ &;Ǎ.ɵ &;ǎ.ɯ &;Ǐ.ɩ &;ǐ.ɣ &;Ǒ.ɝ &;ǒ.ɗ &;Ǔ.ɑ &;ǔ.ɋ &;Ǖ.Ʌ &;ǖ.ȿ &;Ǘ.ȹ &;ǘ.ȳ &;Ǚ.ȭ &;ǚ.ȧ &;Ǜ.ȡ &;ǜ.ț &;ǝ.ȕ &;Ǟ.ȏ &;ǟ.ȉ &;Ǡ.ȃ &;ǡ.ǽ &;Ǣ.Ƿ &;ǣ.DZ &;Ǥ.ǫ &;ǥ.ǥ &;Ǧ.ǟ &;ǧ.Ǚ &;Ǩ.Ǔ &;ǩ.Ǎ &;Ǫ.LJ &;ǫ.ǁ &;Ǭ.ƻ &;ǭ.Ƶ &;Ǯ.Ư &;ǯ.Ʃ &;ǰ.ƣ &;DZ.Ɲ &;Dz.Ɨ &;dz.Ƒ &;Ǵ.Ƌ &;ǵ.ƅ &;Ƕ.ſ &;Ƿ.Ź &;Ǹ.ų &;ǹ.ŭ &;Ǻ.ŧ &;ǻ.š &;Ǽ.ś &;ǽ.ŕ &;Ǿ.ŏ &;ǿ.ʼn &;Ȁ.Ń &;ȁ.Ľ &;Ȃ.ķ &;ȃ.ı &;Ȅ.ī &;ȅ.ĥ &;Ȇ.ğ &;ȇ.ę &;Ȉ.ē &;ȉ.č &;Ȋ.ć &;ȋ.ā &;Ȍ.û &;ȍ.õ &;Ȏ.ï &;ȏ.é &;Ȑ.ã &;ȑ.Ý &;Ȓ.× &;ȓ.Ñ &;Ȕ.Ë &;ȕ.Å &;Ȗ.¿ &;ȗ.¹ &;Ș.³ &;ș.­ &;Ț.§ &;ț.¡ &;Ȝ.› &;Ȟ.• &;ȟ. &;Ƞ.‰ &;ȡ.ƒ &;ȣ.} &;Ȥ.w &;ȥ.q &;Ȧ.k &;ȧ.e &;Ȩ._ &;ȩ.Y &;Ȫ.S &;ȫ.M &;Ȭ.G &;ȭ.A &;Ȯ.; &;ȯ.5 &;Ȱ./ &;ȱ.) &;Ȳ.# &;ȳ"),$(";ƹ.ŧ &;ƻ.š &;Ƽ.ś &;ƾ.ŕ &;ƿ.ŏ &;ǂ.ʼn &;Dž.Ń &;Lj.Ľ &;NJ.ķ &;Nj.ı &;Ǎ.ī &;Ǐ.ĥ &;ǐ.ğ &;ǖ.ę &;Ǘ.ē &;Ǚ.č &;ǜ.ć &;ǝ.ā &;ǟ.û &;ǡ.õ &;Ǣ.ï &;Ǥ.é &;Ǩ.ã &;ǩ.Ý &;Ǭ.× &;ǭ.Ñ &;DZ.Ë &;Dz.Å &;Ƕ.¿ &;Ǹ.¹ &;ǹ.³ &;Ǻ.­ &;ǻ.§ &;Ǽ.¡ &;Ȁ.› &;Ȅ.• &;ȅ. &;Ȇ.‰ &;ȉ.ƒ &;Ȋ.} &;ȋ.w &;ȏ.q &;ȓ.k &;ȟ.e &;Ƞ._ &;ȡ.Y &;Ȥ.S &;ȥ.M &;Ȧ.G &;Ȩ.A &;ȩ.; &;Ȫ.5 &;ȫ./ &;ȭ.) &;Ȱ.# &;ȱ"),$(";ȸ.. &%;ȹ/& 8!:΋! )"),$('<%2΍""6΍7Ύ/‡#$%%<4Ώ""5!7ΐ=.##&&!&\'#/1#1""5!7Ⱦ/#$+")("\'#&\'#0M*%%<4Ώ""5!7ΐ=.##&&!&\'#/1#1""5!7Ⱦ/#$+")("\'#&\'#&/#$+")("\'#&\'#=." 7Ό'),$("<%;Ⱥ/5#;Ⱦ/,$;Ȼ/#$+#)(#'#(\"'#&'#=.\" 7Α"),$('2Β""6Β7Γ'),$('2Δ""6Δ7Ε'),$('$%%<;Ȼ.# &;Ⱥ=.##&&!&\'#/1#1""5!7Ⱦ/#$+")("\'#&\'#/P#0M*%%<;Ȼ.# &;Ⱥ=.##&&!&\'#/1#1""5!7Ⱦ/#$+")("\'#&\'#&&&#'),$(";ȼ.# &;ȹ"),$('%;Ƚ/K#$4Ζ""5!7Η.# &;Ƚ0/*4Ζ""5!7Η.# &;Ƚ&/#$+")("\'#&\'#'),$('<%$4Ζ""5!7Η.# &;ȷ0/*4Ζ""5!7Η.# &;ȷ&/\' 8!:-!! )=." 7Θ'),$('2Ι""6Ι7Κ')],l=0,c=[{line:1,column:1}],d=0,p=[],m=0,v={},b=["start","start_streaming","stmt_list","semi_optional","semi_required","stmt_list_tail","type_definition","type_definition_types","datatype_custom","datatype_word_tail","type_definition_args","definition_args_loop","literal_value","literal_null","literal_date","literal_string","literal_string_single","literal_string_schar","literal_blob","literal_text","number_sign","literal_number_signed","literal_number","literal_number_decimal","number_decimal_node","number_decimal_full","number_decimal_fraction","number_decimal_exponent","literal_number_hex","number_hex","number_digit","bind_parameter","bind_parameter_numbered","bind_number_id","bind_parameter_named","bind_parameter_tcl","tcl_suffix","expression_exists","expression_exists_ne","expression_raise","expression_raise_args","raise_args_ignore","raise_args_message","expression_root","expression_wrapped","expression_recur","expression_unary_collate","expression_unary","expression_unary_op","expression_collate","expression_concat","expression_multiply","expression_multiply_op","expression_add","expression_add_op","expression_shift","expression_shift_op","expression_compare","expression_compare_op","expression_equiv","expression_equiv_tails","expression_equiv_null_op","expression_equiv_op","expression_cast","type_alias","expression_case","case_expression","expression_case_when","expression_case_else","expression_postfix","expression_postfix_tail","expression_like","expression_escape","expression_between","expression_between_tail","expression_is_not","expression_in","expression_in_target","expression_list_or_select","expression_and","expression","expression_list","expression_list_loop","expression_list_rest","function_call","function_call_args","args_list_distinct","error_message","stmt","stmt_modifier","modifier_query","stmt_nodes","stmt_commit","stmt_begin","commit_transaction","stmt_begin_modifier","stmt_rollback","rollback_savepoint","savepoint_name","savepoint_alt","stmt_savepoint","stmt_release","stmt_alter","alter_start","alter_action","alter_action_rename","alter_action_add","action_add_modifier","stmt_crud","stmt_core_with","clause_with","clause_with_recursive","clause_with_tables","clause_with_loop","expression_cte","select_alias","select_wrapped","stmt_select_full","stmt_sqlite","stmt_attach","attach_arg","stmt_detach","stmt_vacuum","vacuum_target","stmt_analyze","analyze_arg","stmt_reindex","reindex_arg","stmt_pragma","pragma_expression","pragma_value","pragma_value_literal","pragma_value_bool","pragma_bool_id","pragma_value_name","stmt_crud_types","stmt_select","stmt_core_order","stmt_core_limit","stmt_core_limit_offset","limit_offset_variant","limit_offset_variant_name","select_loop","select_loop_union","select_parts","select_parts_core","select_core_select","select_modifier","select_modifier_distinct","select_modifier_all","select_target","select_target_loop","select_core_from","stmt_core_where","select_core_group","select_core_having","select_node","select_node_star","select_node_star_qualified","select_node_aliased","select_source","source_loop_tail","select_cross_clause","select_join_clause","table_or_sub","table_or_sub_func","table_qualified","table_qualified_id","table_or_sub_index_node","index_node_indexed","index_node_none","table_or_sub_sub","table_or_sub_select","alias","join_operator","join_operator_natural","join_operator_types","operator_types_hand","types_hand_outer","operator_types_misc","join_condition","join_condition_on","join_condition_using","select_parts_values","stmt_core_order_list","stmt_core_order_list_loop","stmt_core_order_list_item","select_star","stmt_fallback_types","stmt_insert","insert_keyword","insert_keyword_ins","insert_keyword_repl","insert_keyword_mod","insert_target","insert_into","insert_into_start","insert_results","loop_columns","loop_column_tail","loop_name","insert_value","insert_value_start","insert_values_list","insert_values_loop","expression_list_wrapped","insert_default","operator_compound","compound_union","compound_union_all","stmt_update","update_start","update_fallback","update_set","update_columns","update_columns_tail","update_column","stmt_delete","delete_start","stmt_create","create_start","create_table_only","create_index_only","create_trigger_only","create_view_only","create_virtual_only","create_table","create_table_start","create_core_tmp","create_core_ine","create_table_source","table_source_def","source_def_rowid","source_def_loop","source_def_tail","source_tbl_loop","source_def_column","source_def_name","column_type","column_constraints","column_constraint_tail","column_constraint","constraint_name","constraint_name_loop","column_constraint_types","column_constraint_foreign","column_constraint_primary","col_primary_start","col_primary_auto","column_constraint_null","constraint_null_types","constraint_null_value","column_constraint_check","column_constraint_default","column_default_values","column_constraint_collate","table_constraint","table_constraint_types","table_constraint_check","table_constraint_primary","primary_start","primary_start_normal","primary_start_unique","primary_columns","primary_columns_index","primary_columns_table","primary_column_tail","primary_column","primary_column_types","column_collate","column_collate_loop","primary_column_dir","primary_conflict","primary_conflict_start","constraint_check","table_constraint_foreign","foreign_start","foreign_clause","foreign_references","foreign_actions","foreign_actions_tail","foreign_action","foreign_action_on","action_on_action","on_action_set","on_action_cascade","on_action_none","foreign_action_match","foreign_deferrable","deferrable_initially","table_source_select","create_index","create_index_start","index_unique","index_on","create_trigger","create_trigger_start","trigger_conditions","trigger_apply_mods","trigger_apply_instead","trigger_do","trigger_do_on","trigger_do_update","do_update_of","do_update_columns","trigger_foreach","trigger_when","trigger_action","action_loop","action_loop_stmt","create_view","id_view_expression","create_view_start","create_as_select","create_virtual","create_virtual_start","virtual_module","virtual_args","virtual_args_loop","virtual_args_tail","virtual_arg_types","virtual_column_name","stmt_drop","drop_start","drop_types","drop_ie","binary_concat","binary_plus","binary_minus","binary_multiply","binary_divide","binary_mod","binary_left","binary_right","binary_and","binary_or","binary_lt","binary_gt","binary_lte","binary_gte","binary_equal","binary_notequal_a","binary_notequal_b","binary_lang_isnt","id_name","id_database","id_function","id_table","id_table_qualified","id_column","column_unqualified","column_qualifiers","id_column_qualified","id_collation","id_savepoint","id_index","id_trigger","id_view","id_pragma","id_cte","id_table_expression","id_constraint_table","id_constraint_column","datatype_types","datatype_text","datatype_real","datatype_real_double","datatype_numeric","datatype_integer","datatype_integer_fp","datatype_none","name_char","unicode_char","name","name_quoted","name_unquoted","name_reserved","name_bracketed","bracket_terminator","name_dblquoted","name_sglquoted","name_backticked","sym_bopen","sym_bclose","sym_popen","sym_pclose","sym_comma","sym_dot","sym_star","sym_quest","sym_sglquote","sym_dblquote","sym_backtick","sym_tilde","sym_plus","sym_minus","sym_equal","sym_amp","sym_pipe","sym_mod","sym_lt","sym_gt","sym_excl","sym_semi","sym_colon","sym_fslash","sym_bslash","ABORT","ACTION","ADD","AFTER","ALL","ALTER","ANALYZE","AND","AS","ASC","ATTACH","AUTOINCREMENT","BEFORE","BEGIN","BETWEEN","BY","CASCADE","CASE","CAST","CHECK","COLLATE","COLUMN","COMMIT","CONFLICT","CONSTRAINT","CREATE","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATABASE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DESC","DETACH","DISTINCT","DROP","EACH","ELSE","END","ESCAPE","EXCEPT","EXCLUSIVE","EXISTS","EXPLAIN","FAIL","FOR","FOREIGN","FROM","FULL","GLOB","GROUP","HAVING","IF","IGNORE","IMMEDIATE","IN","INDEX","INDEXED","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","KEY","LEFT","LIKE","LIMIT","MATCH","NATURAL","NO","NOT","NOTNULL","NULL","OF","OFFSET","ON","OR","ORDER","OUTER","PLAN","PRAGMA","PRIMARY","QUERY","RAISE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELEASE","RENAME","REPLACE","RESTRICT","RIGHT","ROLLBACK","ROW","ROWID","SAVEPOINT","SELECT","SET","TABLE","TEMP","TEMPORARY","THEN","TO","TRANSACTION","TRIGGER","UNION","UNIQUE","UPDATE","USING","VACUUM","VALUES","VIEW","VIRTUAL","WHEN","WHERE","WITH","WITHOUT","reserved_words","reserved_word_list","reserved_critical_list","comment","comment_line","comment_block","comment_block_start","comment_block_end","comment_block_body","block_body_nodes","comment_block_feed","o","_TODO_"],g=[null,null,null,null,null,null,"Type Definition",null,"Custom Datatype Name",null,"Type Definition Arguments",null,null,"Null Literal","Date Literal","String Literal","Single-quoted String Literal",null,"Blob Literal",null,"Number Sign",null,null,null,"Decimal Literal",null,null,"Decimal Literal Exponent","Hexidecimal Literal",null,null,"Bind Parameter","Numbered Bind Parameter",null,"Named Bind Parameter","TCL Bind Parameter",null,"EXISTS Expression","EXISTS Keyword","RAISE Expression","RAISE Expression Arguments","IGNORE Keyword",null,null,null,null,null,null,null,"COLLATE Expression",null,null,null,null,null,null,null,null,null,null,null,null,null,"CAST Expression","Type Alias","CASE Expression",null,"WHEN Clause","ELSE Clause",null,null,"Comparison Expression","ESCAPE Expression","BETWEEN Expression",null,null,"IN Expression",null,null,null,null,"Expression List",null,null,"Function Call","Function Call Arguments",null,"Error Message","Statement","QUERY PLAN","QUERY PLAN Keyword",null,"END Transaction Statement","BEGIN Transaction Statement",null,null,"ROLLBACK Statement","TO Clause",null,null,"SAVEPOINT Statement","RELEASE Statement","ALTER TABLE Statement","ALTER TABLE Keyword",null,"RENAME TO Keyword","ADD COLUMN Keyword",null,null,"WITH Clause",null,null,null,null,"Common Table Expression",null,null,null,null,"ATTACH Statement",null,"DETACH Statement","VACUUM Statement",null,"ANALYZE Statement",null,"REINDEX Statement",null,"PRAGMA Statement",null,null,null,null,null,null,null,"SELECT Statement","ORDER BY Clause","LIMIT Clause","OFFSET Clause",null,null,null,"Union Operation",null,null,"SELECT Results Clause","SELECT Results Modifier",null,null,null,null,"FROM Clause","WHERE Clause","GROUP BY Clause","HAVING Clause",null,null,null,null,null,null,"CROSS JOIN Operation","JOIN Operation",null,null,"Qualified Table","Qualified Table Identifier","Qualfied Table Index",null,null,"SELECT Source","Subquery","Alias","JOIN Operator",null,null,null,null,null,"JOIN Constraint","Join ON Clause","Join USING Clause","VALUES Clause",null,null,"Ordering Expression","Star","Fallback Type","INSERT Statement",null,"INSERT Keyword","REPLACE Keyword","INSERT OR Modifier",null,"INTO Clause","INTO Keyword","VALUES Clause","Column List",null,"Column Name","VALUES Clause","VALUES Keyword",null,null,"Wrapped Expression List","DEFAULT VALUES Clause","Compound Operator","UNION Operator",null,"UPDATE Statement","UPDATE Keyword","UPDATE OR Modifier","SET Clause",null,null,"Column Assignment","DELETE Statement","DELETE Keyword","CREATE Statement",null,null,null,null,null,null,"CREATE TABLE Statement",null,null,"IF NOT EXISTS Modifier",null,"Table Definition",null,null,null,null,"Column Definition",null,"Column Datatype",null,null,"Column Constraint",null,"CONSTRAINT Name",null,"FOREIGN KEY Column Constraint","PRIMARY KEY Column Constraint","PRIMARY KEY Keyword","AUTOINCREMENT Keyword",null,"UNIQUE Column Constraint","NULL Column Constraint","CHECK Column Constraint","DEFAULT Column Constraint",null,"COLLATE Column Constraint","Table Constraint",null,"CHECK Table Constraint","PRIMARY KEY Table Constraint",null,"PRIMARY KEY Keyword","UNIQUE Keyword",null,null,null,null,"Indexed Column",null,"Collation",null,"Column Direction",null,"ON CONFLICT Keyword",null,"FOREIGN KEY Table Constraint","FOREIGN KEY Keyword",null,"REFERENCES Clause",null,null,"FOREIGN KEY Action Clause",null,"FOREIGN KEY Action",null,null,null,null,"DEFERRABLE Clause",null,null,"CREATE INDEX Statement",null,null,"ON Clause","CREATE TRIGGER Statement",null,"Conditional Clause",null,null,"Conditional Action",null,null,null,null,null,"WHEN Clause","Actions Clause",null,null,"CREATE VIEW Statement",null,null,null,"CREATE VIRTUAL TABLE Statement",null,null,"Module Arguments",null,null,null,null,"DROP Statement","DROP Keyword","DROP Type","IF EXISTS Keyword","Or","Add","Subtract","Multiply","Divide","Modulo","Shift Left","Shift Right","Logical AND","Logical OR","Less Than","Greater Than","Less Than Or Equal","Greater Than Or Equal","Equal","Not Equal","Not Equal","IS","Identifier","Database Identifier","Function Identifier","Table Identifier",null,"Column Identifier",null,null,null,"Collation Identifier","Savepoint Identifier","Index Identifier","Trigger Identifier","View Identifier","Pragma Identifier","CTE Identifier",null,"Table Constraint Identifier","Column Constraint Identifier","Datatype Name","TEXT Datatype Name","REAL Datatype Name","DOUBLE Datatype Name","NUMERIC Datatype Name","INTEGER Datatype Name",null,"BLOB Datatype Name",null,null,null,null,null,null,null,null,null,null,null,"Open Bracket","Close Bracket","Open Parenthesis","Close Parenthesis","Comma","Period","Asterisk","Question Mark","Single Quote","Double Quote","Backtick","Tilde","Plus","Minus","Equal","Ampersand","Pipe","Modulo","Less Than","Greater Than","Exclamation","Semicolon","Colon","Forward Slash","Backslash",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"Line Comment","Block Comment",null,null,null,null,null,"Whitespace",null],y="tracer"in e?e.tracer:new s;if("startRule"in e){if(!(e.startRule in o))throw new Error("Can't start parsing from rule \""+e.startRule+'".');u=o[e.startRule]}function w(t,e){return{type:"literal",text:t,ignoreCase:e}}function M(t,e,r){return{type:"class",parts:t,inverted:e,ignoreCase:r}}function _(){return{type:"any"}}function E(){return{type:"end"}}function S(t){return{type:"other",description:t}}function A(e){var r,n=c[e];if(n)return n;r=e-1;while(!c[r])r--;n=c[r],n={line:n.line,column:n.column};while(rd&&(d=l,p=[]),p.push(t))}function R(t,e,r){return new a(a.buildMessage(t,e),t,e,r)}function $(t){return t.split("").map((function(t){return t.charCodeAt(0)-32}))}function T(e){var r,n=f[e],o=0,a=[],s=n.length,u=[],c=[],d=l;y.trace({type:"rule.enter",rule:b[e],description:g[e],location:k(d,d)});var p=545*l+e,w=v[p];if(w)return l=w.nextPos,w.result!==i?y.trace({type:"rule.match",rule:b[e],description:g[e],result:w.result,location:k(d,l)}):y.trace({type:"rule.fail",rule:b[e],description:g[e],location:k(d,d)}),w.result;while(1){while(ol?(s=o+3+n[o+1],o+=3):(s=o+3+n[o+1]+n[o+2],o+=3+n[o+1]);break;case 18:u.push(s),a.push(o+4+n[o+2]+n[o+3]),t.substr(l,h[n[o+1]].length)===h[n[o+1]]?(s=o+4+n[o+2],o+=4):(s=o+4+n[o+2]+n[o+3],o+=4+n[o+2]);break;case 19:u.push(s),a.push(o+4+n[o+2]+n[o+3]),t.substr(l,h[n[o+1]].length).toLowerCase()===h[n[o+1]]?(s=o+4+n[o+2],o+=4):(s=o+4+n[o+2]+n[o+3],o+=4+n[o+2]);break;case 20:u.push(s),a.push(o+4+n[o+2]+n[o+3]),h[n[o+1]].test(t.charAt(l))?(s=o+4+n[o+2],o+=4):(s=o+4+n[o+2]+n[o+3],o+=4+n[o+2]);break;case 21:c.push(t.substr(l,n[o+1])),l+=n[o+1],o+=2;break;case 22:c.push(h[n[o+1]]),l+=h[n[o+1]].length,o+=2;break;case 23:c.push(i),0===m&&x(h[n[o+1]]),o+=2;break;case 24:c[c.length-1-n[o+1]],o+=2;break;case 25:l,o++;break;case 26:r=n.slice(o+4,o+4+n[o+3]).map((function(t){return c[c.length-1-t]})),c.splice(c.length-n[o+2],n[o+2],h[n[o+1]].apply(null,r)),o+=4+n[o+3];break;case 27:c.push(T(n[o+1])),o+=2;break;case 28:m++,o++;break;case 29:m--,o++;break;default:throw new Error("Invalid opcode: "+n[o]+".")}if(!(u.length>0))break;s=u.pop(),o=a.pop()}return v[p]={nextPos:l,result:c[0]},c[0]!==i?y.trace({type:"rule.match",rule:b[e],description:g[e],result:c[0],location:k(d,l)}):y.trace({type:"rule.fail",rule:b[e],description:g[e],location:k(d,d)}),c[0]}function I(t){return O(t)?Array.isArray(t)?t:[t]:[]}function O(t){return null!=t}function C(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ",r=t.filter((function(t){return O(t)})).reduce((function(t,r){return""+t+D(r)+e}),"");return r.trim()}function B(t){return C(t,"")}function L(t){return C(t).toLowerCase()}function N(t){return t.filter((function(t){return O(t)})).reduce((function(t,e){return t.concat(e)}),[])}function P(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"'",r=new RegExp(e+"{2}","g");return D(t).replace(r,e)}function D(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return I(t).join("")}function j(t){return D(t).trim()}function q(t){return j(t).toLowerCase()}function U(t){return Array.isArray(t)&&t.length>0&&O(t[0])}function F(t,e){return e.reduce((function(t,e){var r=n(e,4),i=(r[0],r[1]),o=(r[2],r[3]);return{type:"expression",format:"binary",variant:"operation",operation:q(i),left:t,right:o}}),t)}if(r=T(u),r!==i&&l===t.length)return r;throw r!==i&&l0){for(e=1,r=1;e=0;r-=1)if(e(t[r]))return r;return-1}function i(t,e){for(var r=t.length,n=0;n1)return!1;if(h){if(/^(stmt)$/i.test(t.rule))return h=!0,!0}else t.indentation>u.indentation?u=t:h=!0;return!0})),n.length&&(r=u.location,a=n.find((function(t){return s.firstNodeRule.test(t.description)&&t.description!==u.description&&t.indentation!==u.indentation})),o=null!=a?this.statementRule.test(u.description)&&this.statementRule.test(a.description)?a.description:u.description+" ("+a.description+")":u.description,e="Syntax error found near "+o,Object.assign(t,{message:e,location:r})),t},t}()},{}]},{},[1])(1)}))},"62c9":function(t,e,r){var n=r("8707").Buffer;function i(t,e,r){var i=t._cipher.encryptBlock(t._prev),o=i[0]^e;return t._prev=n.concat([t._prev.slice(1),n.from([r?e:o])]),o}e.encrypt=function(t,e,r){var o=e.length,a=n.allocUnsafe(o),s=-1;while(++s1?arguments[1]:void 0)}))},6547:function(t,e,r){var n=r("a691"),i=r("1d80"),o=function(t){return function(e,r){var o,a,s=String(i(e)),u=n(r),h=s.length;return u<0||u>=h?t?"":void 0:(o=s.charCodeAt(u),o<55296||o>56319||u+1===h||(a=s.charCodeAt(u+1))<56320||a>57343?t?s.charAt(u):o:t?s.slice(u,u+2):a-56320+(o-55296<<10)+65536)}};t.exports={codeAt:o(!1),charAt:o(!0)}},"65f0":function(t,e,r){var n=r("861d"),i=r("e8b5"),o=r("b622"),a=o("species");t.exports=function(t,e){var r;return i(t)&&(r=t.constructor,"function"!=typeof r||r!==Array&&!i(r.prototype)?n(r)&&(r=r[a],null===r&&(r=void 0)):r=void 0),new(void 0===r?Array:r)(0===e?0:e)}},"676f":function(t,e,r){"use strict";var n=r("80af"),i=r("3fb5"),o=r("ea53"),a=r("f3a3");function s(t){o.call(this,"mont",t),this.a=new n(t.a,16).toRed(this.red),this.b=new n(t.b,16).toRed(this.red),this.i4=new n(4).toRed(this.red).redInvm(),this.two=new n(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(t,e,r){o.BasePoint.call(this,t,"projective"),null===e&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new n(e,16),this.z=new n(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(s,o),t.exports=s,s.prototype.validate=function(t){var e=t.normalize().x,r=e.redSqr(),n=r.redMul(e).redAdd(r.redMul(this.a)).redAdd(e),i=n.redSqrt();return 0===i.redSqr().cmp(n)},i(u,o.BasePoint),s.prototype.decodePoint=function(t,e){return this.point(a.toArray(t,e),1)},s.prototype.point=function(t,e){return new u(this,t,e)},s.prototype.pointFromJSON=function(t){return u.fromJSON(this,t)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(t,e){return new u(t,e[0],e[1]||t.one)},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var t=this.x.redAdd(this.z),e=t.redSqr(),r=this.x.redSub(this.z),n=r.redSqr(),i=e.redSub(n),o=e.redMul(n),a=i.redMul(n.redAdd(this.curve.a24.redMul(i)));return this.curve.point(o,a)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(t,e){var r=this.x.redAdd(this.z),n=this.x.redSub(this.z),i=t.x.redAdd(t.z),o=t.x.redSub(t.z),a=o.redMul(r),s=i.redMul(n),u=e.z.redMul(a.redAdd(s).redSqr()),h=e.x.redMul(a.redISub(s).redSqr());return this.curve.point(u,h)},u.prototype.mul=function(t){for(var e=t.clone(),r=this,n=this.curve.point(null,null),i=this,o=[];0!==e.cmpn(0);e.iushrn(1))o.push(e.andln(1));for(var a=o.length-1;a>=0;a--)0===o[a]?(r=r.diffAdd(n,i),n=n.dbl()):(n=r.diffAdd(n,i),r=r.dbl());return n},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},"69f2":function(t,e,r){e=t.exports=function(t){t=t.toLowerCase();var r=e[t];if(!r)throw new Error(t+" is not supported (we accept pull requests)");return new r};e.sha=r("087f"),e.sha1=r("7e78"),e.sha224=r("72aa"),e.sha256=r("a255"),e.sha384=r("b837"),e.sha512=r("4fd1")},"69f3":function(t,e,r){var n,i,o,a=r("7f9a"),s=r("da84"),u=r("861d"),h=r("9112"),f=r("5135"),l=r("f772"),c=r("d012"),d=s.WeakMap,p=function(t){return o(t)?i(t):n(t,{})},m=function(t){return function(e){var r;if(!u(e)||(r=i(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}};if(a){var v=new d,b=v.get,g=v.has,y=v.set;n=function(t,e){return y.call(v,t,e),e},i=function(t){return b.call(v,t)||{}},o=function(t){return g.call(v,t)}}else{var w=l("state");c[w]=!0,n=function(t,e){return h(t,w,e),e},i=function(t){return f(t,w)?t[w]:{}},o=function(t){return f(t,w)}}t.exports={set:n,get:i,has:o,enforce:p,getterFor:m}},"6aa2":function(t,e,r){"use strict";var n=r("7d92"),i=r("7658"),o=r("da3e");function a(t){if(!(this instanceof a))return new a(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=i.toArray(t.entropy,t.entropyEnc||"hex"),r=i.toArray(t.nonce,t.nonceEnc||"hex"),n=i.toArray(t.pers,t.persEnc||"hex");o(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,n)}t.exports=a,a.prototype._init=function(t,e,r){var n=t.concat(e).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(r||[])),this._reseed=1},a.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!==typeof e&&(n=r,r=e,e=null),r&&(r=i.toArray(r,n||"hex"),this._update(r));var o=[];while(o.lengthf)r=u[f++],n&&!a.call(s,r)||l.push(t?[r,s[r]]:s[r]);return l}};t.exports={entries:s(!0),values:s(!1)}},"6fe7":function(t,e,r){var n=r("39a9").Buffer,i=r("1a2a"),o=r("a958"),a=r("3337").ec,s=r("399f"),u=r("2aee"),h=r("cd91");function f(t,e,r,i,a){var s=u(e);if(s.curve){if("ecdsa"!==i&&"ecdsa/rsa"!==i)throw new Error("wrong private key type");return l(t,s)}if("dsa"===s.type){if("dsa"!==i)throw new Error("wrong private key type");return c(t,s,r)}if("rsa"!==i&&"ecdsa/rsa"!==i)throw new Error("wrong private key type");t=n.concat([a,t]);var h=s.modulus.byteLength(),f=[0,1];while(t.length+f.length+10&&r.ishrn(n),r}function v(t,e){t=m(t,e),t=t.mod(e);var r=n.from(t.toArray());if(r.lengthr)i[r]=e[r++];return i},W=function(t,e){I(t,e,{get:function(){return $(this)[e]}})},Z=function(t){var e;return t instanceof L||"ArrayBuffer"==(e=b(t))||"SharedArrayBuffer"==e},G=function(t,e){return F(t)&&"symbol"!=typeof e&&e in t&&String(+e)==String(e)},Y=function(t,e){return G(t,e=m(e,!0))?f(2,t[e]):O(t,e)},V=function(t,e,r){return!(G(t,e=m(e,!0))&&g(r)&&v(r,"value"))||v(r,"get")||v(r,"set")||r.configurable||v(r,"writable")&&!r.writable||v(r,"enumerable")&&!r.enumerable?I(t,e,r):(t[e]=r.value,t)};o?(P||(k.f=Y,A.f=V,W(q,"buffer"),W(q,"byteOffset"),W(q,"byteLength"),W(q,"length")),n({target:"Object",stat:!0,forced:!P},{getOwnPropertyDescriptor:Y,defineProperty:V}),t.exports=function(t,e,r){var o=t.match(/\d+$/)[0]/8,s=t+(r?"Clamped":"")+"Array",u="get"+t,f="set"+t,m=i[s],v=m,b=v&&v.prototype,A={},k=function(t,e){var r=$(t);return r.view[u](e*o+r.byteOffset,!0)},x=function(t,e,n){var i=$(t);r&&(n=(n=C(n))<0?0:n>255?255:255&n),i.view[f](e*o+i.byteOffset,n,!0)},O=function(t,e){I(t,e,{get:function(){return k(this,e)},set:function(t){return x(this,e,t)},enumerable:!0})};P?a&&(v=e((function(t,e,r,n){return h(t,v,s),R(function(){return g(e)?Z(e)?void 0!==n?new m(e,p(r,o),n):void 0!==r?new m(e,p(r,o)):new m(e):F(e)?K(v,e):_.call(v,e):new m(d(e))}(),t,v)})),w&&w(v,j),E(M(m),(function(t){t in v||l(v,t,m[t])})),v.prototype=b):(v=e((function(t,e,r,n){h(t,v,s);var i,a,u,f=0,l=0;if(g(e)){if(!Z(e))return F(e)?K(v,e):_.call(v,e);i=e,l=p(r,o);var m=e.byteLength;if(void 0===n){if(m%o)throw B(H);if(a=m-l,a<0)throw B(H)}else if(a=c(n)*o,a+l>m)throw B(H);u=a/o}else u=d(e),a=u*o,i=new L(a);T(t,{buffer:i,byteOffset:l,byteLength:a,length:u,view:new N(i)});while(ff||t<0)throw new TypeError("offset must be a uint32");if(t>u||t>e)throw new RangeError("offset out of range")}function c(t,e,r){if("number"!==typeof t||t!==t)throw new TypeError("size must be a number");if(t>f||t<0)throw new TypeError("size must be a uint32");if(t+e>r||t>u)throw new RangeError("buffer too small")}function d(e,r,n,i){if(!s.isBuffer(e)&&!(e instanceof t.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"===typeof r)i=r,r=0,n=e.length;else if("function"===typeof n)i=n,n=e.length-r;else if("function"!==typeof i)throw new TypeError('"cb" argument must be a function');return l(r,e.length),c(n,r,e.length),p(e,r,n,i)}function p(t,e,r,i){if(n.browser){var o=t.buffer,s=new Uint8Array(o,e,r);return h.getRandomValues(s),i?void n.nextTick((function(){i(null,t)})):t}if(!i){var u=a(r);return u.copy(t,e),t}a(r,(function(r,n){if(r)return i(r);n.copy(t,e),i(null,t)}))}function m(e,r,n){if("undefined"===typeof r&&(r=0),!s.isBuffer(e)&&!(e instanceof t.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return l(r,e.length),void 0===n&&(n=e.length-r),c(n,r,e.length),p(e,r,n)}h&&h.getRandomValues||!n.browser?(e.randomFill=d,e.randomFillSync=m):(e.randomFill=i,e.randomFillSync=i)}).call(this,r("c8ba"),r("4362"))},7658:function(t,e,r){"use strict";var n=e;function i(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"!==typeof t){for(var n=0;n>8,a=255&i;o?r.push(o,a):r.push(a)}return r}function o(t){return 1===t.length?"0"+t:t}function a(t){for(var e="",r=0;r>1,v=23===e?i(2,-24)-i(2,-77):0,b=t<0||0===t&&1/t<0?1:0,g=0;for(t=n(t),t!=t||t===r?(f=t!=t?1:0,h=p):(h=o(a(t)/s),t*(l=i(2,-h))<1&&(h--,l*=2),t+=h+m>=1?v/l:v*i(2,1-m),t*l>=2&&(h++,l/=2),h+m>=p?(f=0,h=p):h+m>=1?(f=(t*l-1)*i(2,e),h+=m):(f=t*i(2,m-1)*i(2,e),h=0));e>=8;c[g++]=255&f,f/=256,e-=8);for(h=h<0;c[g++]=255&h,h/=256,d-=8);return c[--g]|=128*b,c},h=function(t,e){var n,o=t.length,a=8*o-e-1,s=(1<>1,h=a-7,f=o-1,l=t[f--],c=127&l;for(l>>=7;h>0;c=256*c+t[f],f--,h-=8);for(n=c&(1<<-h)-1,c>>=-h,h+=e;h>0;n=256*n+t[f],f--,h-=8);if(0===c)c=1-u;else{if(c===s)return n?NaN:l?-r:r;n+=i(2,e),c-=u}return(l?-1:1)*n*i(2,c-e)};t.exports={pack:u,unpack:h}},"780f":function(t,e,r){"use strict";t.exports=o;var n=r("27bf"),i=Object.create(r("3a7c"));function o(t){if(!(this instanceof o))return new o(t);n.call(this,t)}i.inherits=r("3fb5"),i.inherits(o,n),o.prototype._transform=function(t,e,r){r(null,t)}},7839:function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7a10":function(t,e,r){var n=r("d0eb"),i=r("fdac");function o(t){this.rand=t||new i.Rand}t.exports=o,o.create=function(t){return new o(t)},o.prototype._randbelow=function(t){var e=t.bitLength(),r=Math.ceil(e/8);do{var i=new n(this.rand.generate(r))}while(i.cmp(t)>=0);return i},o.prototype._randrange=function(t,e){var r=e.sub(t);return t.add(this._randbelow(r))},o.prototype.test=function(t,e,r){var i=t.bitLength(),o=n.mont(t),a=new n(1).toRed(o);e||(e=Math.max(1,i/48|0));for(var s=t.subn(1),u=0;!s.testn(u);u++);for(var h=t.shrn(u),f=s.toRed(o),l=!0;e>0;e--){var c=this._randrange(new n(2),s);r&&r(c);var d=c.toRed(o).redPow(h);if(0!==d.cmp(a)&&0!==d.cmp(f)){for(var p=1;p0;e--){var f=this._randrange(new n(2),a),l=t.gcd(f);if(0!==l.cmpn(1))return l;var c=f.toRed(i).redPow(u);if(0!==c.cmp(o)&&0!==c.cmp(h)){for(var d=1;d",c="<",d="prototype",p="script",m=f("IE_PROTO"),v=function(){},b=function(t){return c+p+l+t+c+"/"+p+l},g=function(t){t.write(b("")),t.close();var e=t.parentWindow.Object;return t=null,e},y=function(){var t,e=h("iframe"),r="java"+p+":";return e.style.display="none",u.appendChild(e),e.src=String(r),t=e.contentWindow.document,t.open(),t.write(b("document.F=Object")),t.close(),t.F},w=function(){try{n=document.domain&&new ActiveXObject("htmlfile")}catch(e){}w=n?g(n):y();var t=a.length;while(t--)delete w[d][a[t]];return w()};s[m]=!0,t.exports=Object.create||function(t,e){var r;return null!==t?(v[d]=i(t),r=new v,v[d]=null,r[m]=t):r=w(),void 0===e?r:o(r,e)}},"7d2a":function(t,e){var r=Math.pow(2,30)-1;t.exports=function(t,e){if("number"!==typeof t)throw new TypeError("Iterations not a number");if(t<0)throw new TypeError("Bad iterations");if("number"!==typeof e)throw new TypeError("Key length not a number");if(e<0||e>r||e!==e)throw new TypeError("Bad key length")}},"7d72":function(t,e,r){"use strict";var n=r("8707").Buffer,i=n.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(t){if(!t)return"utf8";var e;while(1)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function a(t){var e=o(t);if("string"!==typeof e&&(n.isEncoding===i||!i(t)))throw new Error("Unknown encoding: "+t);return e||t}function s(t){var e;switch(this.encoding=a(t),this.encoding){case"utf16le":this.text=p,this.end=m,e=4;break;case"utf8":this.fillLast=l,e=4;break;case"base64":this.text=v,this.end=b,e=3;break;default:return this.write=g,void(this.end=y)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function u(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function h(t,e,r){var n=e.length-1;if(n=0?(i>0&&(t.lastNeed=i-1),i):--n=0?(i>0&&(t.lastNeed=i-2),i):--n=0?(i>0&&(2===i?i=0:t.lastNeed=i-3),i):0))}function f(t,e,r){if(128!==(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!==(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!==(192&e[2]))return t.lastNeed=2,"�"}}function l(t){var e=this.lastTotal-this.lastNeed,r=f(this,t,e);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function c(t,e){var r=h(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)}function d(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e}function p(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function m(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function v(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function b(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function g(t){return t.toString(this.encoding)}function y(t){return t&&t.length?this.write(t):""}e.StringDecoder=s,s.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),void 0===e)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>>31}function f(t){return t<<5|t>>>27}function l(t){return t<<30|t>>>2}function c(t,e,r,n){return 0===t?e&r|~e&n:2===t?e&r|e&n|r&n:e^r^n}n(u,i),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,s=0|this._e,u=0;u<16;++u)e[u]=t.readInt32BE(4*u);for(;u<80;++u)e[u]=h(e[u-3]^e[u-8]^e[u-14]^e[u-16]);for(var d=0;d<80;++d){var p=~~(d/20),m=f(r)+c(p,n,i,o)+s+e[d]+a[p]|0;s=o,o=i,i=l(n),n=r,r=m}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=o+this._d|0,this._e=s+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},"7f7a":function(t,e,r){var n=e;n.bignum=r("bc12"),n.define=r("ef3a").define,n.base=r("41df"),n.constants=r("0211"),n.decoders=r("20f6"),n.encoders=r("343e")},"7f9a":function(t,e,r){var n=r("da84"),i=r("8925"),o=n.WeakMap;t.exports="function"===typeof o&&/native code/.test(i(o))},8:function(t,e){},"80af":function(t,e,r){(function(t){(function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a=r(10).Buffer}catch(k){}function s(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}function v(t,e,r){var n=new b;return n.mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):n<63?d(this,t,e):n<1024?m(this,t,e):v(this,t,e),r},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(w,y),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return g[t]=e,e},S.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},i(A,S),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},"81d5":function(t,e,r){"use strict";var n=r("7b0b"),i=r("23cb"),o=r("50c4");t.exports=function(t){var e=n(this),r=o(e.length),a=arguments.length,s=i(a>1?arguments[1]:void 0,r),u=a>2?arguments[2]:void 0,h=void 0===u?r:i(u,r);while(h>s)e[s++]=t;return e}},"825a":function(t,e,r){var n=r("861d");t.exports=function(t){if(!n(t))throw TypeError(String(t)+" is not an object");return t}},"82f0":function(t,e,r){var n=r("39f5"),i=r("8707").Buffer,o=r("6430"),a=r("3fb5"),s=r("3f62"),u=r("8c8a"),h=r("bd9d");function f(t,e){var r=0;t.length!==e.length&&r++;for(var n=Math.min(t.length,e.length),i=0;i1?arguments[1]:void 0)}))},8360:function(t,e,r){var n=r("41df").Reporter,i=r("41df").EncoderBuffer,o=r("41df").DecoderBuffer,a=r("da3e"),s=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],u=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(s),h=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function f(t,e){var r={};this._baseState=r,r.enc=t,r.parent=e||null,r.children=null,r.tag=null,r.args=null,r.reverseArgs=null,r.choice=null,r.optional=!1,r.any=!1,r.obj=!1,r.use=null,r.useDecoder=null,r.key=null,r["default"]=null,r.explicit=null,r.implicit=null,r.contains=null,r.parent||(r.children=[],this._wrap())}t.exports=f;var l=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];f.prototype.clone=function(){var t=this._baseState,e={};l.forEach((function(r){e[r]=t[r]}));var r=new this.constructor(e.parent);return r._baseState=e,r},f.prototype._wrap=function(){var t=this._baseState;u.forEach((function(e){this[e]=function(){var r=new this.constructor(this);return t.children.push(r),r[e].apply(r,arguments)}}),this)},f.prototype._init=function(t){var e=this._baseState;a(null===e.parent),t.call(this),e.children=e.children.filter((function(t){return t._baseState.parent===this}),this),a.equal(e.children.length,1,"Root node can have only one child")},f.prototype._useArgs=function(t){var e=this._baseState,r=t.filter((function(t){return t instanceof this.constructor}),this);t=t.filter((function(t){return!(t instanceof this.constructor)}),this),0!==r.length&&(a(null===e.children),e.children=r,r.forEach((function(t){t._baseState.parent=this}),this)),0!==t.length&&(a(null===e.args),e.args=t,e.reverseArgs=t.map((function(t){if("object"!==typeof t||t.constructor!==Object)return t;var e={};return Object.keys(t).forEach((function(r){r==(0|r)&&(r|=0);var n=t[r];e[n]=r})),e})))},h.forEach((function(t){f.prototype[t]=function(){var e=this._baseState;throw new Error(t+" not implemented for encoding: "+e.enc)}})),s.forEach((function(t){f.prototype[t]=function(){var e=this._baseState,r=Array.prototype.slice.call(arguments);return a(null===e.tag),e.tag=t,this._useArgs(r),this}})),f.prototype.use=function(t){a(t);var e=this._baseState;return a(null===e.use),e.use=t,this},f.prototype.optional=function(){var t=this._baseState;return t.optional=!0,this},f.prototype.def=function(t){var e=this._baseState;return a(null===e["default"]),e["default"]=t,e.optional=!0,this},f.prototype.explicit=function(t){var e=this._baseState;return a(null===e.explicit&&null===e.implicit),e.explicit=t,this},f.prototype.implicit=function(t){var e=this._baseState;return a(null===e.explicit&&null===e.implicit),e.implicit=t,this},f.prototype.obj=function(){var t=this._baseState,e=Array.prototype.slice.call(arguments);return t.obj=!0,0!==e.length&&this._useArgs(e),this},f.prototype.key=function(t){var e=this._baseState;return a(null===e.key),e.key=t,this},f.prototype.any=function(){var t=this._baseState;return t.any=!0,this},f.prototype.choice=function(t){var e=this._baseState;return a(null===e.choice),e.choice=t,this._useArgs(Object.keys(t).map((function(e){return t[e]}))),this},f.prototype.contains=function(t){var e=this._baseState;return a(null===e.use),e.contains=t,this},f.prototype._decode=function(t,e){var r=this._baseState;if(null===r.parent)return t.wrapResult(r.children[0]._decode(t,e));var n,i=r["default"],a=!0,s=null;if(null!==r.key&&(s=t.enterKey(r.key)),r.optional){var u=null;if(null!==r.explicit?u=r.explicit:null!==r.implicit?u=r.implicit:null!==r.tag&&(u=r.tag),null!==u||r.any){if(a=this._peekTag(t,u,r.any),t.isError(a))return a}else{var h=t.save();try{null===r.choice?this._decodeGeneric(r.tag,t,e):this._decodeChoice(t,e),a=!0}catch(p){a=!1}t.restore(h)}}if(r.obj&&a&&(n=t.enterObject()),a){if(null!==r.explicit){var f=this._decodeTag(t,r.explicit);if(t.isError(f))return f;t=f}var l=t.offset;if(null===r.use&&null===r.choice){if(r.any)h=t.save();var c=this._decodeTag(t,null!==r.implicit?r.implicit:r.tag,r.any);if(t.isError(c))return c;r.any?i=t.raw(h):t=c}if(e&&e.track&&null!==r.tag&&e.track(t.path(),l,t.length,"tagged"),e&&e.track&&null!==r.tag&&e.track(t.path(),t.offset,t.length,"content"),i=r.any?i:null===r.choice?this._decodeGeneric(r.tag,t,e):this._decodeChoice(t,e),t.isError(i))return i;if(r.any||null!==r.choice||null===r.children||r.children.forEach((function(r){r._decode(t,e)})),r.contains&&("octstr"===r.tag||"bitstr"===r.tag)){var d=new o(i);i=this._getUse(r.contains,t._reporterState.obj)._decode(d,e)}}return r.obj&&a&&(i=t.leaveObject(n)),null===r.key||null===i&&!0!==a?null!==s&&t.exitKey(s):t.leaveKey(s,r.key,i),i},f.prototype._decodeGeneric=function(t,e,r){var n=this._baseState;return"seq"===t||"set"===t?null:"seqof"===t||"setof"===t?this._decodeList(e,t,n.args[0],r):/str$/.test(t)?this._decodeStr(e,t,r):"objid"===t&&n.args?this._decodeObjid(e,n.args[0],n.args[1],r):"objid"===t?this._decodeObjid(e,null,null,r):"gentime"===t||"utctime"===t?this._decodeTime(e,t,r):"null_"===t?this._decodeNull(e,r):"bool"===t?this._decodeBool(e,r):"objDesc"===t?this._decodeStr(e,t,r):"int"===t||"enum"===t?this._decodeInt(e,n.args&&n.args[0],r):null!==n.use?this._getUse(n.use,e._reporterState.obj)._decode(e,r):e.error("unknown tag: "+t)},f.prototype._getUse=function(t,e){var r=this._baseState;return r.useDecoder=this._use(t,e),a(null===r.useDecoder._baseState.parent),r.useDecoder=r.useDecoder._baseState.children[0],r.implicit!==r.useDecoder._baseState.implicit&&(r.useDecoder=r.useDecoder.clone(),r.useDecoder._baseState.implicit=r.implicit),r.useDecoder},f.prototype._decodeChoice=function(t,e){var r=this._baseState,n=null,i=!1;return Object.keys(r.choice).some((function(o){var a=t.save(),s=r.choice[o];try{var u=s._decode(t,e);if(t.isError(u))return!1;n={type:o,value:u},i=!0}catch(h){return t.restore(a),!1}return!0}),this),i?n:t.error("Choice not matched")},f.prototype._createEncoderBuffer=function(t){return new i(t,this.reporter)},f.prototype._encode=function(t,e,r){var n=this._baseState;if(null===n["default"]||n["default"]!==t){var i=this._encodeValue(t,e,r);if(void 0!==i&&!this._skipDefault(i,e,r))return i}},f.prototype._encodeValue=function(t,e,r){var i=this._baseState;if(null===i.parent)return i.children[0]._encode(t,e||new n);var o=null;if(this.reporter=e,i.optional&&void 0===t){if(null===i["default"])return;t=i["default"]}var a=null,s=!1;if(i.any)o=this._createEncoderBuffer(t);else if(i.choice)o=this._encodeChoice(t,e);else if(i.contains)a=this._getUse(i.contains,r)._encode(t,e),s=!0;else if(i.children)a=i.children.map((function(r){if("null_"===r._baseState.tag)return r._encode(null,e,t);if(null===r._baseState.key)return e.error("Child should have a key");var n=e.enterKey(r._baseState.key);if("object"!==typeof t)return e.error("Child expected, but input is not object");var i=r._encode(t[r._baseState.key],e,t);return e.leaveKey(n),i}),this).filter((function(t){return t})),a=this._createEncoderBuffer(a);else if("seqof"===i.tag||"setof"===i.tag){if(!i.args||1!==i.args.length)return e.error("Too many args for : "+i.tag);if(!Array.isArray(t))return e.error("seqof/setof, but data is not Array");var u=this.clone();u._baseState.implicit=null,a=this._createEncoderBuffer(t.map((function(r){var n=this._baseState;return this._getUse(n.args[0],t)._encode(r,e)}),u))}else null!==i.use?o=this._getUse(i.use,r)._encode(t,e):(a=this._encodePrimitive(i.tag,t),s=!0);if(!i.any&&null===i.choice){var h=null!==i.implicit?i.implicit:i.tag,f=null===i.implicit?"universal":"context";null===h?null===i.use&&e.error("Tag could be omitted only for .use()"):null===i.use&&(o=this._encodeComposite(h,s,f,a))}return null!==i.explicit&&(o=this._encodeComposite(i.explicit,!1,"context",o)),o},f.prototype._encodeChoice=function(t,e){var r=this._baseState,n=r.choice[t.type];return n||a(!1,t.type+" not found in "+JSON.stringify(Object.keys(r.choice))),n._encode(t.value,e)},f.prototype._encodePrimitive=function(t,e){var r=this._baseState;if(/str$/.test(t))return this._encodeStr(e,t);if("objid"===t&&r.args)return this._encodeObjid(e,r.reverseArgs[0],r.args[1]);if("objid"===t)return this._encodeObjid(e,null,null);if("gentime"===t||"utctime"===t)return this._encodeTime(e,t);if("null_"===t)return this._encodeNull();if("int"===t||"enum"===t)return this._encodeInt(e,r.args&&r.reverseArgs[0]);if("bool"===t)return this._encodeBool(e);if("objDesc"===t)return this._encodeStr(e,t);throw new Error("Unsupported tag: "+t)},f.prototype._isNumstr=function(t){return/^[0-9 ]*$/.test(t)},f.prototype._isPrintstr=function(t){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(t)}},"83ab":function(t,e,r){var n=r("d039");t.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},"83d5":function(t,e){t.exports=function(t,e){var r=t.length,n=-1;while(++n"+a+""}},"85b3":function(t,e,r){var n=r("3fb5"),i=r("3768");function o(t){i.call(this,t),this.enc="pem"}n(o,i),t.exports=o,o.prototype.encode=function(t,e){for(var r=i.prototype.encode.call(this,t),n=r.toString("base64"),o=["-----BEGIN "+e.label+"-----"],a=0;a15){var t=this.cache.slice(0,16);return this.cache=this.cache.slice(16),t}return null},d.prototype.flush=function(){var t=16-this.cache.length,e=o.allocUnsafe(t),r=-1;while(++r>1,f=-7,l=r?i-1:0,c=r?-1:1,d=t[e+l];for(l+=c,o=d&(1<<-f)-1,d>>=-f,f+=s;f>0;o=256*o+t[e+l],l+=c,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=n;f>0;a=256*a+t[e+l],l+=c,f-=8);if(0===o)o=1-h;else{if(o===u)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),o-=h}return(d?-1:1)*a*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var a,s,u,h=8*o-i-1,f=(1<>1,c=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=f):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),e+=a+l>=1?c/u:c*Math.pow(2,1-l),e*u>=2&&(a++,u/=2),a+l>=f?(s=0,a=f):a+l>=1?(s=(e*u-1)*Math.pow(2,i),a+=l):(s=e*Math.pow(2,l-1)*Math.pow(2,i),a=0));i>=8;t[r+d]=255&s,d+=p,s/=256,i-=8);for(a=a<0;t[r+d]=255&a,d+=p,a/=256,h-=8);t[r+d-p]|=128*m}},"919c":function(t,e){t.exports=function(){throw new Error("Readable.from is not available in the browser")}},9263:function(t,e,r){"use strict";var n=r("ad6d"),i=r("9f7f"),o=RegExp.prototype.exec,a=String.prototype.replace,s=o,u=function(){var t=/a/,e=/b*/g;return o.call(t,"a"),o.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),h=i.UNSUPPORTED_Y||i.BROKEN_CARET,f=void 0!==/()??/.exec("")[1],l=u||f||h;l&&(s=function(t){var e,r,i,s,l=this,c=h&&l.sticky,d=n.call(l),p=l.source,m=0,v=t;return c&&(d=d.replace("y",""),-1===d.indexOf("g")&&(d+="g"),v=String(t).slice(l.lastIndex),l.lastIndex>0&&(!l.multiline||l.multiline&&"\n"!==t[l.lastIndex-1])&&(p="(?: "+p+")",v=" "+v,m++),r=new RegExp("^(?:"+p+")",d)),f&&(r=new RegExp("^"+p+"$(?!\\s)",d)),u&&(e=l.lastIndex),i=o.call(c?r:l,v),c?i?(i.input=i.input.slice(m),i[0]=i[0].slice(m),i.index=l.lastIndex,l.lastIndex+=i[0].length):l.lastIndex=0:u&&i&&(l.lastIndex=l.global?i.index+i[0].length:e),f&&i&&i.length>1&&a.call(i[0],r,(function(){for(s=1;s=this._blockSize){for(var o=this._blockOffset;o0;++s)this._length[s]+=u,u=this._length[s]/4294967296|0,u>0&&(this._length[s]-=4294967296*u);return this},s.prototype._update=function(){throw new Error("_update is not implemented")},s.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return e},s.prototype._digest=function(){throw new Error("_digest is not implemented")},t.exports=s},"945d":function(t,e,r){"use strict";var n=r("7d92"),i=r("0cbb"),o=r("f3a3"),a=o.assert,s=o.parseBytes,u=r("380f"),h=r("44a3");function f(t){if(a("ed25519"===t,"only tested with ed25519 so far"),!(this instanceof f))return new f(t);t=i[t].curve;this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=n.sha512}t.exports=f,f.prototype.sign=function(t,e){t=s(t);var r=this.keyFromSecret(e),n=this.hashInt(r.messagePrefix(),t),i=this.g.mul(n),o=this.encodePoint(i),a=this.hashInt(o,r.pubBytes(),t).mul(r.priv()),u=n.add(a).umod(this.curve.n);return this.makeSignature({R:i,S:u,Rencoded:o})},f.prototype.verify=function(t,e,r){t=s(t),e=this.makeSignature(e);var n=this.keyFromPublic(r),i=this.hashInt(e.Rencoded(),n.pubBytes(),t),o=this.g.mul(e.S()),a=e.R().add(n.pub().mul(i));return a.eq(o)},f.prototype.hashInt=function(){for(var t=this.hash(),e=0;e0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";var e=this.head,r=""+e.data;while(e=e.next)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return f.alloc(0);var e=f.allocUnsafe(t>>>0),r=this.head,n=0;while(r)p(r.data,e,n),n+=r.data.length,r=r.next;return e}},{key:"consume",value:function(t,e){var r;return ti.length?i.length:t;if(o===i.length?n+=i:n+=i.slice(0,t),t-=o,0===t){o===i.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=i.slice(o));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(t){var e=f.allocUnsafe(t),r=this.head,n=1;r.data.copy(e),t-=r.data.length;while(r=r.next){var i=r.data,o=t>i.length?i.length:t;if(i.copy(e,e.length-t,0,o),t-=o,0===t){o===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(o));break}++n}return this.length-=n,e}},{key:d,value:function(t,e){return c(this,i({},e,{depth:0,customInspect:!1}))}}]),t}()},"96cf":function(t,e,r){var n=function(t){"use strict";var e,r=Object.prototype,n=r.hasOwnProperty,i="function"===typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(O){u=function(t,e,r){return t[e]=r}}function h(t,e,r,n){var i=e&&e.prototype instanceof v?e:v,o=Object.create(i.prototype),a=new $(n||[]);return o._invoke=A(t,r,a),o}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(O){return{type:"throw",arg:O}}}t.wrap=h;var l="suspendedStart",c="suspendedYield",d="executing",p="completed",m={};function v(){}function b(){}function g(){}var y={};y[o]=function(){return this};var w=Object.getPrototypeOf,M=w&&w(w(T([])));M&&M!==r&&n.call(M,o)&&(y=M);var _=g.prototype=v.prototype=Object.create(y);function E(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function S(t,e){function r(i,o,a,s){var u=f(t[i],t,o);if("throw"!==u.type){var h=u.arg,l=h.value;return l&&"object"===typeof l&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,s)}),(function(t){r("throw",t,a,s)})):e.resolve(l).then((function(t){h.value=t,a(h)}),(function(t){return r("throw",t,a,s)}))}s(u.arg)}var i;function o(t,n){function o(){return new e((function(e,i){r(t,n,e,i)}))}return i=i?i.then(o,o):o()}this._invoke=o}function A(t,e,r){var n=l;return function(i,o){if(n===d)throw new Error("Generator is already running");if(n===p){if("throw"===i)throw o;return I()}r.method=i,r.arg=o;while(1){var a=r.delegate;if(a){var s=k(a,r);if(s){if(s===m)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===l)throw n=p,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=d;var u=f(t,e,r);if("normal"===u.type){if(n=r.done?p:c,u.arg===m)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n=p,r.method="throw",r.arg=u.arg)}}}function k(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,"throw"===r.method){if(t.iterator["return"]&&(r.method="return",r.arg=e,k(t,r),"throw"===r.method))return m;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var i=f(n,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var o=i.arg;return o?o.done?(r[t.resultName]=o.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function R(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function $(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function T(t){if(t){var r=t[o];if(r)return r.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function r(){while(++i=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),h=n.call(a,"finallyLoc");if(u&&h){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),R(r),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;R(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}(t.exports);try{regeneratorRuntime=n}catch(i){Function("r","regeneratorRuntime = r")(n)}},"980c":function(t,e,r){var n=r("39a9").Buffer,i=r("399f"),o=r("3337").ec,a=r("2aee"),s=r("cd91");function u(t,e,r,o,s){var u=a(r);if("ec"===u.type){if("ecdsa"!==o&&"ecdsa/rsa"!==o)throw new Error("wrong public key type");return h(t,e,u)}if("dsa"===u.type){if("dsa"!==o)throw new Error("wrong public key type");return f(t,e,u)}if("rsa"!==o&&"ecdsa/rsa"!==o)throw new Error("wrong public key type");e=n.concat([s,e]);var l=u.modulus.byteLength(),c=[1],d=0;while(e.length+c.length+2=e)throw new Error("invalid sig")}t.exports=u},"98e6":function(t,e,r){"use strict";var n=r("3fb5"),i=r("f576"),o=r("b5ca"),a=r("69f2"),s=r("6430");function u(t){s.call(this,"digest"),this._hash=t}n(u,s),u.prototype._update=function(t){this._hash.update(t)},u.prototype._final=function(){return this._hash.digest()},t.exports=function(t){return t=t.toLowerCase(),"md5"===t?new i:"rmd160"===t||"ripemd160"===t?new o:new u(a(t))}},9911:function(t,e,r){"use strict";var n=r("23e7"),i=r("857a"),o=r("af03");n({target:"String",proto:!0,forced:o("link")},{link:function(t){return i(this,"a","href",t)}})},"99af":function(t,e,r){"use strict";var n=r("23e7"),i=r("d039"),o=r("e8b5"),a=r("861d"),s=r("7b0b"),u=r("50c4"),h=r("8418"),f=r("65f0"),l=r("1dde"),c=r("b622"),d=r("2d00"),p=c("isConcatSpreadable"),m=9007199254740991,v="Maximum allowed index exceeded",b=d>=51||!i((function(){var t=[];return t[p]=!1,t.concat()[0]!==t})),g=l("concat"),y=function(t){if(!a(t))return!1;var e=t[p];return void 0!==e?!!e:o(t)},w=!b||!g;n({target:"Array",proto:!0,forced:w},{concat:function(t){var e,r,n,i,o,a=s(this),l=f(a,0),c=0;for(e=-1,n=arguments.length;em)throw TypeError(v);for(r=0;r=m)throw TypeError(v);h(l,c++,o)}return l.length=c,l}})},"9a8c":function(t,e,r){"use strict";var n=r("ebb5"),i=r("145e"),o=n.aTypedArray,a=n.exportTypedArrayMethod;a("copyWithin",(function(t,e){return i.call(o(this),t,e,arguments.length>2?arguments[2]:void 0)}))},"9bdd":function(t,e,r){var n=r("825a");t.exports=function(t,e,r,i){try{return i?e(n(r)[0],r[1]):e(r)}catch(a){var o=t["return"];throw void 0!==o&&n(o.call(t)),a}}},"9bf2":function(t,e,r){var n=r("83ab"),i=r("0cfb"),o=r("825a"),a=r("c04e"),s=Object.defineProperty;e.f=n?s:function(t,e,r){if(o(t),e=a(e,!0),o(r),i)try{return s(t,e,r)}catch(n){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},"9d28":function(t,e,r){"use strict";t.exports=i;var n=r("f1c8");function i(t){if(!(this instanceof i))return new i(t);n.call(this,t)}r("3fb5")(i,n),i.prototype._transform=function(t,e,r){r(null,t)}},"9d8a":function(t,e,r){"use strict";function n(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var i={};function o(t,e,r){function o(t,r,n){return"string"===typeof e?e:e(t,r,n)}r||(r=Error);var a=function(t){function e(e,r,n){return t.call(this,o(e,r,n))||this}return n(e,t),e}(r);a.prototype.name=r.name,a.prototype.code=t,i[t]=a}function a(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map((function(t){return String(t)})),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}function s(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function u(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function h(t,e,r){return"number"!==typeof r&&(r=0),!(r+e.length>t.length)&&-1!==t.indexOf(e,r)}o("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),o("ERR_INVALID_ARG_TYPE",(function(t,e,r){var n,i;if("string"===typeof e&&s(e,"not ")?(n="must not be",e=e.replace(/^not /,"")):n="must be",u(t," argument"))i="The ".concat(t," ").concat(n," ").concat(a(e,"type"));else{var o=h(t,".")?"property":"argument";i='The "'.concat(t,'" ').concat(o," ").concat(n," ").concat(a(e,"type"))}return i+=". Received type ".concat(typeof r),i}),TypeError),o("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),o("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),o("ERR_STREAM_PREMATURE_CLOSE","Premature close"),o("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),o("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),o("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),o("ERR_STREAM_WRITE_AFTER_END","write after end"),o("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),o("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),o("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.codes=i},"9ed3":function(t,e,r){"use strict";var n=r("ae93").IteratorPrototype,i=r("7c73"),o=r("5c6c"),a=r("d44e"),s=r("3f8c"),u=function(){return this};t.exports=function(t,e,r){var h=e+" Iterator";return t.prototype=i(n,{next:o(1,r)}),a(t,h,!1,!0),s[h]=u,t}},"9f7f":function(t,e,r){"use strict";var n=r("d039");function i(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=n((function(){var t=i("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=n((function(){var t=i("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},"9f9d":function(t,e,r){(function(e){var r;if(e.browser)r="utf-8";else if(e.version){var n=parseInt(e.version.split(".")[0].slice(1),10);r=n>=6?"utf-8":"binary"}else r="utf-8";t.exports=r}).call(this,r("4362"))},a078:function(t,e,r){var n=r("7b0b"),i=r("50c4"),o=r("35a1"),a=r("e95a"),s=r("0366"),u=r("ebb5").aTypedArrayConstructor;t.exports=function(t){var e,r,h,f,l,c,d=n(t),p=arguments.length,m=p>1?arguments[1]:void 0,v=void 0!==m,b=o(d);if(void 0!=b&&!a(b)){l=b.call(d),c=l.next,d=[];while(!(f=c.call(l)).done)d.push(f.value)}for(v&&p>2&&(m=s(m,arguments[2],2)),r=i(d.length),h=new(u(this))(r),e=0;r>e;e++)h[e]=v?m(d[e],e):d[e];return h}},a099:function(t,e,r){e.pbkdf2=r("206d"),e.pbkdf2Sync=r("e07b")},a15b:function(t,e,r){"use strict";var n=r("23e7"),i=r("44ad"),o=r("fc6a"),a=r("a640"),s=[].join,u=i!=Object,h=a("join",",");n({target:"Array",proto:!0,forced:u||!h},{join:function(t){return s.call(o(this),void 0===t?",":t)}})},a255:function(t,e,r){var n=r("3fb5"),i=r("b672"),o=r("8707").Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function u(){this.init(),this._w=s,i.call(this,64,56)}function h(t,e,r){return r^t&(e^r)}function f(t,e,r){return t&e|r&(t|e)}function l(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function c(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function d(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}function p(t){return(t>>>17|t<<15)^(t>>>19|t<<13)^t>>>10}n(u,i),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,s=0|this._e,u=0|this._f,m=0|this._g,v=0|this._h,b=0;b<16;++b)e[b]=t.readInt32BE(4*b);for(;b<64;++b)e[b]=p(e[b-2])+e[b-7]+d(e[b-15])+e[b-16]|0;for(var g=0;g<64;++g){var y=v+c(s)+h(s,u,m)+a[g]+e[g]|0,w=l(r)+f(r,n,i)|0;v=m,m=u,u=s,s=o+y|0,o=i,i=n,n=r,r=y+w|0}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=o+this._d|0,this._e=s+this._e|0,this._f=u+this._f|0,this._g=m+this._g|0,this._h=v+this._h|0},u.prototype._hash=function(){var t=o.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},t.exports=u},a25c:function(t,e,r){(function(t){(function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a=r(9).Buffer}catch(k){}function s(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}function v(t,e,r){var n=new b;return n.mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):n<63?d(this,t,e):n<1024?m(this,t,e):v(this,t,e),r},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(w,y),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return g[t]=e,e},S.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},i(A,S),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},a434:function(t,e,r){"use strict";var n=r("23e7"),i=r("23cb"),o=r("a691"),a=r("50c4"),s=r("7b0b"),u=r("65f0"),h=r("8418"),f=r("1dde"),l=r("ae40"),c=f("splice"),d=l("splice",{ACCESSORS:!0,0:0,1:2}),p=Math.max,m=Math.min,v=9007199254740991,b="Maximum allowed length exceeded";n({target:"Array",proto:!0,forced:!c||!d},{splice:function(t,e){var r,n,f,l,c,d,g=s(this),y=a(g.length),w=i(t,y),M=arguments.length;if(0===M?r=n=0:1===M?(r=0,n=y-w):(r=M-2,n=m(p(o(e),0),y-w)),y+r-n>v)throw TypeError(b);for(f=u(g,n),l=0;ly-n+r;l--)delete g[l-1]}else if(r>n)for(l=y-n;l>w;l--)c=l+n-1,d=l+r-1,c in g?g[d]=g[c]:delete g[d];for(l=0;lo)i.push(arguments[o++]);if(n=e,(d(e)||void 0!==t)&&!st(t))return c(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!st(e))return e}),i[1]=e,Z.apply(null,i)}})}W[U][F]||x(W[U],F,W[U].valueOf),N(W,q),I[j]=!0},a630:function(t,e,r){var n=r("23e7"),i=r("4df4"),o=r("1c7e"),a=!o((function(t){Array.from(t)}));n({target:"Array",stat:!0,forced:a},{from:i})},a640:function(t,e,r){"use strict";var n=r("d039");t.exports=function(t,e){var r=[][t];return!!r&&n((function(){r.call(null,e||function(){throw 1},1)}))}},a691:function(t,e){var r=Math.ceil,n=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?n:r)(t)}},a692:function(t,e,r){"use strict";function n(t){return!!t&&("object"===typeof t||"function"===typeof t)&&"function"===typeof t.then}function i(t){function e(t,e,r,n){function i(e){"function"!==typeof self.postMessage?t.ports[0].postMessage(e):self.postMessage(e)}r?("undefined"!==typeof console&&"error"in console&&console.error("Worker caught an error:",r),i([e,{message:r.message}])):i([e,null,n])}function r(t,e){try{return{res:t(e)}}catch(r){return{err:r}}}function i(t,i,o,a){var s=r(i,a);s.err?e(t,o,s.err):n(s.res)?s.res.then((function(r){e(t,o,null,r)}),(function(r){e(t,o,r)})):e(t,o,null,s.res)}function o(r){var n=r.data;if(Array.isArray(n)&&2===n.length){var o=n[0],a=n[1];"function"!==typeof t?e(r,o,new Error("Please pass a function into register().")):i(r,t,o,a)}}self.addEventListener("message",o)}t.exports=i},a874:function(t,e,r){var n=r("23e7"),i=r("145e"),o=r("44d2");n({target:"Array",proto:!0},{copyWithin:i}),o("copyWithin")},a958:function(t,e,r){(function(e){var n=r("a25c"),i=r("11dc");function o(t){var e=s(t),r=e.toRed(n.mont(t.modulus)).redPow(new n(t.publicExponent)).fromRed();return{blinder:r,unblinder:e.invm(t.modulus)}}function a(t,r){var i=o(r),a=r.modulus.byteLength(),s=(n.mont(r.modulus),new n(t).mul(i.blinder).umod(r.modulus)),u=s.toRed(n.mont(r.prime1)),h=s.toRed(n.mont(r.prime2)),f=r.coefficient,l=r.prime1,c=r.prime2,d=u.redPow(r.exponent1),p=h.redPow(r.exponent2);d=d.fromRed(),p=p.fromRed();var m=d.isub(p).imul(f).umod(l);return m.imul(c),p.iadd(m),new e(p.imul(i.unblinder).umod(r.modulus).toArray(!1,a))}function s(t){var e=t.modulus.byteLength(),r=new n(i(e));while(r.cmp(t.modulus)>=0||!r.umod(t.prime1)||!r.umod(t.prime2))r=new n(i(e));return r}t.exports=a,a.getr=s}).call(this,r("b639").Buffer)},a975:function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").every,o=n.aTypedArray,a=n.exportTypedArrayMethod;a("every",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},a981:function(t,e){t.exports="undefined"!==typeof ArrayBuffer&&"undefined"!==typeof DataView},a9e3:function(t,e,r){"use strict";var n=r("83ab"),i=r("da84"),o=r("94ca"),a=r("6eeb"),s=r("5135"),u=r("c6b6"),h=r("7156"),f=r("c04e"),l=r("d039"),c=r("7c73"),d=r("241c").f,p=r("06cf").f,m=r("9bf2").f,v=r("58a8").trim,b="Number",g=i[b],y=g.prototype,w=u(c(y))==b,M=function(t){var e,r,n,i,o,a,s,u,h=f(t,!1);if("string"==typeof h&&h.length>2)if(h=v(h),e=h.charCodeAt(0),43===e||45===e){if(r=h.charCodeAt(2),88===r||120===r)return NaN}else if(48===e){switch(h.charCodeAt(1)){case 66:case 98:n=2,i=49;break;case 79:case 111:n=8,i=55;break;default:return+h}for(o=h.slice(2),a=o.length,s=0;si)return NaN;return parseInt(o,n)}return+h};if(o(b,!g(" 0o1")||!g("0b1")||g("+0x1"))){for(var _,E=function(t){var e=arguments.length<1?0:t,r=this;return r instanceof E&&(w?l((function(){y.valueOf.call(r)})):u(r)!=b)?h(new g(M(e)),r,E):M(e)},S=n?d(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),A=0;S.length>A;A++)s(g,_=S[A])&&!s(E,_)&&m(E,_,p(g,_));E.prototype=y,y.constructor=E,a(i,b,E)}},aa56:function(t,e,r){"use strict";var n=r("c3c0"),i=n.rotr32;function o(t,e,r,n){return 0===t?a(e,r,n):1===t||3===t?u(e,r,n):2===t?s(e,r,n):void 0}function a(t,e,r){return t&e^~t&r}function s(t,e,r){return t&e^t&r^e&r}function u(t,e,r){return t^e^r}function h(t){return i(t,2)^i(t,13)^i(t,22)}function f(t){return i(t,6)^i(t,11)^i(t,25)}function l(t){return i(t,7)^i(t,18)^t>>>3}function c(t){return i(t,17)^i(t,19)^t>>>10}e.ft_1=o,e.ch32=a,e.maj32=s,e.p32=u,e.s0_256=h,e.s1_256=f,e.g0_256=l,e.g1_256=c},ab13:function(t,e,r){var n=r("b622"),i=n("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(r){try{return e[i]=!1,"/./"[t](e)}catch(n){}}return!1}},ac1f:function(t,e,r){"use strict";var n=r("23e7"),i=r("9263");n({target:"RegExp",proto:!0,forced:/./.exec!==i},{exec:i})},ac4f:function(t,e,r){"use strict";var n;function i(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var o=r("d113").codes,a=o.ERR_MISSING_ARGS,s=o.ERR_STREAM_DESTROYED;function u(t){if(t)throw t}function h(t){return t.setHeader&&"function"===typeof t.abort}function f(t,e,o,a){a=i(a);var u=!1;t.on("close",(function(){u=!0})),void 0===n&&(n=r("42a7")),n(t,{readable:e,writable:o},(function(t){if(t)return a(t);u=!0,a()}));var f=!1;return function(e){if(!u&&!f)return f=!0,h(t)?t.abort():"function"===typeof t.destroy?t.destroy():void a(e||new s("pipe"))}}function l(t){t()}function c(t,e){return t.pipe(e)}function d(t){return t.length?"function"!==typeof t[t.length-1]?u:t.pop():u}function p(){for(var t=arguments.length,e=new Array(t),r=0;r0;return f(t,a,s,(function(t){n||(n=t),t&&o.forEach(l),a||(o.forEach(l),i(n))}))}));return e.reduce(c)}t.exports=p},acac:function(t,e,r){"use strict";var n=r("e2cc"),i=r("f183").getWeakData,o=r("825a"),a=r("861d"),s=r("19aa"),u=r("2266"),h=r("b727"),f=r("5135"),l=r("69f3"),c=l.set,d=l.getterFor,p=h.find,m=h.findIndex,v=0,b=function(t){return t.frozen||(t.frozen=new g)},g=function(){this.entries=[]},y=function(t,e){return p(t.entries,(function(t){return t[0]===e}))};g.prototype={get:function(t){var e=y(this,t);if(e)return e[1]},has:function(t){return!!y(this,t)},set:function(t,e){var r=y(this,t);r?r[1]=e:this.entries.push([t,e])},delete:function(t){var e=m(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,r,h){var l=t((function(t,n){s(t,l,e),c(t,{type:e,id:v++,frozen:void 0}),void 0!=n&&u(n,t[h],t,r)})),p=d(e),m=function(t,e,r){var n=p(t),a=i(o(e),!0);return!0===a?b(n).set(e,r):a[n.id]=r,t};return n(l.prototype,{delete:function(t){var e=p(this);if(!a(t))return!1;var r=i(t);return!0===r?b(e)["delete"](t):r&&f(r,e.id)&&delete r[e.id]},has:function(t){var e=p(this);if(!a(t))return!1;var r=i(t);return!0===r?b(e).has(t):r&&f(r,e.id)}}),n(l.prototype,r?{get:function(t){var e=p(this);if(a(t)){var r=i(t);return!0===r?b(e).get(t):r?r[e.id]:void 0}},set:function(t,e){return m(this,t,e)}}:{add:function(t){return m(this,t,!0)}}),l}}},ad25:function(t,e,r){var n=r("2aee"),i=r("11dc"),o=r("98e6"),a=r("f460"),s=r("83d5"),u=r("0106"),h=r("5291"),f=r("a958"),l=r("8707").Buffer;function c(t,e){var r=t.modulus.byteLength(),n=e.length,h=o("sha1").update(l.alloc(0)).digest(),f=h.length,c=2*f;if(n>r-c-2)throw new Error("message too long");var d=l.alloc(r-n-c-2),p=r-f-1,m=i(f),v=s(l.concat([h,d,l.alloc(1,1),e],p),a(m,p)),b=s(m,a(v,f));return new u(l.concat([l.alloc(1),b,v],r))}function d(t,e,r){var n,i=e.length,o=t.modulus.byteLength();if(i>o-11)throw new Error("message too long");return n=r?l.alloc(o-i-3,255):p(o-i-3),new u(l.concat([l.from([0,r?1:2]),n,l.alloc(1),e],o))}function p(t){var e,r=l.allocUnsafe(t),n=0,o=i(2*t),a=0;while(n=0)throw new Error("data too long for modulus")}return r?f(o,a):h(o,a)}},ad6d:function(t,e,r){"use strict";var n=r("825a");t.exports=function(){var t=n(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},ad71:function(t,e,r){"use strict";(function(e,n){var i=r("966d");t.exports=_;var o,a=r("e3db");_.ReadableState=M;r("faa1").EventEmitter;var s=function(t,e){return t.listeners(e).length},u=r("429b"),h=r("8707").Buffer,f=e.Uint8Array||function(){};function l(t){return h.from(t)}function c(t){return h.isBuffer(t)||t instanceof f}var d=Object.create(r("3a7c"));d.inherits=r("3fb5");var p=r(2),m=void 0;m=p&&p.debuglog?p.debuglog("stream"):function(){};var v,b=r("5e1a"),g=r("4681");d.inherits(_,u);var y=["error","close","destroy","pause","resume"];function w(t,e,r){if("function"===typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?a(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}function M(t,e){o=o||r("b19a"),t=t||{};var n=e instanceof o;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,a=t.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new b,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(v||(v=r("7d72").StringDecoder),this.decoder=new v(t.encoding),this.encoding=t.encoding)}function _(t){if(o=o||r("b19a"),!(this instanceof _))return new _(t);this._readableState=new M(t,this),this.readable=!0,t&&("function"===typeof t.read&&(this._read=t.read),"function"===typeof t.destroy&&(this._destroy=t.destroy)),u.call(this)}function E(t,e,r,n,i){var o,a=t._readableState;null===e?(a.reading=!1,T(t,a)):(i||(o=A(a,e)),o?t.emit("error",o):a.objectMode||e&&e.length>0?("string"===typeof e||a.objectMode||Object.getPrototypeOf(e)===h.prototype||(e=l(e)),n?a.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):S(t,a,e,!0):a.ended?t.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?S(t,a,e,!1):C(t,a)):S(t,a,e,!1))):n||(a.reading=!1));return k(a)}function S(t,e,r,n){e.flowing&&0===e.length&&!e.sync?(t.emit("data",r),t.read(0)):(e.length+=e.objectMode?1:r.length,n?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&I(t)),C(t,e)}function A(t,e){var r;return c(e)||"string"===typeof e||void 0===e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk")),r}function k(t){return!t.ended&&(t.needReadable||t.length=x?t=x:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function $(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=R(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function T(t,e){if(!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,I(t)}}function I(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(m("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?i.nextTick(O,t):O(t))}function O(t){m("emit readable"),t.emit("readable"),j(t)}function C(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(B,t,e))}function B(t,e){var r=e.length;while(!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=U(t,e.buffer,e.decoder),r);var r}function U(t,e,r){var n;return to.length?o.length:t;if(a===o.length?i+=o:i+=o.slice(0,t),t-=a,0===t){a===o.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(a));break}++n}return e.length-=n,i}function z(t,e){var r=h.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;while(n=n.next){var o=n.data,a=t>o.length?o.length:t;if(o.copy(r,r.length-t,0,a),t-=a,0===t){a===o.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(a));break}++i}return e.length-=i,r}function H(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,i.nextTick(K,e,t))}function K(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function W(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return m("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?H(this):I(this),null;if(t=$(t,e),0===t&&e.ended)return 0===e.length&&H(this),null;var n,i=e.needReadable;return m("need readable",i),(0===e.length||e.length-t0?q(t,e):null,null===n?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&H(this)),null!==n&&this.emit("data",n),n},_.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},_.prototype.pipe=function(t,e){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t);break}o.pipesCount+=1,m("pipe count=%d opts=%j",o.pipesCount,e);var a=(!e||!1!==e.end)&&t!==n.stdout&&t!==n.stderr,u=a?f:M;function h(t,e){m("onunpipe"),t===r&&e&&!1===e.hasUnpiped&&(e.hasUnpiped=!0,d())}function f(){m("onend"),t.end()}o.endEmitted?i.nextTick(u):r.once("end",u),t.on("unpipe",h);var l=L(r);t.on("drain",l);var c=!1;function d(){m("cleanup"),t.removeListener("close",g),t.removeListener("finish",y),t.removeListener("drain",l),t.removeListener("error",b),t.removeListener("unpipe",h),r.removeListener("end",f),r.removeListener("end",M),r.removeListener("data",v),c=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||l()}var p=!1;function v(e){m("ondata"),p=!1;var n=t.write(e);!1!==n||p||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==W(o.pipes,t))&&!c&&(m("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,p=!0),r.pause())}function b(e){m("onerror",e),M(),t.removeListener("error",b),0===s(t,"error")&&t.emit("error",e)}function g(){t.removeListener("finish",y),M()}function y(){m("onfinish"),t.removeListener("close",g),M()}function M(){m("unpipe"),r.unpipe(t)}return r.on("data",v),w(t,"error",b),t.once("close",g),t.once("finish",y),t.emit("pipe",r),o.flowing||(m("pipe resume"),r.resume()),t},_.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0||o>0){var f=new i;f.update(h),f.update(t),e&&f.update(e),h=f.digest();var l=0;if(a>0){var c=s.length-a;l=Math.min(a,h.length),h.copy(s,c,0,l),a-=l}if(l0){var d=u.length-o,p=Math.min(o,h.length-l);h.copy(u,d,l,l+p),o-=p}}return h.fill(0),{key:s,iv:u}}t.exports=o},ae93:function(t,e,r){"use strict";var n,i,o,a=r("e163"),s=r("9112"),u=r("5135"),h=r("b622"),f=r("c430"),l=h("iterator"),c=!1,d=function(){return this};[].keys&&(o=[].keys(),"next"in o?(i=a(a(o)),i!==Object.prototype&&(n=i)):c=!0),void 0==n&&(n={}),f||u(n,l)||s(n,l,d),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:c}},af03:function(t,e,r){var n=r("d039");t.exports=function(t){return n((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}))}},b041:function(t,e,r){"use strict";var n=r("00ee"),i=r("f5df");t.exports=n?{}.toString:function(){return"[object "+i(this)+"]"}},b0c0:function(t,e,r){var n=r("83ab"),i=r("9bf2").f,o=Function.prototype,a=o.toString,s=/^\s*function ([^ (]*)/,u="name";n&&!(u in o)&&i(o,u,{configurable:!0,get:function(){try{return a.call(this).match(s)[1]}catch(t){return""}}})},b19a:function(t,e,r){"use strict";var n=r("966d"),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=l;var o=Object.create(r("3a7c"));o.inherits=r("3fb5");var a=r("ad71"),s=r("dc14");o.inherits(l,a);for(var u=i(s.prototype),h=0;h>>32-e}function m(t,e,r,n,i,o,a,s){return p(t+(e^r^n)+o+a|0,s)+i|0}function v(t,e,r,n,i,o,a,s){return p(t+(e&r|~e&n)+o+a|0,s)+i|0}function b(t,e,r,n,i,o,a,s){return p(t+((e|~r)^n)+o+a|0,s)+i|0}function g(t,e,r,n,i,o,a,s){return p(t+(e&n|r&~n)+o+a|0,s)+i|0}function y(t,e,r,n,i,o,a,s){return p(t+(e^(r|~n))+o+a|0,s)+i|0}i(d,o),d.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);for(var r=0|this._a,n=0|this._b,i=0|this._c,o=0|this._d,d=0|this._e,w=0|this._a,M=0|this._b,_=0|this._c,E=0|this._d,S=0|this._e,A=0;A<80;A+=1){var k,x;A<16?(k=m(r,n,i,o,d,t[s[A]],l[0],h[A]),x=y(w,M,_,E,S,t[u[A]],c[0],f[A])):A<32?(k=v(r,n,i,o,d,t[s[A]],l[1],h[A]),x=g(w,M,_,E,S,t[u[A]],c[1],f[A])):A<48?(k=b(r,n,i,o,d,t[s[A]],l[2],h[A]),x=b(w,M,_,E,S,t[u[A]],c[2],f[A])):A<64?(k=g(r,n,i,o,d,t[s[A]],l[3],h[A]),x=v(w,M,_,E,S,t[u[A]],c[3],f[A])):(k=y(r,n,i,o,d,t[s[A]],l[4],h[A]),x=m(w,M,_,E,S,t[u[A]],c[4],f[A])),r=d,d=o,o=p(i,10),i=n,n=k,w=S,S=E,E=p(_,10),_=M,M=x}var R=this._b+i+E|0;this._b=this._c+o+S|0,this._c=this._d+d+w|0,this._d=this._e+r+M|0,this._e=this._a+n+_|0,this._a=R},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=n.alloc?n.alloc(20):new n(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},t.exports=d},b622:function(t,e,r){var n=r("da84"),i=r("5692"),o=r("5135"),a=r("90e3"),s=r("4930"),u=r("fdbf"),h=i("wks"),f=n.Symbol,l=u?f:f&&f.withoutSetter||a;t.exports=function(t){return o(h,t)||(s&&o(f,t)?h[t]=f[t]:h[t]=l("Symbol."+t)),h[t]}},b639:function(t,e,r){"use strict";(function(t){ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +var n=r("1fb5"),i=r("9152"),o=r("e3db");function a(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"===typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(e){return!1}}function s(){return h.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function u(t,e){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function y(t){return+t!=t&&(t=0),h.alloc(+t)}function w(t,e){if(h.isBuffer(t))return t.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!==typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return V(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Q(t).length;default:if(n)return V(t).length;e=(""+e).toLowerCase(),n=!0}}function M(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,e>>>=0,r<=e)return"";t||(t="utf8");while(1)switch(t){case"hex":return P(this,e,r);case"utf8":case"utf-8":return O(this,e,r);case"ascii":return L(this,e,r);case"latin1":case"binary":return N(this,e,r);case"base64":return I(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function _(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function E(t,e,r,n,i){if(0===t.length)return-1;if("string"===typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"===typeof e&&(e=h.from(e,n)),h.isBuffer(e))return 0===e.length?-1:S(t,e,r,n,i);if("number"===typeof e)return e&=255,h.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):S(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function S(t,e,r,n,i){var o,a=1,s=t.length,u=e.length;if(void 0!==n&&(n=String(n).toLowerCase(),"ucs2"===n||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,r/=2}function h(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){var f=-1;for(o=r;os&&(r=s-u),o=r;o>=0;o--){for(var l=!0,c=0;ci&&(n=i)):n=i;var o=e.length;if(o%2!==0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a239?4:h>223?3:h>191?2:1;if(i+l<=r)switch(l){case 1:h<128&&(f=h);break;case 2:o=t[i+1],128===(192&o)&&(u=(31&h)<<6|63&o,u>127&&(f=u));break;case 3:o=t[i+1],a=t[i+2],128===(192&o)&&128===(192&a)&&(u=(15&h)<<12|(63&o)<<6|63&a,u>2047&&(u<55296||u>57343)&&(f=u));break;case 4:o=t[i+1],a=t[i+2],s=t[i+3],128===(192&o)&&128===(192&a)&&128===(192&s)&&(u=(15&h)<<18|(63&o)<<12|(63&a)<<6|63&s,u>65535&&u<1114112&&(f=u))}null===f?(f=65533,l=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),i+=l}return B(n)}e.Buffer=h,e.SlowBuffer=y,e.INSPECT_MAX_BYTES=50,h.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:a(),e.kMaxLength=s(),h.poolSize=8192,h._augment=function(t){return t.__proto__=h.prototype,t},h.from=function(t,e,r){return f(null,t,e,r)},h.TYPED_ARRAY_SUPPORT&&(h.prototype.__proto__=Uint8Array.prototype,h.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&h[Symbol.species]===h&&Object.defineProperty(h,Symbol.species,{value:null,configurable:!0})),h.alloc=function(t,e,r){return c(null,t,e,r)},h.allocUnsafe=function(t){return d(null,t)},h.allocUnsafeSlow=function(t){return d(null,t)},h.isBuffer=function(t){return!(null==t||!t._isBuffer)},h.compare=function(t,e){if(!h.isBuffer(t)||!h.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,n=e.length,i=0,o=Math.min(r,n);i0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},h.prototype.compare=function(t,e,r,n,i){if(!h.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var o=i-n,a=r-e,s=Math.min(o,a),u=this.slice(n,i),f=t.slice(e,r),l=0;li)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return A(this,t,e,r);case"utf8":case"utf-8":return k(this,t,e,r);case"ascii":return x(this,t,e,r);case"latin1":case"binary":return R(this,t,e,r);case"base64":return $(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var C=4096;function B(t){var e=t.length;if(e<=C)return String.fromCharCode.apply(String,t);var r="",n=0;while(nn)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function q(t,e,r,n,i,o){if(!h.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function U(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function F(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function z(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function H(t,e,r,n,o){return o||z(t,e,r,4,34028234663852886e22,-34028234663852886e22),i.write(t,e,r,n,23,4),r+4}function K(t,e,r,n,o){return o||z(t,e,r,8,17976931348623157e292,-17976931348623157e292),i.write(t,e,r,n,52,8),r+8}h.prototype.slice=function(t,e){var r,n=this.length;if(t=~~t,e=void 0===e?n:~~e,t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),e0&&(i*=256))n+=this[t+--e]*i;return n},h.prototype.readUInt8=function(t,e){return e||j(t,1,this.length),this[t]},h.prototype.readUInt16LE=function(t,e){return e||j(t,2,this.length),this[t]|this[t+1]<<8},h.prototype.readUInt16BE=function(t,e){return e||j(t,2,this.length),this[t]<<8|this[t+1]},h.prototype.readUInt32LE=function(t,e){return e||j(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},h.prototype.readUInt32BE=function(t,e){return e||j(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},h.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||j(t,e,this.length);var n=this[t],i=1,o=0;while(++o=i&&(n-=Math.pow(2,8*e)),n},h.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||j(t,e,this.length);var n=e,i=1,o=this[t+--n];while(n>0&&(i*=256))o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},h.prototype.readInt8=function(t,e){return e||j(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},h.prototype.readInt16LE=function(t,e){e||j(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},h.prototype.readInt16BE=function(t,e){e||j(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},h.prototype.readInt32LE=function(t,e){return e||j(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},h.prototype.readInt32BE=function(t,e){return e||j(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},h.prototype.readFloatLE=function(t,e){return e||j(t,4,this.length),i.read(this,t,!0,23,4)},h.prototype.readFloatBE=function(t,e){return e||j(t,4,this.length),i.read(this,t,!1,23,4)},h.prototype.readDoubleLE=function(t,e){return e||j(t,8,this.length),i.read(this,t,!0,52,8)},h.prototype.readDoubleBE=function(t,e){return e||j(t,8,this.length),i.read(this,t,!1,52,8)},h.prototype.writeUIntLE=function(t,e,r,n){if(t=+t,e|=0,r|=0,!n){var i=Math.pow(2,8*r)-1;q(this,t,e,r,i,0)}var o=1,a=0;this[e]=255&t;while(++a=0&&(a*=256))this[e+o]=t/a&255;return e+r},h.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,1,255,0),h.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},h.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,2,65535,0),h.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):U(this,t,e,!0),e+2},h.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,2,65535,0),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):U(this,t,e,!1),e+2},h.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,4,4294967295,0),h.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):F(this,t,e,!0),e+4},h.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,4,4294967295,0),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},h.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);q(this,t,e,r,i-1,-i)}var o=0,a=1,s=0;this[e]=255&t;while(++o>0)-s&255;return e+r},h.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);q(this,t,e,r,i-1,-i)}var o=r-1,a=1,s=0;this[e+o]=255&t;while(--o>=0&&(a*=256))t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},h.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,1,127,-128),h.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},h.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,2,32767,-32768),h.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):U(this,t,e,!0),e+2},h.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,2,32767,-32768),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):U(this,t,e,!1),e+2},h.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,4,2147483647,-2147483648),h.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):F(this,t,e,!0),e+4},h.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},h.prototype.writeFloatLE=function(t,e,r){return H(this,t,e,!0,r)},h.prototype.writeFloatBE=function(t,e,r){return H(this,t,e,!1,r)},h.prototype.writeDoubleLE=function(t,e,r){return K(this,t,e,!0,r)},h.prototype.writeDoubleBE=function(t,e,r){return K(this,t,e,!1,r)},h.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!h.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"===typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function X(t){for(var e=[],r=0;r>8,i=r%256,o.push(i),o.push(n)}return o}function Q(t){return n.toByteArray(Z(t))}function tt(t,e,r,n){for(var i=0;i=e.length||i>=t.length)break;e[i+r]=t[i]}return i}function et(t){return t!==t}}).call(this,r("c8ba"))},b64b:function(t,e,r){var n=r("23e7"),i=r("7b0b"),o=r("df75"),a=r("d039"),s=a((function(){o(1)}));n({target:"Object",stat:!0,forced:s},{keys:function(t){return o(i(t))}})},b672:function(t,e,r){var n=r("8707").Buffer;function i(t,e){this._block=n.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}i.prototype.update=function(t,e){"string"===typeof t&&(e=e||"utf8",t=n.from(t,e));for(var r=this._block,i=this._blockSize,o=t.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(4294967295&r)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=i},b692:function(t,e,r){var n=r("39a9").Buffer,i=r("98e6"),o=r("34d5"),a=r("3fb5"),s=r("6fe7"),u=r("980c"),h=r("b4e8");function f(t){o.Writable.call(this);var e=h[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=i(e.hash),this._tag=e.id,this._signType=e.sign}function l(t){o.Writable.call(this);var e=h[t];if(!e)throw new Error("Unknown message digest");this._hash=i(e.hash),this._tag=e.id,this._signType=e.sign}function c(t){return new f(t)}function d(t){return new l(t)}Object.keys(h).forEach((function(t){h[t].id=n.from(h[t].id,"hex"),h[t.toLowerCase()]=h[t]})),a(f,o.Writable),f.prototype._write=function(t,e,r){this._hash.update(t),r()},f.prototype.update=function(t,e){return"string"===typeof t&&(t=n.from(t,e)),this._hash.update(t),this},f.prototype.sign=function(t,e){this.end();var r=this._hash.digest(),n=s(r,t,this._hashType,this._signType,this._tag);return e?n.toString(e):n},a(l,o.Writable),l.prototype._write=function(t,e,r){this._hash.update(t),r()},l.prototype.update=function(t,e){return"string"===typeof t&&(t=n.from(t,e)),this._hash.update(t),this},l.prototype.verify=function(t,e,r){"string"===typeof e&&(e=n.from(e,r)),this.end();var i=this._hash.digest();return u(e,i,t,this._signType,this._tag)},t.exports={Sign:c,Verify:d,createSign:c,createVerify:d}},b727:function(t,e,r){var n=r("0366"),i=r("44ad"),o=r("7b0b"),a=r("50c4"),s=r("65f0"),u=[].push,h=function(t){var e=1==t,r=2==t,h=3==t,f=4==t,l=6==t,c=5==t||l;return function(d,p,m,v){for(var b,g,y=o(d),w=i(y),M=n(p,m,3),_=a(w.length),E=0,S=v||s,A=e?S(d,_):r?S(d,0):void 0;_>E;E++)if((c||E in w)&&(b=w[E],g=M(b,E,y),t))if(e)A[E]=g;else if(g)switch(t){case 3:return!0;case 5:return b;case 6:return E;case 2:u.call(A,b)}else if(f)return!1;return l?-1:h||f?f:A}};t.exports={forEach:h(0),map:h(1),filter:h(2),some:h(3),every:h(4),find:h(5),findIndex:h(6)}},b73f:function(t,e,r){"use strict";var n=r("80af"),i=r("f3a3"),o=i.assert;function a(t,e){if(t instanceof a)return t;this._importDER(t,e)||(o(t.r&&t.s,"Signature without r or s"),this.r=new n(t.r,16),this.s=new n(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function s(){this.place=0}function u(t,e){var r=t[e.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var i=0,o=0,a=e.place;o>>=0;return!(i<=127)&&(e.place=a,i)}function h(t){var e=0,r=t.length-1;while(!t[e]&&!(128&t[e+1])&&e>>3);t.push(128|r);while(--r)t.push(e>>>(r<<3)&255);t.push(e)}}t.exports=a,a.prototype._importDER=function(t,e){t=i.toArray(t,e);var r=new s;if(48!==t[r.place++])return!1;var o=u(t,r);if(!1===o)return!1;if(o+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var a=u(t,r);if(!1===a)return!1;var h=t.slice(r.place,a+r.place);if(r.place+=a,2!==t[r.place++])return!1;var f=u(t,r);if(!1===f)return!1;if(t.length!==f+r.place)return!1;var l=t.slice(r.place,f+r.place);if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}return this.r=new n(h),this.s=new n(l),this.recoveryParam=null,!0},a.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=h(e),r=h(r);while(!r[0]&&!(128&r[1]))r=r.slice(1);var n=[2];f(n,e.length),n=n.concat(e),n.push(2),f(n,r.length);var o=n.concat(r),a=[48];return f(a,o.length),a=a.concat(o),i.encode(a,t)}},b7d1:function(t,e,r){(function(e){function r(t,e){if(n("noDeprecation"))return t;var r=!1;function i(){if(!r){if(n("throwDeprecation"))throw new Error(e);n("traceDeprecation")?console.trace(e):console.warn(e),r=!0}return t.apply(this,arguments)}return i}function n(t){try{if(!e.localStorage)return!1}catch(n){return!1}var r=e.localStorage[t];return null!=r&&"true"===String(r).toLowerCase()}t.exports=r}).call(this,r("c8ba"))},b837:function(t,e,r){var n=r("3fb5"),i=r("4fd1"),o=r("b672"),a=r("8707").Buffer,s=new Array(160);function u(){this.init(),this._w=s,o.call(this,128,112)}n(u,i),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var t=a.allocUnsafe(48);function e(e,r,n){t.writeInt32BE(e,n),t.writeInt32BE(r,n+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=u},b9a8:function(t,e,r){"use strict";var n=r("80af"),i=r("6aa2"),o=r("f3a3"),a=r("0cbb"),s=r("fdac"),u=o.assert,h=r("bb34"),f=r("b73f");function l(t){if(!(this instanceof l))return new l(t);"string"===typeof t&&(u(a.hasOwnProperty(t),"Unknown curve "+t),t=a[t]),t instanceof a.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}t.exports=l,l.prototype.keyPair=function(t){return new h(this,t)},l.prototype.keyFromPrivate=function(t,e){return h.fromPrivate(this,t,e)},l.prototype.keyFromPublic=function(t,e){return h.fromPublic(this,t,e)},l.prototype.genKeyPair=function(t){t||(t={});var e=new i({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||s(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),o=this.n.sub(new n(2));do{var a=new n(e.generate(r));if(!(a.cmp(o)>0))return a.iaddn(1),this.keyFromPrivate(a)}while(1)},l.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},l.prototype.sign=function(t,e,r,o){"object"===typeof r&&(o=r,r=null),o||(o={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new n(t,16));for(var a=this.n.byteLength(),s=e.getPrivate().toArray("be",a),u=t.toArray("be",a),h=new i({hash:this.hash,entropy:s,nonce:u,pers:o.pers,persEnc:o.persEnc||"utf8"}),l=this.n.sub(new n(1)),c=0;1;c++){var d=o.k?o.k(c):new n(h.generate(this.n.byteLength()));if(d=this._truncateToN(d,!0),!(d.cmpn(1)<=0||d.cmp(l)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var m=p.getX(),v=m.umod(this.n);if(0!==v.cmpn(0)){var b=d.invm(this.n).mul(v.mul(e.getPrivate()).iadd(t));if(b=b.umod(this.n),0!==b.cmpn(0)){var g=(p.getY().isOdd()?1:0)|(0!==m.cmp(v)?2:0);return o.canonical&&b.cmp(this.nh)>0&&(b=this.n.sub(b),g^=1),new f({r:v,s:b,recoveryParam:g})}}}}}},l.prototype.verify=function(t,e,r,i){t=this._truncateToN(new n(t,16)),r=this.keyFromPublic(r,i),e=new f(e,"hex");var o=e.r,a=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s=a.invm(this.n),u=s.mul(t).umod(this.n),h=s.mul(o).umod(this.n);if(!this.curve._maxwellTrick){var l=this.g.mulAdd(u,r.getPublic(),h);return!l.isInfinity()&&0===l.getX().umod(this.n).cmp(o)}l=this.g.jmulAdd(u,r.getPublic(),h);return!l.isInfinity()&&l.eqXToP(o)},l.prototype.recoverPubKey=function(t,e,r,i){u((3&r)===r,"The recovery param is more than two bits"),e=new f(e,i);var o=this.n,a=new n(t),s=e.r,h=e.s,l=1&r,c=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&c)throw new Error("Unable to find sencond key candinate");s=c?this.curve.pointFromX(s.add(this.curve.n),l):this.curve.pointFromX(s,l);var d=e.r.invm(o),p=o.sub(a).mul(d).umod(o),m=h.mul(d).umod(o);return this.g.mulAdd(p,s,m)},l.prototype.getKeyRecoveryParam=function(t,e,r,n){if(e=new f(e,n),null!==e.recoveryParam)return e.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(t,e,i)}catch(t){continue}if(o.eq(r))return i}throw new Error("Unable to find valid recovery factor")}},b9b5:function(t,e,r){"use strict";var n=r("9d8a").codes.ERR_INVALID_OPT_VALUE;function i(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}function o(t,e,r,o){var a=i(e,o,r);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0){var s=o?r:"highWaterMark";throw new n(s,a)}return Math.floor(a)}return t.objectMode?16:16384}t.exports={getHighWaterMark:o}},bac2:function(t,e,r){var n={ECB:r("0145"),CBC:r("c119"),CFB:r("3505"),CFB8:r("62c9"),CFB1:r("5239"),OFB:r("5165"),CTR:r("6ade"),GCM:r("6ade")},i=r("e85f");for(var o in i)i[o].module=n[i[o].mode];t.exports=i},bb2f:function(t,e,r){var n=r("d039");t.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))},bb34:function(t,e,r){"use strict";var n=r("80af"),i=r("f3a3"),o=i.assert;function a(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}t.exports=a,a.fromPublic=function(t,e,r){return e instanceof a?e:new a(t,{pub:e,pubEnc:r})},a.fromPrivate=function(t,e,r){return e instanceof a?e:new a(t,{priv:e,privEnc:r})},a.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},a.prototype.getPublic=function(t,e){return"string"===typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},a.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},a.prototype._importPrivate=function(t,e){this.priv=new n(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},a.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?o(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||o(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},a.prototype.derive=function(t){return t.mul(this.priv).getX()},a.prototype.sign=function(t,e,r){return this.ec.sign(t,this,e,r)},a.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},a.prototype.inspect=function(){return""}},bb44:function(t,e,r){"use strict";var n=r("c3c0"),i=r("edc9"),o=n.rotl32,a=n.sum32,s=n.sum32_3,u=n.sum32_4,h=i.BlockHash;function f(){if(!(this instanceof f))return new f;h.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function l(t,e,r,n){return t<=15?e^r^n:t<=31?e&r|~e&n:t<=47?(e|~r)^n:t<=63?e&n|r&~n:e^(r|~n)}function c(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function d(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}n.inherits(f,h),e.ripemd160=f,f.blockSize=512,f.outSize=160,f.hmacStrength=192,f.padLength=64,f.prototype._update=function(t,e){for(var r=this.h[0],n=this.h[1],i=this.h[2],h=this.h[3],f=this.h[4],g=r,y=n,w=i,M=h,_=f,E=0;E<80;E++){var S=a(o(u(r,l(E,n,i,h),t[p[E]+e],c(E)),v[E]),f);r=f,f=h,h=o(i,10),i=n,n=S,S=a(o(u(g,l(79-E,y,w,M),t[m[E]+e],d(E)),b[E]),_),g=_,_=M,M=o(w,10),w=y,y=S}S=s(this.h[1],i,M),this.h[1]=s(this.h[2],h,_),this.h[2]=s(this.h[3],f,g),this.h[3]=s(this.h[4],r,y),this.h[4]=s(this.h[0],n,w),this.h[0]=S},f.prototype._digest=function(t){return"hex"===t?n.toHex32(this.h,"little"):n.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],v=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},bc12:function(t,e,r){(function(t){(function(t,e){"use strict";function n(t,e){if(!t)throw new Error(e||"Assertion failed")}function i(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a=r(12).Buffer}catch(k){}function s(t,e,r){for(var n=0,i=Math.min(t.length,r),o=e;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}function v(t,e,r){var n=new b;return n.mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):n<63?d(this,t,e):n<1024?m(this,t,e):v(this,t,e),r},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(w,y),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return g[t]=e,e},S.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},i(A,S),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},bd9d:function(t,e){function r(t){var e,r=t.length;while(r--){if(e=t.readUInt8(r),255!==e){e++,t.writeUInt8(e,r);break}t.writeUInt8(0,r)}}t.exports=r},c04e:function(t,e,r){var n=r("861d");t.exports=function(t,e){if(!n(t))return t;var r,i;if(e&&"function"==typeof(r=t.toString)&&!n(i=r.call(t)))return i;if("function"==typeof(r=t.valueOf)&&!n(i=r.call(t)))return i;if(!e&&"function"==typeof(r=t.toString)&&!n(i=r.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},c119:function(t,e,r){var n=r("8c8a");e.encrypt=function(t,e){var r=n(e,t._prev);return t._prev=t._cipher.encryptBlock(r),t._prev},e.decrypt=function(t,e){var r=t._prev;t._prev=e;var i=t._cipher.decryptBlock(e);return n(i,r)}},c19f:function(t,e,r){"use strict";var n=r("23e7"),i=r("da84"),o=r("621a"),a=r("2626"),s="ArrayBuffer",u=o[s],h=i[s];n({global:!0,forced:h!==u},{ArrayBuffer:u}),a(s)},c1ac:function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").filter,o=r("4840"),a=n.aTypedArray,s=n.aTypedArrayConstructor,u=n.exportTypedArrayMethod;u("filter",(function(t){var e=i(a(this),t,arguments.length>1?arguments[1]:void 0),r=o(this,this.constructor),n=0,u=e.length,h=new(s(r))(u);while(u>n)h[n]=e[n++];return h}))},c24d:function(t){t.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},c2ae:function(t,e,r){t.exports=r("e372").PassThrough},c3c0:function(t,e,r){"use strict";var n=r("da3e"),i=r("3fb5");function o(t,e){return 55296===(64512&t.charCodeAt(e))&&(!(e<0||e+1>=t.length)&&56320===(64512&t.charCodeAt(e+1)))}function a(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"===typeof t)if(e){if("hex"===e)for(t=t.replace(/[^a-z0-9]+/gi,""),t.length%2!==0&&(t="0"+t),i=0;i>6|192,r[n++]=63&a|128):o(t,i)?(a=65536+((1023&a)<<10)+(1023&t.charCodeAt(++i)),r[n++]=a>>18|240,r[n++]=a>>12&63|128,r[n++]=a>>6&63|128,r[n++]=63&a|128):(r[n++]=a>>12|224,r[n++]=a>>6&63|128,r[n++]=63&a|128)}else for(i=0;i>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24;return e>>>0}function h(t,e){for(var r="",n=0;n>>0}return a}function d(t,e){for(var r=new Array(4*t.length),n=0,i=0;n>>24,r[i+1]=o>>>16&255,r[i+2]=o>>>8&255,r[i+3]=255&o):(r[i+3]=o>>>24,r[i+2]=o>>>16&255,r[i+1]=o>>>8&255,r[i]=255&o)}return r}function p(t,e){return t>>>e|t<<32-e}function m(t,e){return t<>>32-e}function v(t,e){return t+e>>>0}function b(t,e,r){return t+e+r>>>0}function g(t,e,r,n){return t+e+r+n>>>0}function y(t,e,r,n,i){return t+e+r+n+i>>>0}function w(t,e,r,n){var i=t[e],o=t[e+1],a=n+o>>>0,s=(a>>0,t[e+1]=a}function M(t,e,r,n){var i=e+n>>>0,o=(i>>0}function _(t,e,r,n){var i=e+n;return i>>>0}function E(t,e,r,n,i,o,a,s){var u=0,h=e;h=h+n>>>0,u+=h>>0,u+=h>>0,u+=h>>0}function S(t,e,r,n,i,o,a,s){var u=e+n+o+s;return u>>>0}function A(t,e,r,n,i,o,a,s,u,h){var f=0,l=e;l=l+n>>>0,f+=l>>0,f+=l>>0,f+=l>>0,f+=l>>0}function k(t,e,r,n,i,o,a,s,u,h){var f=e+n+o+s+h;return f>>>0}function x(t,e,r){var n=e<<32-r|t>>>r;return n>>>0}function R(t,e,r){var n=t<<32-r|e>>>r;return n>>>0}function $(t,e,r){return t>>>r}function T(t,e,r){var n=t<<32-r|e>>>r;return n>>>0}e.inherits=i,e.toArray=a,e.toHex=s,e.htonl=u,e.toHex32=h,e.zero2=f,e.zero8=l,e.join32=c,e.split32=d,e.rotr32=p,e.rotl32=m,e.sum32=v,e.sum32_3=b,e.sum32_4=g,e.sum32_5=y,e.sum64=w,e.sum64_hi=M,e.sum64_lo=_,e.sum64_4_hi=E,e.sum64_4_lo=S,e.sum64_5_hi=A,e.sum64_5_lo=k,e.rotr64_hi=x,e.rotr64_lo=R,e.shr64_hi=$,e.shr64_lo=T},c430:function(t,e){t.exports=!1},c6b6:function(t,e){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},c6cd:function(t,e,r){var n=r("da84"),i=r("ce4e"),o="__core-js_shared__",a=n[o]||i(o,{});t.exports=a},c8ba:function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(n){"object"===typeof window&&(r=window)}t.exports=r},ca84:function(t,e,r){var n=r("5135"),i=r("fc6a"),o=r("4d64").indexOf,a=r("d012");t.exports=function(t,e){var r,s=i(t),u=0,h=[];for(r in s)!n(a,r)&&n(s,r)&&h.push(r);while(e.length>u)n(s,r=e[u++])&&(~o(h,r)||h.push(r));return h}},ca91:function(t,e,r){"use strict";var n=r("ebb5"),i=r("d58f").left,o=n.aTypedArray,a=n.exportTypedArrayMethod;a("reduce",(function(t){return i(o(this),t,arguments.length,arguments.length>1?arguments[1]:void 0)}))},caad:function(t,e,r){"use strict";var n=r("23e7"),i=r("4d64").includes,o=r("44d2"),a=r("ae40"),s=a("indexOf",{ACCESSORS:!0,1:0});n({target:"Array",proto:!0,forced:!s},{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),o("includes")},cc12:function(t,e,r){var n=r("da84"),i=r("861d"),o=n.document,a=i(o)&&i(o.createElement);t.exports=function(t){return a?o.createElement(t):{}}},cd26:function(t,e,r){"use strict";var n=r("ebb5"),i=n.aTypedArray,o=n.exportTypedArrayMethod,a=Math.floor;o("reverse",(function(){var t,e=this,r=i(e).length,n=a(r/2),o=0;while(o0)if("string"===typeof e||a.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=h(e)),n)a.endEmitted?A(t,new S):I(t,a,e,!0);else if(a.ended)A(t,new _);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?I(t,a,e,!1):j(t,a)):I(t,a,e,!1)}else n||(a.reading=!1,j(t,a));return!a.ended&&(a.length=C?t=C:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function L(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=B(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function N(t,e){if(l("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?P(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,D(t)))}}function P(t){var e=t._readableState;l("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(l("emitReadable",e.flowing),e.emittedReadable=!0,n.nextTick(D,t))}function D(t){var e=t._readableState;l("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,W(t)}function j(t,e){e.readingMore||(e.readingMore=!0,n.nextTick(q,t,e))}function q(t,e){while(!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function z(t){l("readable nexttick read 0"),t.read(0)}function H(t,e){e.resumeScheduled||(e.resumeScheduled=!0,n.nextTick(K,t,e))}function K(t,e){l("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),W(t),e.flowing&&!e.reading&&t.read(0)}function W(t){var e=t._readableState;l("flow",e.flowing);while(e.flowing&&null!==t.read());}function Z(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function G(t){var e=t._readableState;l("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,n.nextTick(Y,e,t))}function Y(t,e){if(l("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function V(t,e){for(var r=0,n=t.length;r=e.highWaterMark:e.length>0)||e.ended))return l("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?G(this):P(this),null;if(t=L(t,e),0===t&&e.ended)return 0===e.length&&G(this),null;var n,i=e.needReadable;return l("need readable",i),(0===e.length||e.length-t0?Z(t,e):null,null===n?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&G(this)),null!==n&&this.emit("data",n),n},$.prototype._read=function(t){A(this,new E("_read()"))},$.prototype.pipe=function(t,e){var r=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=t;break;case 1:i.pipes=[i.pipes,t];break;default:i.pipes.push(t);break}i.pipesCount+=1,l("pipe count=%d opts=%j",i.pipesCount,e);var a=(!e||!1!==e.end)&&t!==n.stdout&&t!==n.stderr,s=a?h:g;function u(t,e){l("onunpipe"),t===r&&e&&!1===e.hasUnpiped&&(e.hasUnpiped=!0,d())}function h(){l("onend"),t.end()}i.endEmitted?n.nextTick(s):r.once("end",s),t.on("unpipe",u);var f=U(r);t.on("drain",f);var c=!1;function d(){l("cleanup"),t.removeListener("close",v),t.removeListener("finish",b),t.removeListener("drain",f),t.removeListener("error",m),t.removeListener("unpipe",u),r.removeListener("end",h),r.removeListener("end",g),r.removeListener("data",p),c=!0,!i.awaitDrain||t._writableState&&!t._writableState.needDrain||f()}function p(e){l("ondata");var n=t.write(e);l("dest.write",n),!1===n&&((1===i.pipesCount&&i.pipes===t||i.pipesCount>1&&-1!==V(i.pipes,t))&&!c&&(l("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function m(e){l("onerror",e),g(),t.removeListener("error",m),0===o(t,"error")&&A(t,e)}function v(){t.removeListener("finish",b),g()}function b(){l("onfinish"),t.removeListener("close",v),g()}function g(){l("unpipe"),r.unpipe(t)}return r.on("data",p),x(t,"error",m),t.once("close",v),t.once("finish",b),t.emit("pipe",r),i.flowing||(l("pipe resume"),r.resume()),t},$.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0,!1!==i.flowing&&this.resume()):"readable"===t&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,l("on readable",i.length,i.reading),i.length?P(this):i.reading||n.nextTick(z,this))),r},$.prototype.addListener=$.prototype.on,$.prototype.removeListener=function(t,e){var r=a.prototype.removeListener.call(this,t,e);return"readable"===t&&n.nextTick(F,this),r},$.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||n.nextTick(F,this),e},$.prototype.resume=function(){var t=this._readableState;return t.flowing||(l("resume"),t.flowing=!t.readableListening,H(this,t)),t.paused=!1,this},$.prototype.pause=function(){return l("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(l("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},$.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on("end",(function(){if(l("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){if(l("wrapped data"),r.decoder&&(i=r.decoder.write(i)),(!r.objectMode||null!==i&&void 0!==i)&&(r.objectMode||i&&i.length)){var o=e.push(i);o||(n=!0,t.pause())}})),t)void 0===this[i]&&"function"===typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var o=0;o>6],i=0===(32&r);if(31===(31&r)){var o=r;r=0;while(128===(128&o)){if(o=t.readUInt8(e),t.isError(o))return o;r<<=7,r|=127&o}}else r&=31;var a=s.tag[r];return{cls:n,primitive:i,tag:r,tagStr:a}}function l(t,e,r){var n=t.readUInt8(r);if(t.isError(n))return n;if(!e&&128===n)return null;if(0===(128&n))return n;var i=127&n;if(i>4)return t.error("length octect is too long");n=0;for(var o=0;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return n}function u(t,e,r,n){for(var i=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var i=0;"-"===t[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(n("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)a=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(i=0,o=0;i>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-o&4194303,o+=24,o>=26&&(o-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var o=t.length-r,a=o%n,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}function d(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],o=0|e.words[0],a=i*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;i=0|t.words[p],o=0|e.words[d],a=i*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var i=0,o=0,a=0;a>>24-i&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,i+=2,i>=26&&(i-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return n("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),o=r||Math.max(1,i);n(i<=o,"byte array longer than desired length"),n(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){n("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){n("number"===typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,v=0|a[2],b=8191&v,g=v>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],E=8191&_,S=_>>>13,A=0|a[5],k=8191&A,x=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,B=0|a[8],L=8191&B,N=B>>>13,P=0|a[9],D=8191&P,j=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],H=8191&z,K=z>>>13,W=0|s[2],Z=8191&W,G=W>>>13,Y=0|s[3],V=8191&Y,X=Y>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],ot=8191&it,at=it>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,n=Math.imul(l,U),i=Math.imul(l,F),i=i+Math.imul(c,U)|0,o=Math.imul(c,F);var vt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(p,U),i=Math.imul(p,F),i=i+Math.imul(m,U)|0,o=Math.imul(m,F),n=n+Math.imul(l,H)|0,i=i+Math.imul(l,K)|0,i=i+Math.imul(c,H)|0,o=o+Math.imul(c,K)|0;var bt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(b,U),i=Math.imul(b,F),i=i+Math.imul(g,U)|0,o=Math.imul(g,F),n=n+Math.imul(p,H)|0,i=i+Math.imul(p,K)|0,i=i+Math.imul(m,H)|0,o=o+Math.imul(m,K)|0,n=n+Math.imul(l,Z)|0,i=i+Math.imul(l,G)|0,i=i+Math.imul(c,Z)|0,o=o+Math.imul(c,G)|0;var gt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(w,U),i=Math.imul(w,F),i=i+Math.imul(M,U)|0,o=Math.imul(M,F),n=n+Math.imul(b,H)|0,i=i+Math.imul(b,K)|0,i=i+Math.imul(g,H)|0,o=o+Math.imul(g,K)|0,n=n+Math.imul(p,Z)|0,i=i+Math.imul(p,G)|0,i=i+Math.imul(m,Z)|0,o=o+Math.imul(m,G)|0,n=n+Math.imul(l,V)|0,i=i+Math.imul(l,X)|0,i=i+Math.imul(c,V)|0,o=o+Math.imul(c,X)|0;var yt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(E,U),i=Math.imul(E,F),i=i+Math.imul(S,U)|0,o=Math.imul(S,F),n=n+Math.imul(w,H)|0,i=i+Math.imul(w,K)|0,i=i+Math.imul(M,H)|0,o=o+Math.imul(M,K)|0,n=n+Math.imul(b,Z)|0,i=i+Math.imul(b,G)|0,i=i+Math.imul(g,Z)|0,o=o+Math.imul(g,G)|0,n=n+Math.imul(p,V)|0,i=i+Math.imul(p,X)|0,i=i+Math.imul(m,V)|0,o=o+Math.imul(m,X)|0,n=n+Math.imul(l,Q)|0,i=i+Math.imul(l,tt)|0,i=i+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(k,U),i=Math.imul(k,F),i=i+Math.imul(x,U)|0,o=Math.imul(x,F),n=n+Math.imul(E,H)|0,i=i+Math.imul(E,K)|0,i=i+Math.imul(S,H)|0,o=o+Math.imul(S,K)|0,n=n+Math.imul(w,Z)|0,i=i+Math.imul(w,G)|0,i=i+Math.imul(M,Z)|0,o=o+Math.imul(M,G)|0,n=n+Math.imul(b,V)|0,i=i+Math.imul(b,X)|0,i=i+Math.imul(g,V)|0,o=o+Math.imul(g,X)|0,n=n+Math.imul(p,Q)|0,i=i+Math.imul(p,tt)|0,i=i+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,n=n+Math.imul(l,rt)|0,i=i+Math.imul(l,nt)|0,i=i+Math.imul(c,rt)|0,o=o+Math.imul(c,nt)|0;var Mt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul($,U),i=Math.imul($,F),i=i+Math.imul(T,U)|0,o=Math.imul(T,F),n=n+Math.imul(k,H)|0,i=i+Math.imul(k,K)|0,i=i+Math.imul(x,H)|0,o=o+Math.imul(x,K)|0,n=n+Math.imul(E,Z)|0,i=i+Math.imul(E,G)|0,i=i+Math.imul(S,Z)|0,o=o+Math.imul(S,G)|0,n=n+Math.imul(w,V)|0,i=i+Math.imul(w,X)|0,i=i+Math.imul(M,V)|0,o=o+Math.imul(M,X)|0,n=n+Math.imul(b,Q)|0,i=i+Math.imul(b,tt)|0,i=i+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,n=n+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0,i=i+Math.imul(m,rt)|0,o=o+Math.imul(m,nt)|0,n=n+Math.imul(l,ot)|0,i=i+Math.imul(l,at)|0,i=i+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(O,U),i=Math.imul(O,F),i=i+Math.imul(C,U)|0,o=Math.imul(C,F),n=n+Math.imul($,H)|0,i=i+Math.imul($,K)|0,i=i+Math.imul(T,H)|0,o=o+Math.imul(T,K)|0,n=n+Math.imul(k,Z)|0,i=i+Math.imul(k,G)|0,i=i+Math.imul(x,Z)|0,o=o+Math.imul(x,G)|0,n=n+Math.imul(E,V)|0,i=i+Math.imul(E,X)|0,i=i+Math.imul(S,V)|0,o=o+Math.imul(S,X)|0,n=n+Math.imul(w,Q)|0,i=i+Math.imul(w,tt)|0,i=i+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,n=n+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,i=i+Math.imul(g,rt)|0,o=o+Math.imul(g,nt)|0,n=n+Math.imul(p,ot)|0,i=i+Math.imul(p,at)|0,i=i+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,n=n+Math.imul(l,ut)|0,i=i+Math.imul(l,ht)|0,i=i+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var Et=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(L,U),i=Math.imul(L,F),i=i+Math.imul(N,U)|0,o=Math.imul(N,F),n=n+Math.imul(O,H)|0,i=i+Math.imul(O,K)|0,i=i+Math.imul(C,H)|0,o=o+Math.imul(C,K)|0,n=n+Math.imul($,Z)|0,i=i+Math.imul($,G)|0,i=i+Math.imul(T,Z)|0,o=o+Math.imul(T,G)|0,n=n+Math.imul(k,V)|0,i=i+Math.imul(k,X)|0,i=i+Math.imul(x,V)|0,o=o+Math.imul(x,X)|0,n=n+Math.imul(E,Q)|0,i=i+Math.imul(E,tt)|0,i=i+Math.imul(S,Q)|0,o=o+Math.imul(S,tt)|0,n=n+Math.imul(w,rt)|0,i=i+Math.imul(w,nt)|0,i=i+Math.imul(M,rt)|0,o=o+Math.imul(M,nt)|0,n=n+Math.imul(b,ot)|0,i=i+Math.imul(b,at)|0,i=i+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,n=n+Math.imul(p,ut)|0,i=i+Math.imul(p,ht)|0,i=i+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,n=n+Math.imul(l,lt)|0,i=i+Math.imul(l,ct)|0,i=i+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var St=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(D,U),i=Math.imul(D,F),i=i+Math.imul(j,U)|0,o=Math.imul(j,F),n=n+Math.imul(L,H)|0,i=i+Math.imul(L,K)|0,i=i+Math.imul(N,H)|0,o=o+Math.imul(N,K)|0,n=n+Math.imul(O,Z)|0,i=i+Math.imul(O,G)|0,i=i+Math.imul(C,Z)|0,o=o+Math.imul(C,G)|0,n=n+Math.imul($,V)|0,i=i+Math.imul($,X)|0,i=i+Math.imul(T,V)|0,o=o+Math.imul(T,X)|0,n=n+Math.imul(k,Q)|0,i=i+Math.imul(k,tt)|0,i=i+Math.imul(x,Q)|0,o=o+Math.imul(x,tt)|0,n=n+Math.imul(E,rt)|0,i=i+Math.imul(E,nt)|0,i=i+Math.imul(S,rt)|0,o=o+Math.imul(S,nt)|0,n=n+Math.imul(w,ot)|0,i=i+Math.imul(w,at)|0,i=i+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,n=n+Math.imul(b,ut)|0,i=i+Math.imul(b,ht)|0,i=i+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,n=n+Math.imul(p,lt)|0,i=i+Math.imul(p,ct)|0,i=i+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,n=n+Math.imul(l,pt)|0,i=i+Math.imul(l,mt)|0,i=i+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(D,H),i=Math.imul(D,K),i=i+Math.imul(j,H)|0,o=Math.imul(j,K),n=n+Math.imul(L,Z)|0,i=i+Math.imul(L,G)|0,i=i+Math.imul(N,Z)|0,o=o+Math.imul(N,G)|0,n=n+Math.imul(O,V)|0,i=i+Math.imul(O,X)|0,i=i+Math.imul(C,V)|0,o=o+Math.imul(C,X)|0,n=n+Math.imul($,Q)|0,i=i+Math.imul($,tt)|0,i=i+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,n=n+Math.imul(k,rt)|0,i=i+Math.imul(k,nt)|0,i=i+Math.imul(x,rt)|0,o=o+Math.imul(x,nt)|0,n=n+Math.imul(E,ot)|0,i=i+Math.imul(E,at)|0,i=i+Math.imul(S,ot)|0,o=o+Math.imul(S,at)|0,n=n+Math.imul(w,ut)|0,i=i+Math.imul(w,ht)|0,i=i+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,n=n+Math.imul(b,lt)|0,i=i+Math.imul(b,ct)|0,i=i+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,n=n+Math.imul(p,pt)|0,i=i+Math.imul(p,mt)|0,i=i+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var kt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(D,Z),i=Math.imul(D,G),i=i+Math.imul(j,Z)|0,o=Math.imul(j,G),n=n+Math.imul(L,V)|0,i=i+Math.imul(L,X)|0,i=i+Math.imul(N,V)|0,o=o+Math.imul(N,X)|0,n=n+Math.imul(O,Q)|0,i=i+Math.imul(O,tt)|0,i=i+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,n=n+Math.imul($,rt)|0,i=i+Math.imul($,nt)|0,i=i+Math.imul(T,rt)|0,o=o+Math.imul(T,nt)|0,n=n+Math.imul(k,ot)|0,i=i+Math.imul(k,at)|0,i=i+Math.imul(x,ot)|0,o=o+Math.imul(x,at)|0,n=n+Math.imul(E,ut)|0,i=i+Math.imul(E,ht)|0,i=i+Math.imul(S,ut)|0,o=o+Math.imul(S,ht)|0,n=n+Math.imul(w,lt)|0,i=i+Math.imul(w,ct)|0,i=i+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,n=n+Math.imul(b,pt)|0,i=i+Math.imul(b,mt)|0,i=i+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var xt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(D,V),i=Math.imul(D,X),i=i+Math.imul(j,V)|0,o=Math.imul(j,X),n=n+Math.imul(L,Q)|0,i=i+Math.imul(L,tt)|0,i=i+Math.imul(N,Q)|0,o=o+Math.imul(N,tt)|0,n=n+Math.imul(O,rt)|0,i=i+Math.imul(O,nt)|0,i=i+Math.imul(C,rt)|0,o=o+Math.imul(C,nt)|0,n=n+Math.imul($,ot)|0,i=i+Math.imul($,at)|0,i=i+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,n=n+Math.imul(k,ut)|0,i=i+Math.imul(k,ht)|0,i=i+Math.imul(x,ut)|0,o=o+Math.imul(x,ht)|0,n=n+Math.imul(E,lt)|0,i=i+Math.imul(E,ct)|0,i=i+Math.imul(S,lt)|0,o=o+Math.imul(S,ct)|0,n=n+Math.imul(w,pt)|0,i=i+Math.imul(w,mt)|0,i=i+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,n=Math.imul(D,Q),i=Math.imul(D,tt),i=i+Math.imul(j,Q)|0,o=Math.imul(j,tt),n=n+Math.imul(L,rt)|0,i=i+Math.imul(L,nt)|0,i=i+Math.imul(N,rt)|0,o=o+Math.imul(N,nt)|0,n=n+Math.imul(O,ot)|0,i=i+Math.imul(O,at)|0,i=i+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,n=n+Math.imul($,ut)|0,i=i+Math.imul($,ht)|0,i=i+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,n=n+Math.imul(k,lt)|0,i=i+Math.imul(k,ct)|0,i=i+Math.imul(x,lt)|0,o=o+Math.imul(x,ct)|0,n=n+Math.imul(E,pt)|0,i=i+Math.imul(E,mt)|0,i=i+Math.imul(S,pt)|0,o=o+Math.imul(S,mt)|0;var $t=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+($t>>>26)|0,$t&=67108863,n=Math.imul(D,rt),i=Math.imul(D,nt),i=i+Math.imul(j,rt)|0,o=Math.imul(j,nt),n=n+Math.imul(L,ot)|0,i=i+Math.imul(L,at)|0,i=i+Math.imul(N,ot)|0,o=o+Math.imul(N,at)|0,n=n+Math.imul(O,ut)|0,i=i+Math.imul(O,ht)|0,i=i+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,n=n+Math.imul($,lt)|0,i=i+Math.imul($,ct)|0,i=i+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,n=n+Math.imul(k,pt)|0,i=i+Math.imul(k,mt)|0,i=i+Math.imul(x,pt)|0,o=o+Math.imul(x,mt)|0;var Tt=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,ot),i=Math.imul(D,at),i=i+Math.imul(j,ot)|0,o=Math.imul(j,at),n=n+Math.imul(L,ut)|0,i=i+Math.imul(L,ht)|0,i=i+Math.imul(N,ut)|0,o=o+Math.imul(N,ht)|0,n=n+Math.imul(O,lt)|0,i=i+Math.imul(O,ct)|0,i=i+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,n=n+Math.imul($,pt)|0,i=i+Math.imul($,mt)|0,i=i+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(D,ut),i=Math.imul(D,ht),i=i+Math.imul(j,ut)|0,o=Math.imul(j,ht),n=n+Math.imul(L,lt)|0,i=i+Math.imul(L,ct)|0,i=i+Math.imul(N,lt)|0,o=o+Math.imul(N,ct)|0,n=n+Math.imul(O,pt)|0,i=i+Math.imul(O,mt)|0,i=i+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,n=Math.imul(D,lt),i=Math.imul(D,ct),i=i+Math.imul(j,lt)|0,o=Math.imul(j,ct),n=n+Math.imul(L,pt)|0,i=i+Math.imul(L,mt)|0,i=i+Math.imul(N,pt)|0,o=o+Math.imul(N,mt)|0;var Ct=(h+n|0)+((8191&i)<<13)|0;h=(o+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(D,pt),i=Math.imul(D,mt),i=i+Math.imul(j,pt)|0,o=Math.imul(j,mt);var Bt=(h+n|0)+((8191&i)<<13)|0;return h=(o+(i>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,u[0]=vt,u[1]=bt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=Et,u[8]=St,u[9]=At,u[10]=kt,u[11]=xt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Bt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,o=0;o>>26)|0,i+=a>>>26,a&=67108863}r.words[o]=s,n=a,a=i}return 0!==n?r.words[o]=n:r.length--,r.strip()}function v(t,e,r){var n=new b;return n.mulp(t,e,r)}function b(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,n=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):n<63?d(this,t,e):n<1024?m(this,t,e):v(this,t,e),r},b.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,n=0;n>=1;return n},b.prototype.permute=function(t,e,r,n,i,o){for(var a=0;a>>=1)i++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=i/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=i);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){n("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(n("number"===typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[i+r]=67108863&o}for(;i>26,this.words[i+r]=67108863&o;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,n=this.clone(),i=t,a=0|i.words[i.length-1],s=this._countBits(a);r=26-s,0!==r&&(i=i.ushln(r),n.iushln(r),a=0|i.words[i.length-1]);var u,h=n.length-i.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|n.words[i.length+c])+(0|n.words[i.length+c-1]);d=Math.min(d/a|0,67108863),n._ishlnsubmul(i,d,c);while(0!==n.negative)d--,n.negative=0,n._ishlnsubmul(i,1,c),n.isZero()||(n.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:u||null,mod:n}},o.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:i,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),o=r.cmp(n);return o<0||1===i&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},o.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(i.isOdd()||a.isOdd())&&(i.iadd(f),a.isub(l)),i.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),i.isub(s),a.isub(u)):(r.isub(e),s.isub(i),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var i,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return i=0===e.cmpn(1)?a:s,i.cmpn(0)<0&&i.iadd(t),i},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var i=e.cmp(r);if(i<0){var o=e;e=r,r=o}else if(0===i||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(n)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){n("number"===typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new S(t)},o.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){S.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},i(w,y),w.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),i=0;i>>22,o=a}o>>>=22,t.words[i-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new E}return g[t]=e,e},S.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},S.prototype._verify2=function(t,e){n(0===(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},S.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},S.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},S.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},S.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},S.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},S.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},S.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},S.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},S.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},S.prototype.isqr=function(t){return this.imul(t,t.clone())},S.prototype.sqr=function(t){return this.mul(t,t)},S.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var i=this.m.subn(1),a=0;while(!i.isZero()&&0===i.andln(1))a++,i.iushrn(1);n(!i.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,i),c=this.pow(t,i.addn(1).iushrn(1)),d=this.pow(t,i),p=a;while(0!==d.cmp(s)){for(var m=d,v=0;0!==m.cmp(s);v++)m=m.redSqr();n(v=0;i--){for(var f=e.words[i],l=h-1;l>=0;l--){var c=f>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===i&&0===l)&&(a=this.mul(a,n[s]),u=0,s=0)):u=0}h=26}return a},S.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},S.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},i(A,S),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},d113:function(t,e,r){"use strict";function n(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var i={};function o(t,e,r){function o(t,r,n){return"string"===typeof e?e:e(t,r,n)}r||(r=Error);var a=function(t){function e(e,r,n){return t.call(this,o(e,r,n))||this}return n(e,t),e}(r);a.prototype.name=r.name,a.prototype.code=t,i[t]=a}function a(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map((function(t){return String(t)})),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}function s(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function u(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function h(t,e,r){return"number"!==typeof r&&(r=0),!(r+e.length>t.length)&&-1!==t.indexOf(e,r)}o("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),o("ERR_INVALID_ARG_TYPE",(function(t,e,r){var n,i;if("string"===typeof e&&s(e,"not ")?(n="must not be",e=e.replace(/^not /,"")):n="must be",u(t," argument"))i="The ".concat(t," ").concat(n," ").concat(a(e,"type"));else{var o=h(t,".")?"property":"argument";i='The "'.concat(t,'" ').concat(o," ").concat(n," ").concat(a(e,"type"))}return i+=". Received type ".concat(typeof r),i}),TypeError),o("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),o("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),o("ERR_STREAM_PREMATURE_CLOSE","Premature close"),o("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),o("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),o("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),o("ERR_STREAM_WRITE_AFTER_END","write after end"),o("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),o("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),o("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.codes=i},d139:function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").find,o=n.aTypedArray,a=n.exportTypedArrayMethod;a("find",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},d17b:function(t,e,r){t.exports=r("e372").Transform},d1c8:function(t,e,r){var n=r("3fb5");function i(t){this._reporterState={obj:null,path:[],options:t||{},errors:[]}}function o(t,e){this.path=t,this.rethrow(e)}e.Reporter=i,i.prototype.isError=function(t){return t instanceof o},i.prototype.save=function(){var t=this._reporterState;return{obj:t.obj,pathLen:t.path.length}},i.prototype.restore=function(t){var e=this._reporterState;e.obj=t.obj,e.path=e.path.slice(0,t.pathLen)},i.prototype.enterKey=function(t){return this._reporterState.path.push(t)},i.prototype.exitKey=function(t){var e=this._reporterState;e.path=e.path.slice(0,t-1)},i.prototype.leaveKey=function(t,e,r){var n=this._reporterState;this.exitKey(t),null!==n.obj&&(n.obj[e]=r)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){var t=this._reporterState,e=t.obj;return t.obj={},e},i.prototype.leaveObject=function(t){var e=this._reporterState,r=e.obj;return e.obj=t,r},i.prototype.error=function(t){var e,r=this._reporterState,n=t instanceof o;if(e=n?t:new o(r.path.map((function(t){return"["+JSON.stringify(t)+"]"})).join(""),t.message||t,t.stack),!r.options.partial)throw e;return n||r.errors.push(e),e},i.prototype.wrapResult=function(t){var e=this._reporterState;return e.options.partial?{result:this.isError(t)?null:t,errors:e.errors}:t},n(o,Error),o.prototype.rethrow=function(t){if(this.message=t+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,o),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},d1e7:function(t,e,r){"use strict";var n={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,o=i&&!n.call({1:2},1);e.f=o?function(t){var e=i(this,t);return!!e&&e.enumerable}:n},d28b:function(t,e,r){var n=r("746f");n("iterator")},d2bb:function(t,e,r){var n=r("825a"),i=r("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,t.call(r,[]),e=r instanceof Array}catch(o){}return function(r,o){return n(r),i(o),e?t.call(r,o):r.__proto__=o,r}}():void 0)},d3b7:function(t,e,r){var n=r("00ee"),i=r("6eeb"),o=r("b041");n||i(Object.prototype,"toString",o,{unsafe:!0})},d424:function(t,e,r){"use strict";var n=r("3fb5"),i=r("8707").Buffer,o=r("6430"),a=i.alloc(128),s=64;function u(t,e){o.call(this,"digest"),"string"===typeof e&&(e=i.from(e)),this._alg=t,this._key=e,e.length>s?e=t(e):e.length=0:l>c;c+=d)c in f&&(u=r(u,f[c],c,h));return u}};t.exports={left:s(!1),right:s(!0)}},d5d6:function(t,e,r){"use strict";var n=r("ebb5"),i=r("b727").forEach,o=n.aTypedArray,a=n.exportTypedArrayMethod;a("forEach",(function(t){i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},d70e:function(t){t.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')},d784:function(t,e,r){"use strict";r("ac1f");var n=r("6eeb"),i=r("d039"),o=r("b622"),a=r("9263"),s=r("9112"),u=o("species"),h=!i((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$
    ")})),f=function(){return"$0"==="a".replace(/./,"$0")}(),l=o("replace"),c=function(){return!!/./[l]&&""===/./[l]("a","$0")}(),d=!i((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]}));t.exports=function(t,e,r,l){var p=o(t),m=!i((function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})),v=m&&!i((function(){var e=!1,r=/a/;return"split"===t&&(r={},r.constructor={},r.constructor[u]=function(){return r},r.flags="",r[p]=/./[p]),r.exec=function(){return e=!0,null},r[p](""),!e}));if(!m||!v||"replace"===t&&(!h||!f||c)||"split"===t&&!d){var b=/./[p],g=r(p,""[t],(function(t,e,r,n,i){return e.exec===a?m&&!i?{done:!0,value:b.call(e,r,n)}:{done:!0,value:t.call(r,e,n)}:{done:!1}}),{REPLACE_KEEPS_$0:f,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:c}),y=g[0],w=g[1];n(String.prototype,t,y),n(RegExp.prototype,p,2==e?function(t,e){return w.call(t,this,e)}:function(t){return w.call(t,this)})}l&&s(RegExp.prototype[p],"sham",!0)}},d81d:function(t,e,r){"use strict";var n=r("23e7"),i=r("b727").map,o=r("1dde"),a=r("ae40"),s=o("map"),u=a("map");n({target:"Array",proto:!0,forced:!s||!u},{map:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}})},da3e:function(t,e){function r(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=r,r.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)}},da84:function(t,e,r){(function(e){var r=function(t){return t&&t.Math==Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof e&&e)||Function("return this")()}).call(this,r("c8ba"))},dc14:function(t,e,r){"use strict";(function(e,n){var i=r("966d");function o(t){var e=this;this.next=null,this.entry=null,this.finish=function(){N(e,t)}}t.exports=y;var a,s=!e.browser&&["v0.10","v0.9."].indexOf(e.version.slice(0,5))>-1?setImmediate:i.nextTick;y.WritableState=g;var u=Object.create(r("3a7c"));u.inherits=r("3fb5");var h={deprecate:r("b7d1")},f=r("429b"),l=r("8707").Buffer,c=n.Uint8Array||function(){};function d(t){return l.from(t)}function p(t){return l.isBuffer(t)||t instanceof c}var m,v=r("4681");function b(){}function g(t,e){a=a||r("b19a"),t=t||{};var n=e instanceof a;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var i=t.highWaterMark,s=t.writableHighWaterMark,u=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(s||0===s)?s:u,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var h=!1===t.decodeStrings;this.decodeStrings=!h,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){x(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function y(t){if(a=a||r("b19a"),!m.call(y,this)&&!(this instanceof a))return new y(t);this._writableState=new g(t,this),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),f.call(this)}function w(t,e){var r=new Error("write after end");t.emit("error",r),i.nextTick(e,r)}function M(t,e,r,n){var o=!0,a=!1;return null===r?a=new TypeError("May not write null values to stream"):"string"===typeof r||void 0===r||e.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(t.emit("error",a),i.nextTick(n,a),o=!1),o}function _(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=l.from(e,r)),e}function E(t,e,r,n,i,o){if(!r){var a=_(e,n,i);n!==a&&(r=!0,i="buffer",n=a)}var s=e.objectMode?1:n.length;e.length+=s;var u=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(y.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),y.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},y.prototype._writev=null,y.prototype.end=function(t,e,r){var n=this._writableState;"function"===typeof t?(r=t,t=null,e=null):"function"===typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||L(this,n,r)},Object.defineProperty(y.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),y.prototype.destroy=v.destroy,y.prototype._undestroy=v.undestroy,y.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,r("4362"),r("c8ba"))},ddb0:function(t,e,r){var n=r("da84"),i=r("fdbc"),o=r("e260"),a=r("9112"),s=r("b622"),u=s("iterator"),h=s("toStringTag"),f=o.values;for(var l in i){var c=n[l],d=c&&c.prototype;if(d){if(d[u]!==f)try{a(d,u,f)}catch(m){d[u]=f}if(d[h]||a(d,h,l),i[l])for(var p in o)if(d[p]!==o[p])try{a(d,p,o[p])}catch(m){d[p]=o[p]}}}},df75:function(t,e,r){var n=r("ca84"),i=r("7839");t.exports=Object.keys||function(t){return n(t,i)}},df7c:function(t,e,r){(function(t){function r(t,e){for(var r=0,n=t.length-1;n>=0;n--){var i=t[n];"."===i?t.splice(n,1):".."===i?(t.splice(n,1),r++):r&&(t.splice(n,1),r--)}if(e)for(;r--;r)t.unshift("..");return t}function n(t){"string"!==typeof t&&(t+="");var e,r=0,n=-1,i=!0;for(e=t.length-1;e>=0;--e)if(47===t.charCodeAt(e)){if(!i){r=e+1;break}}else-1===n&&(i=!1,n=e+1);return-1===n?"":t.slice(r,n)}function i(t,e){if(t.filter)return t.filter(e);for(var r=[],n=0;n=-1&&!n;o--){var a=o>=0?arguments[o]:t.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(e=a+"/"+e,n="/"===a.charAt(0))}return e=r(i(e.split("/"),(function(t){return!!t})),!n).join("/"),(n?"/":"")+e||"."},e.normalize=function(t){var n=e.isAbsolute(t),a="/"===o(t,-1);return t=r(i(t.split("/"),(function(t){return!!t})),!n).join("/"),t||n||(t="."),t&&a&&(t+="/"),(n?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(i(t,(function(t,e){if("string"!==typeof t)throw new TypeError("Arguments to path.join must be strings");return t})).join("/"))},e.relative=function(t,r){function n(t){for(var e=0;e=0;r--)if(""!==t[r])break;return e>r?[]:t.slice(e,r-e+1)}t=e.resolve(t).substr(1),r=e.resolve(r).substr(1);for(var i=n(t.split("/")),o=n(r.split("/")),a=Math.min(i.length,o.length),s=a,u=0;u=1;--o)if(e=t.charCodeAt(o),47===e){if(!i){n=o;break}}else i=!1;return-1===n?r?"/":".":r&&1===n?"/":t.slice(0,n)},e.basename=function(t,e){var r=n(t);return e&&r.substr(-1*e.length)===e&&(r=r.substr(0,r.length-e.length)),r},e.extname=function(t){"string"!==typeof t&&(t+="");for(var e=-1,r=0,n=-1,i=!0,o=0,a=t.length-1;a>=0;--a){var s=t.charCodeAt(a);if(47!==s)-1===n&&(i=!1,n=a+1),46===s?-1===e?e=a:1!==o&&(o=1):-1!==e&&(o=-1);else if(!i){r=a+1;break}}return-1===e||-1===n||0===o||1===o&&e===n-1&&e===r+1?"":t.slice(e,n)};var o="b"==="ab".substr(-1)?function(t,e,r){return t.substr(e,r)}:function(t,e,r){return e<0&&(e=t.length+e),t.substr(e,r)}}).call(this,r("4362"))},e01a:function(t,e,r){"use strict";var n=r("23e7"),i=r("83ab"),o=r("da84"),a=r("5135"),s=r("861d"),u=r("9bf2").f,h=r("e893"),f=o.Symbol;if(i&&"function"==typeof f&&(!("description"in f.prototype)||void 0!==f().description)){var l={},c=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof c?new f(t):void 0===t?f():f(t);return""===t&&(l[e]=!0),e};h(c,f);var d=c.prototype=f.prototype;d.constructor=c;var p=d.toString,m="Symbol(test)"==String(f("test")),v=/^Symbol\((.*)\)[^)]+$/;u(d,"description",{configurable:!0,get:function(){var t=s(this)?this.valueOf():this,e=p.call(t);if(a(l,t))return"";var r=m?e.slice(7,-1):e.replace(v,"$1");return""===r?void 0:r}}),n({global:!0,forced:!0},{Symbol:c})}},e07b:function(t,e,r){var n=r("5a76"),i=r("b5ca"),o=r("69f2"),a=r("8707").Buffer,s=r("7d2a"),u=r("9f9d"),h=r("8be6"),f=a.alloc(128),l={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function c(t,e,r){var n=d(t),i="sha512"===t||"sha384"===t?128:64;e.length>i?e=n(e):e.length=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==r?{value:n,done:!1}:"values"==r?{value:e[n],done:!1}:{value:[n,e[n]],done:!1}}),"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},e2cc:function(t,e,r){var n=r("6eeb");t.exports=function(t,e,r){for(var i in e)n(t,i,e[i],r);return t}},e372:function(t,e,r){e=t.exports=r("ad71"),e.Stream=e,e.Readable=e,e.Writable=r("dc14"),e.Duplex=r("b19a"),e.Transform=r("27bf"),e.PassThrough=r("780f")},e3db:function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},e538:function(t,e,r){var n=r("b622");e.f=n},e58c:function(t,e,r){"use strict";var n=r("fc6a"),i=r("a691"),o=r("50c4"),a=r("a640"),s=r("ae40"),u=Math.min,h=[].lastIndexOf,f=!!h&&1/[1].lastIndexOf(1,-0)<0,l=a("lastIndexOf"),c=s("indexOf",{ACCESSORS:!0,1:0}),d=f||!l||!c;t.exports=d?function(t){if(f)return h.apply(this,arguments)||0;var e=n(this),r=o(e.length),a=r-1;for(arguments.length>1&&(a=u(a,i(arguments[1]))),a<0&&(a=r+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:h},e666:function(t,e,r){"use strict";(function(e){var n=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=h;var i=r("4250"),o=r("19ea");r("3fb5")(h,i);for(var a=n(o.prototype),s=0;s1?arguments[1]:void 0)}))},e95a:function(t,e,r){var n=r("b622"),i=r("3f8c"),o=n("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(i.Array===t||a[o]===t)}},ea53:function(t,e,r){"use strict";var n=r("80af"),i=r("f3a3"),o=i.getNAF,a=i.getJSF,s=i.assert;function u(t,e){this.type=t,this.p=new n(e.p,16),this.red=e.prime?n.red(e.prime):n.mont(this.p),this.zero=new n(0).toRed(this.red),this.one=new n(1).toRed(this.red),this.two=new n(2).toRed(this.red),this.n=e.n&&new n(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function h(t,e){this.curve=t,this.type=e,this.precomputed=null}t.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(t,e){s(t.precomputed);var r=t._getDoubles(),n=o(e,1,this._bitLength),i=(1<=u;e--)h=(h<<1)+n[e];a.push(h)}for(var f=this.jpoint(null,null,null),l=this.jpoint(null,null,null),c=i;c>0;c--){for(u=0;u=0;h--){for(e=0;h>=0&&0===a[h];h--)e++;if(h>=0&&e++,u=u.dblp(e),h<0)break;var f=a[h];s(0!==f),u="affine"===t.type?f>0?u.mixedAdd(i[f-1>>1]):u.mixedAdd(i[-f-1>>1].neg()):f>0?u.add(i[f-1>>1]):u.add(i[-f-1>>1].neg())}return"affine"===t.type?u.toP():u},u.prototype._wnafMulAdd=function(t,e,r,n,i){for(var s=this._wnafT1,u=this._wnafT2,h=this._wnafT3,f=0,l=0;l=1;l-=2){var p=l-1,m=l;if(1===s[p]&&1===s[m]){var v=[e[p],null,null,e[m]];0===e[p].y.cmp(e[m].y)?(v[1]=e[p].add(e[m]),v[2]=e[p].toJ().mixedAdd(e[m].neg())):0===e[p].y.cmp(e[m].y.redNeg())?(v[1]=e[p].toJ().mixedAdd(e[m]),v[2]=e[p].add(e[m].neg())):(v[1]=e[p].toJ().mixedAdd(e[m]),v[2]=e[p].toJ().mixedAdd(e[m].neg()));var b=[-3,-1,-5,-7,0,7,5,1,3],g=a(r[p],r[m]);f=Math.max(g[0].length,f),h[p]=new Array(f),h[m]=new Array(f);for(var y=0;y=0;l--){var S=0;while(l>=0){var A=!0;for(y=0;y=0&&S++,_=_.dblp(S),l<0)break;for(y=0;y0?c=u[y][k-1>>1]:k<0&&(c=u[y][-k-1>>1].neg()),_="affine"===c.type?_.mixedAdd(c):_.add(c))}}for(l=0;l=Math.ceil((t.bitLength()+1)/e.step)},h.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,i=0;i=this._delta8){t=this.pending;var r=t.length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=n.join32(t,0,t.length-r,this.endian);for(var i=0;i>>24&255,n[i++]=t>>>16&255,n[i++]=t>>>8&255,n[i++]=255&t}else for(n[i++]=255&t,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=0,n[i++]=0,n[i++]=0,n[i++]=0,o=8;o(i>>1)-1?(i>>1)-u:u,o.isubn(s)):s=0,n[a]=s,o.iushrn(1)}return n}function u(t,e){var r=[[],[]];t=t.clone(),e=e.clone();var n=0,i=0;while(t.cmpn(-n)>0||e.cmpn(-i)>0){var o,a,s=t.andln(3)+n&3,u=e.andln(3)+i&3;if(3===s&&(s=-1),3===u&&(u=-1),0===(1&s))o=0;else{var h=t.andln(7)+n&7;o=3!==h&&5!==h||2!==u?s:-s}if(r[0].push(o),0===(1&u))a=0;else{h=e.andln(7)+i&7;a=3!==h&&5!==h||2!==s?u:-u}r[1].push(a),2*n===o+1&&(n=1-n),2*i===a+1&&(i=1-i),t.iushrn(1),e.iushrn(1)}return r}function h(t,e,r){var n="_"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}}function f(t){return"string"===typeof t?n.toArray(t,"hex"):t}function l(t){return new i(t,"hex","le")}n.assert=o,n.toArray=a.toArray,n.zero2=a.zero2,n.toHex=a.toHex,n.encode=a.encode,n.getNAF=s,n.getJSF=u,n.cachedProperty=h,n.parseBytes=f,n.intFromLE=l},f460:function(t,e,r){var n=r("98e6"),i=r("8707").Buffer;function o(t){var e=i.allocUnsafe(4);return e.writeUInt32BE(t,0),e}t.exports=function(t,e){var r,a=i.alloc(0),s=0;while(a.length>>32-e}function h(t,e,r,n,i,o,a){return u(t+(e&r|~e&n)+i+o|0,a)+e|0}function f(t,e,r,n,i,o,a){return u(t+(e&n|r&~n)+i+o|0,a)+e|0}function l(t,e,r,n,i,o,a){return u(t+(e^r^n)+i+o|0,a)+e|0}function c(t,e,r,n,i,o,a){return u(t+(r^(e|~n))+i+o|0,a)+e|0}n(s,i),s.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,n=this._b,i=this._c,o=this._d;r=h(r,n,i,o,t[0],3614090360,7),o=h(o,r,n,i,t[1],3905402710,12),i=h(i,o,r,n,t[2],606105819,17),n=h(n,i,o,r,t[3],3250441966,22),r=h(r,n,i,o,t[4],4118548399,7),o=h(o,r,n,i,t[5],1200080426,12),i=h(i,o,r,n,t[6],2821735955,17),n=h(n,i,o,r,t[7],4249261313,22),r=h(r,n,i,o,t[8],1770035416,7),o=h(o,r,n,i,t[9],2336552879,12),i=h(i,o,r,n,t[10],4294925233,17),n=h(n,i,o,r,t[11],2304563134,22),r=h(r,n,i,o,t[12],1804603682,7),o=h(o,r,n,i,t[13],4254626195,12),i=h(i,o,r,n,t[14],2792965006,17),n=h(n,i,o,r,t[15],1236535329,22),r=f(r,n,i,o,t[1],4129170786,5),o=f(o,r,n,i,t[6],3225465664,9),i=f(i,o,r,n,t[11],643717713,14),n=f(n,i,o,r,t[0],3921069994,20),r=f(r,n,i,o,t[5],3593408605,5),o=f(o,r,n,i,t[10],38016083,9),i=f(i,o,r,n,t[15],3634488961,14),n=f(n,i,o,r,t[4],3889429448,20),r=f(r,n,i,o,t[9],568446438,5),o=f(o,r,n,i,t[14],3275163606,9),i=f(i,o,r,n,t[3],4107603335,14),n=f(n,i,o,r,t[8],1163531501,20),r=f(r,n,i,o,t[13],2850285829,5),o=f(o,r,n,i,t[2],4243563512,9),i=f(i,o,r,n,t[7],1735328473,14),n=f(n,i,o,r,t[12],2368359562,20),r=l(r,n,i,o,t[5],4294588738,4),o=l(o,r,n,i,t[8],2272392833,11),i=l(i,o,r,n,t[11],1839030562,16),n=l(n,i,o,r,t[14],4259657740,23),r=l(r,n,i,o,t[1],2763975236,4),o=l(o,r,n,i,t[4],1272893353,11),i=l(i,o,r,n,t[7],4139469664,16),n=l(n,i,o,r,t[10],3200236656,23),r=l(r,n,i,o,t[13],681279174,4),o=l(o,r,n,i,t[0],3936430074,11),i=l(i,o,r,n,t[3],3572445317,16),n=l(n,i,o,r,t[6],76029189,23),r=l(r,n,i,o,t[9],3654602809,4),o=l(o,r,n,i,t[12],3873151461,11),i=l(i,o,r,n,t[15],530742520,16),n=l(n,i,o,r,t[2],3299628645,23),r=c(r,n,i,o,t[0],4096336452,6),o=c(o,r,n,i,t[7],1126891415,10),i=c(i,o,r,n,t[14],2878612391,15),n=c(n,i,o,r,t[5],4237533241,21),r=c(r,n,i,o,t[12],1700485571,6),o=c(o,r,n,i,t[3],2399980690,10),i=c(i,o,r,n,t[10],4293915773,15),n=c(n,i,o,r,t[1],2240044497,21),r=c(r,n,i,o,t[8],1873313359,6),o=c(o,r,n,i,t[15],4264355552,10),i=c(i,o,r,n,t[6],2734768916,15),n=c(n,i,o,r,t[13],1309151649,21),r=c(r,n,i,o,t[4],4149444226,6),o=c(o,r,n,i,t[11],3174756917,10),i=c(i,o,r,n,t[2],718787259,15),n=c(n,i,o,r,t[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+o|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=o.allocUnsafe(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},t.exports=s},f5df:function(t,e,r){var n=r("00ee"),i=r("c6b6"),o=r("b622"),a=o("toStringTag"),s="Arguments"==i(function(){return arguments}()),u=function(t,e){try{return t[e]}catch(r){}};t.exports=n?i:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=u(e=Object(t),a))?r:s?i(e):"Object"==(n=i(e))&&"function"==typeof e.callee?"Arguments":n}},f772:function(t,e,r){var n=r("5692"),i=r("90e3"),o=n("keys");t.exports=function(t){return o[t]||(o[t]=i(t))}},f83c:function(t,e){t.exports=function(){throw new Error("Readable.from is not available in the browser")}},f8cd:function(t,e,r){var n=r("a691");t.exports=function(t){var e=n(t);if(e<0)throw RangeError("The argument can't be less than 0");return e}},faa1:function(t,e,r){"use strict";var n,i="object"===typeof Reflect?Reflect:null,o=i&&"function"===typeof i.apply?i.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)};function a(t){console&&console.warn&&console.warn(t)}n=i&&"function"===typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var s=Number.isNaN||function(t){return t!==t};function u(){u.init.call(this)}t.exports=u,t.exports.once=w,u.EventEmitter=u,u.prototype._events=void 0,u.prototype._eventsCount=0,u.prototype._maxListeners=void 0;var h=10;function f(t){if("function"!==typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function l(t){return void 0===t._maxListeners?u.defaultMaxListeners:t._maxListeners}function c(t,e,r,n){var i,o,s;if(f(r),o=t._events,void 0===o?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,r.listener?r.listener:r),o=t._events),s=o[e]),void 0===s)s=o[e]=r,++t._eventsCount;else if("function"===typeof s?s=o[e]=n?[r,s]:[s,r]:n?s.unshift(r):s.push(r),i=l(t),i>0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=s.length,a(u)}return t}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=d.bind(n);return i.listener=r,n.wrapFn=i,i}function m(t,e,r){var n=t._events;if(void 0===n)return[];var i=n[e];return void 0===i?[]:"function"===typeof i?r?[i.listener||i]:[i]:r?y(i):b(i,i.length)}function v(t){var e=this._events;if(void 0!==e){var r=e[t];if("function"===typeof r)return 1;if(void 0!==r)return r.length}return 0}function b(t,e){for(var r=new Array(e),n=0;n0&&(a=e[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=i[t];if(void 0===u)return!1;if("function"===typeof u)o(u,this,e);else{var h=u.length,f=b(u,h);for(r=0;r=0;o--)if(r[o]===e||r[o].listener===e){a=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():g(r,i),1===r.length&&(n[t]=r[0]),void 0!==n.removeListener&&this.emit("removeListener",t,a||e)}return this},u.prototype.off=u.prototype.removeListener,u.prototype.removeAllListeners=function(t){var e,r,n;if(r=this._events,void 0===r)return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[t]&&(0===--this._eventsCount?this._events=Object.create(null):delete r[t]),this;if(0===arguments.length){var i,o=Object.keys(r);for(n=0;n=0;n--)this.removeListener(t,e[n]);return this},u.prototype.listeners=function(t){return m(this,t,!0)},u.prototype.rawListeners=function(t){return m(this,t,!1)},u.listenerCount=function(t,e){return"function"===typeof t.listenerCount?t.listenerCount(e):v.call(t,e)},u.prototype.listenerCount=v,u.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},fb2c:function(t,e,r){var n=r("74e8");n("Uint32",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},fb6a:function(t,e,r){"use strict";var n=r("23e7"),i=r("861d"),o=r("e8b5"),a=r("23cb"),s=r("50c4"),u=r("fc6a"),h=r("8418"),f=r("b622"),l=r("1dde"),c=r("ae40"),d=l("slice"),p=c("slice",{ACCESSORS:!0,0:0,1:2}),m=f("species"),v=[].slice,b=Math.max;n({target:"Array",proto:!0,forced:!d||!p},{slice:function(t,e){var r,n,f,l=u(this),c=s(l.length),d=a(t,c),p=a(void 0===e?c:e,c);if(o(l)&&(r=l.constructor,"function"!=typeof r||r!==Array&&!o(r.prototype)?i(r)&&(r=r[m],null===r&&(r=void 0)):r=void 0,r===Array||void 0===r))return v.call(l,d,p);for(n=new(void 0===r?Array:r)(b(p-d,0)),f=0;d0;return f(t,a,s,(function(t){n||(n=t),t&&o.forEach(l),a||(o.forEach(l),i(n))}))}));return e.reduce(c)}t.exports=p},fc6a:function(t,e,r){var n=r("44ad"),i=r("1d80");t.exports=function(t){return n(i(t))}},fd87:function(t,e,r){var n=r("74e8");n("Int8",(function(t){return function(e,r,n){return t(this,e,r,n)}}))},fda6:function(t,e,r){var n=r("8947"),i=r("4228"),o=r("e85f");function a(){return Object.keys(o)}e.createCipher=e.Cipher=n.createCipher,e.createCipheriv=e.Cipheriv=n.createCipheriv,e.createDecipher=e.Decipher=i.createDecipher,e.createDecipheriv=e.Decipheriv=i.createDecipheriv,e.listCiphers=e.getCiphers=a},fdac:function(t,e,r){var n;function i(t){this.rand=t}if(t.exports=function(t){return n||(n=new i(null)),n.generate(t)},t.exports.Rand=i,i.prototype.generate=function(t){return this._rand(t)},i.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),r=0;r 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","\n// We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n// https://github.com/kripken/emscripten/issues/5820\n// In addition, When you use emcc's modularization, it still expects to export a global object called `Module`,\n// which is able to be used/called before the WASM is loaded.\n// The modularization below exports a promise that loads and resolves to the actual sql.js module.\n// That way, this module can't be used before the WASM is finished loading.\n\n// We are going to define a function that a user will call to start loading initializing our Sql.js library\n// However, that function might be called multiple times, and on subsequent calls, we don't actually want it to instantiate a new instance of the Module\n// Instead, we want to return the previously loaded module\n\n// TODO: Make this not declare a global if used in the browser\nvar initSqlJsPromise = undefined;\n\nvar initSqlJs = function (moduleConfig) {\n\n if (initSqlJsPromise){\n return initSqlJsPromise;\n }\n // If we're here, we've never called this function before\n initSqlJsPromise = new Promise(function (resolveModule, reject) {\n\n // We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n // https://github.com/kripken/emscripten/issues/5820\n\n // The way to affect the loading of emcc compiled modules is to create a variable called `Module` and add\n // properties to it, like `preRun`, `postRun`, etc\n // We are using that to get notified when the WASM has finished loading.\n // Only then will we return our promise\n\n // If they passed in a moduleConfig object, use that\n // Otherwise, initialize Module to the empty object\n var Module = typeof moduleConfig !== 'undefined' ? moduleConfig : {};\n\n // EMCC only allows for a single onAbort function (not an array of functions)\n // So if the user defined their own onAbort function, we remember it and call it\n var originalOnAbortFunction = Module['onAbort'];\n Module['onAbort'] = function (errorThatCausedAbort) {\n reject(new Error(errorThatCausedAbort));\n if (originalOnAbortFunction){\n originalOnAbortFunction(errorThatCausedAbort);\n }\n };\n\n Module['postRun'] = Module['postRun'] || [];\n Module['postRun'].push(function () {\n // When Emscripted calls postRun, this promise resolves with the built Module\n resolveModule(Module);\n });\n\n // There is a section of code in the emcc-generated code below that looks like this:\n // (Note that this is lowercase `module`)\n // if (typeof module !== 'undefined') {\n // module['exports'] = Module;\n // }\n // When that runs, it's going to overwrite our own modularization export efforts in shell-post.js!\n // The only way to tell emcc not to emit it is to pass the MODULARIZE=1 or MODULARIZE_INSTANCE=1 flags,\n // but that carries with it additional unnecessary baggage/bugs we don't want either.\n // So, we have three options:\n // 1) We undefine `module`\n // 2) We remember what `module['exports']` was at the beginning of this function and we restore it later\n // 3) We write a script to remove those lines of code as part of the Make process.\n //\n // Since those are the only lines of code that care about module, we will undefine it. It's the most straightforward\n // of the options, and has the side effect of reducing emcc's efforts to modify the module if its output were to change in the future.\n // That's a nice side effect since we're handling the modularization efforts ourselves\n module = undefined;\n\n // The emcc-generated code and shell-post.js code goes below,\n // meaning that all of it runs inside of this promise. If anything throws an exception, our promise will abort\nvar Module=typeof Module!==\"undefined\"?Module:{};null;Module[\"onRuntimeInitialized\"]=function onRuntimeInitialized(){var apiTemp=stackAlloc(4);var cwrap=Module[\"cwrap\"];var NULL=0;var SQLITE_OK=0;var SQLITE_ROW=100;var SQLITE_DONE=101;var SQLITE_INTEGER=1;var SQLITE_FLOAT=2;var SQLITE_TEXT=3;var SQLITE_BLOB=4;var SQLITE_UTF8=1;var sqlite3_open=cwrap(\"sqlite3_open\",\"number\",[\"string\",\"number\"]);var sqlite3_close_v2=cwrap(\"sqlite3_close_v2\",\"number\",[\"number\"]);var sqlite3_exec=cwrap(\"sqlite3_exec\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\"]);var sqlite3_changes=cwrap(\"sqlite3_changes\",\"number\",[\"number\"]);var sqlite3_prepare_v2=cwrap(\"sqlite3_prepare_v2\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\"]);var sqlite3_sql=cwrap(\"sqlite3_sql\",\"string\",[\"number\"]);var sqlite3_normalized_sql=cwrap(\"sqlite3_normalized_sql\",\"string\",[\"number\"]);var sqlite3_prepare_v2_sqlptr=cwrap(\"sqlite3_prepare_v2\",\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"]);var sqlite3_bind_text=cwrap(\"sqlite3_bind_text\",\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"]);var sqlite3_bind_blob=cwrap(\"sqlite3_bind_blob\",\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"]);var sqlite3_bind_double=cwrap(\"sqlite3_bind_double\",\"number\",[\"number\",\"number\",\"number\"]);var sqlite3_bind_int=cwrap(\"sqlite3_bind_int\",\"number\",[\"number\",\"number\",\"number\"]);var sqlite3_bind_parameter_index=cwrap(\"sqlite3_bind_parameter_index\",\"number\",[\"number\",\"string\"]);var sqlite3_step=cwrap(\"sqlite3_step\",\"number\",[\"number\"]);var sqlite3_errmsg=cwrap(\"sqlite3_errmsg\",\"string\",[\"number\"]);var sqlite3_column_count=cwrap(\"sqlite3_column_count\",\"number\",[\"number\"]);var sqlite3_data_count=cwrap(\"sqlite3_data_count\",\"number\",[\"number\"]);var sqlite3_column_double=cwrap(\"sqlite3_column_double\",\"number\",[\"number\",\"number\"]);var sqlite3_column_text=cwrap(\"sqlite3_column_text\",\"string\",[\"number\",\"number\"]);var sqlite3_column_blob=cwrap(\"sqlite3_column_blob\",\"number\",[\"number\",\"number\"]);var sqlite3_column_bytes=cwrap(\"sqlite3_column_bytes\",\"number\",[\"number\",\"number\"]);var sqlite3_column_type=cwrap(\"sqlite3_column_type\",\"number\",[\"number\",\"number\"]);var sqlite3_column_name=cwrap(\"sqlite3_column_name\",\"string\",[\"number\",\"number\"]);var sqlite3_reset=cwrap(\"sqlite3_reset\",\"number\",[\"number\"]);var sqlite3_clear_bindings=cwrap(\"sqlite3_clear_bindings\",\"number\",[\"number\"]);var sqlite3_finalize=cwrap(\"sqlite3_finalize\",\"number\",[\"number\"]);var sqlite3_create_function_v2=cwrap(\"sqlite3_create_function_v2\",\"number\",[\"number\",\"string\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"]);var sqlite3_value_type=cwrap(\"sqlite3_value_type\",\"number\",[\"number\"]);var sqlite3_value_bytes=cwrap(\"sqlite3_value_bytes\",\"number\",[\"number\"]);var sqlite3_value_text=cwrap(\"sqlite3_value_text\",\"string\",[\"number\"]);var sqlite3_value_blob=cwrap(\"sqlite3_value_blob\",\"number\",[\"number\"]);var sqlite3_value_double=cwrap(\"sqlite3_value_double\",\"number\",[\"number\"]);var sqlite3_result_double=cwrap(\"sqlite3_result_double\",\"\",[\"number\",\"number\"]);var sqlite3_result_null=cwrap(\"sqlite3_result_null\",\"\",[\"number\"]);var sqlite3_result_text=cwrap(\"sqlite3_result_text\",\"\",[\"number\",\"string\",\"number\",\"number\"]);var sqlite3_result_blob=cwrap(\"sqlite3_result_blob\",\"\",[\"number\",\"number\",\"number\",\"number\"]);var sqlite3_result_int=cwrap(\"sqlite3_result_int\",\"\",[\"number\",\"number\"]);var sqlite3_result_error=cwrap(\"sqlite3_result_error\",\"\",[\"number\",\"string\",\"number\"]);var registerExtensionFunctions=cwrap(\"RegisterExtensionFunctions\",\"number\",[\"number\"]);function Statement(stmt1,db){this.stmt=stmt1;this.db=db;this.pos=1;this.allocatedmem=[]}Statement.prototype[\"bind\"]=function bind(values){if(!this.stmt){throw\"Statement closed\"}this[\"reset\"]();if(Array.isArray(values))return this.bindFromArray(values);if(values!=null&&typeof values===\"object\"){return this.bindFromObject(values)}return true};Statement.prototype[\"step\"]=function step(){if(!this.stmt){throw\"Statement closed\"}this.pos=1;var ret=sqlite3_step(this.stmt);switch(ret){case SQLITE_ROW:return true;case SQLITE_DONE:return false;default:throw this.db.handleError(ret)}};Statement.prototype.getNumber=function getNumber(pos){if(pos==null){pos=this.pos;this.pos+=1}return sqlite3_column_double(this.stmt,pos)};Statement.prototype.getString=function getString(pos){if(pos==null){pos=this.pos;this.pos+=1}return sqlite3_column_text(this.stmt,pos)};Statement.prototype.getBlob=function getBlob(pos){if(pos==null){pos=this.pos;this.pos+=1}var size=sqlite3_column_bytes(this.stmt,pos);var ptr=sqlite3_column_blob(this.stmt,pos);var result=new Uint8Array(size);for(var i=0;i>>0);if(data!=null){FS.createDataFile(\"/\",this.filename,data,true,true)}this.handleError(sqlite3_open(this.filename,apiTemp));this.db=getValue(apiTemp,\"i32\");registerExtensionFunctions(this.db);this.statements={};this.functions={}}Database.prototype[\"run\"]=function run(sql,params){if(!this.db){throw\"Database closed\"}if(params){var stmt=this[\"prepare\"](sql,params);try{stmt[\"step\"]()}finally{stmt[\"free\"]()}}else{this.handleError(sqlite3_exec(this.db,sql,0,0,apiTemp))}return this};Database.prototype[\"exec\"]=function exec(sql,params){if(!this.db){throw\"Database closed\"}var stack=stackSave();var stmt=null;try{var nextSqlPtr=allocateUTF8OnStack(sql);var pzTail=stackAlloc(4);var results=[];while(getValue(nextSqlPtr,\"i8\")!==NULL){setValue(apiTemp,0,\"i32\");setValue(pzTail,0,\"i32\");this.handleError(sqlite3_prepare_v2_sqlptr(this.db,nextSqlPtr,-1,apiTemp,pzTail));var pStmt=getValue(apiTemp,\"i32\");nextSqlPtr=getValue(pzTail,\"i32\");if(pStmt!==NULL){var curresult=null;stmt=new Statement(pStmt,this);if(params!=null){stmt.bind(params)}while(stmt[\"step\"]()){if(curresult===null){curresult={columns:stmt[\"getColumnNames\"](),values:[]};results.push(curresult)}curresult[\"values\"].push(stmt[\"get\"]())}stmt[\"free\"]()}}return results}catch(errCaught){if(stmt)stmt[\"free\"]();throw errCaught}finally{stackRestore(stack)}};Database.prototype[\"each\"]=function each(sql,params,callback,done){var stmt;if(typeof params===\"function\"){done=callback;callback=params;params=undefined}stmt=this[\"prepare\"](sql,params);try{while(stmt[\"step\"]()){callback(stmt[\"getAsObject\"]())}}finally{stmt[\"free\"]()}if(typeof done===\"function\"){return done()}return undefined};Database.prototype[\"prepare\"]=function prepare(sql,params){setValue(apiTemp,0,\"i32\");this.handleError(sqlite3_prepare_v2(this.db,sql,-1,apiTemp,NULL));var pStmt=getValue(apiTemp,\"i32\");if(pStmt===NULL){throw\"Nothing to prepare\"}var stmt=new Statement(pStmt,this);if(params!=null){stmt.bind(params)}this.statements[pStmt]=stmt;return stmt};Database.prototype[\"iterateStatements\"]=function iterateStatements(sql){return new StatementIterator(sql,this)};Database.prototype[\"export\"]=function exportDatabase(){Object.values(this.statements).forEach(function each(stmt){stmt[\"free\"]()});Object.values(this.functions).forEach(removeFunction);this.functions={};this.handleError(sqlite3_close_v2(this.db));var binaryDb=FS.readFile(this.filename,{encoding:\"binary\"});this.handleError(sqlite3_open(this.filename,apiTemp));this.db=getValue(apiTemp,\"i32\");return binaryDb};Database.prototype[\"close\"]=function close(){if(this.db===null){return}Object.values(this.statements).forEach(function each(stmt){stmt[\"free\"]()});Object.values(this.functions).forEach(removeFunction);this.functions={};this.handleError(sqlite3_close_v2(this.db));FS.unlink(\"/\"+this.filename);this.db=null};Database.prototype[\"handleError\"]=function handleError(returnCode){var errmsg;if(returnCode===SQLITE_OK){return null}errmsg=sqlite3_errmsg(this.db);throw new Error(errmsg)};Database.prototype[\"getRowsModified\"]=function getRowsModified(){return sqlite3_changes(this.db)};Database.prototype[\"create_function\"]=function create_function(name,func){function wrapped_func(cx,argc,argv){var result;function extract_blob(ptr){var size=sqlite3_value_bytes(ptr);var blob_ptr=sqlite3_value_blob(ptr);var blob_arg=new Uint8Array(size);for(var j=0;j1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);if(typeof module!==\"undefined\"){module[\"exports\"]=Module}process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function===\"function\"){var typeNames={\"i\":\"i32\",\"j\":\"i64\",\"f\":\"f32\",\"d\":\"f64\"};var type={parameters:[],results:sig[0]==\"v\"?[]:[typeNames[sig[0]]]};for(var i=1;i>0]=value;break;case\"i8\":HEAP8[ptr>>0]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;default:abort(\"invalid type for setValue: \"+type)}}function getValue(ptr,type,noSafe){type=type||\"i8\";if(type.charAt(type.length-1)===\"*\")type=\"i32\";switch(type){case\"i1\":return HEAP8[ptr>>0];case\"i8\":return HEAP8[ptr>>0];case\"i16\":return HEAP16[ptr>>1];case\"i32\":return HEAP32[ptr>>2];case\"i64\":return HEAP32[ptr>>2];case\"float\":return HEAPF32[ptr>>2];case\"double\":return HEAPF64[ptr>>3];default:abort(\"invalid type for getValue: \"+type)}return null}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"sql-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"L\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"Da\"];addOnInit(Module[\"asm\"][\"M\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){var result=WebAssembly.instantiate(binary,info);return result}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function demangle(func){return func}function demangleAll(text){var regex=/\\b_Z[\\w\\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+\" [\"+x+\"]\"})}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return\"(no stack trace available)\"}}return error.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module[\"extraStackTrace\"])js+=\"\\n\"+Module[\"extraStackTrace\"]();return demangleAll(js)}function ___assert_fail(condition,filename,line,func){abort(\"Assertion failed: \"+UTF8ToString(condition)+\", at: \"+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])}function _tzset(){if(_tzset.called)return;_tzset.called=true;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[__get_timezone()>>2]=stdTimezoneOffset*60;HEAP32[__get_daylight()>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function ___localtime_r(a0,a1){return _localtime_r(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";path=PATH.normalize(path);path=path.replace(/\\/$/,\"\");var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};function getRandomDevice(){if(typeof crypto===\"object\"&&typeof crypto[\"getRandomValues\"]===\"function\"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require(\"crypto\");return function(){return crypto_module[\"randomBytes\"](1)[0]}}catch(e){}}return function(){abort(\"randomDevice\")}}var PATH_FS={resolve:function(){var resolvedPath=\"\",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!==\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=path.charAt(0)===\"/\"}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(function(p){return!!p}),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}else{result=null}}else if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else if(typeof readline==\"function\"){result=readline();if(result!==null){result+=\"\\n\"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,65536);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[\".\",\"..\"];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),false);var current=FS.root;var current_path=\"/\";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?mount+\"/\"+path:mount+path}path=path?node.name+\"/\"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{\"r\":0,\"r+\":2,\"w\":577,\"w+\":578,\"a\":1089,\"a+\":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags===\"undefined\"){throw new Error(\"Unknown file open mode: \"+str)}return flags},flagsToPermissionString:function(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate===\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(\"warning: \"+FS.syncFSRequests+\" FS.syncfs operations in flight at once, probably just doing extra work\")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var i=0;i\"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={\"MEMFS\":MEMFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module[\"_fflush\"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);if(typeof Uint8Array!=\"undefined\")xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||\"\",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]===\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]===\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!==\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]===\"/\")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_access(path,amode){try{path=SYSCALLS.getStr(path);return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_chown32(path,owner,group){try{path=SYSCALLS.getStr(path);FS.chown(path,owner,group);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ftruncate64(fd,zero,low,high){try{var length=SYSCALLS.get64(low,high);FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process[\"hrtime\"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!==\"undefined\"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops&&stream.stream_ops.fsync){return-stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function setFileTime(path,time){path=UTF8ToString(path);try{FS.utime(path,time,time);return 0}catch(e){if(!(e instanceof FS.ErrnoError))throw e+\" : \"+stackTrace();setErrNo(e.errno);return-1}}function _utimes(path,times){var time;if(times){var mtime=times+8;time=HEAP32[mtime>>2]*1e3;time+=HEAP32[mtime+4>>2]/1e3}else{time=Date.now()}return setFileTime(path,time)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={\"a\":___assert_fail,\"r\":___localtime_r,\"E\":___sys_access,\"g\":___sys_chmod,\"x\":___sys_chown32,\"h\":___sys_fchmod,\"y\":___sys_fchown32,\"b\":___sys_fcntl64,\"i\":___sys_fstat64,\"D\":___sys_ftruncate64,\"B\":___sys_getcwd,\"w\":___sys_geteuid32,\"d\":___sys_getpid,\"j\":___sys_lstat64,\"I\":___sys_mkdir,\"F\":___sys_mmap2,\"G\":___sys_munmap,\"H\":___sys_open,\"z\":___sys_readlink,\"t\":___sys_rmdir,\"e\":___sys_stat64,\"v\":___sys_unlink,\"k\":_emscripten_get_heap_max,\"m\":_emscripten_memcpy_big,\"c\":_emscripten_resize_heap,\"q\":_emscripten_thread_sleep,\"o\":_environ_get,\"p\":_environ_sizes_get,\"f\":_fd_close,\"n\":_fd_fdstat_get,\"s\":_fd_read,\"l\":_fd_seek,\"C\":_fd_sync,\"u\":_fd_write,\"J\":_gettimeofday,\"K\":_time,\"A\":_utimes};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _memset=Module[\"_memset\"]=function(){return(_memset=Module[\"_memset\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _sqlite3_free=Module[\"_sqlite3_free\"]=function(){return(_sqlite3_free=Module[\"_sqlite3_free\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _sqlite3_step=Module[\"_sqlite3_step\"]=function(){return(_sqlite3_step=Module[\"_sqlite3_step\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _sqlite3_finalize=Module[\"_sqlite3_finalize\"]=function(){return(_sqlite3_finalize=Module[\"_sqlite3_finalize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=function(){return(_sqlite3_prepare_v2=Module[\"_sqlite3_prepare_v2\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _sqlite3_reset=Module[\"_sqlite3_reset\"]=function(){return(_sqlite3_reset=Module[\"_sqlite3_reset\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=function(){return(_sqlite3_clear_bindings=Module[\"_sqlite3_clear_bindings\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=function(){return(_sqlite3_value_blob=Module[\"_sqlite3_value_blob\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _sqlite3_value_text=Module[\"_sqlite3_value_text\"]=function(){return(_sqlite3_value_text=Module[\"_sqlite3_value_text\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=function(){return(_sqlite3_value_bytes=Module[\"_sqlite3_value_bytes\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _sqlite3_value_double=Module[\"_sqlite3_value_double\"]=function(){return(_sqlite3_value_double=Module[\"_sqlite3_value_double\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _sqlite3_value_int=Module[\"_sqlite3_value_int\"]=function(){return(_sqlite3_value_int=Module[\"_sqlite3_value_int\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _sqlite3_value_type=Module[\"_sqlite3_value_type\"]=function(){return(_sqlite3_value_type=Module[\"_sqlite3_value_type\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=function(){return(_sqlite3_result_blob=Module[\"_sqlite3_result_blob\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _sqlite3_result_double=Module[\"_sqlite3_result_double\"]=function(){return(_sqlite3_result_double=Module[\"_sqlite3_result_double\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _sqlite3_result_error=Module[\"_sqlite3_result_error\"]=function(){return(_sqlite3_result_error=Module[\"_sqlite3_result_error\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _sqlite3_result_int=Module[\"_sqlite3_result_int\"]=function(){return(_sqlite3_result_int=Module[\"_sqlite3_result_int\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=function(){return(_sqlite3_result_int64=Module[\"_sqlite3_result_int64\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _sqlite3_result_null=Module[\"_sqlite3_result_null\"]=function(){return(_sqlite3_result_null=Module[\"_sqlite3_result_null\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _sqlite3_result_text=Module[\"_sqlite3_result_text\"]=function(){return(_sqlite3_result_text=Module[\"_sqlite3_result_text\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _sqlite3_column_count=Module[\"_sqlite3_column_count\"]=function(){return(_sqlite3_column_count=Module[\"_sqlite3_column_count\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _sqlite3_data_count=Module[\"_sqlite3_data_count\"]=function(){return(_sqlite3_data_count=Module[\"_sqlite3_data_count\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=function(){return(_sqlite3_column_blob=Module[\"_sqlite3_column_blob\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=function(){return(_sqlite3_column_bytes=Module[\"_sqlite3_column_bytes\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _sqlite3_column_double=Module[\"_sqlite3_column_double\"]=function(){return(_sqlite3_column_double=Module[\"_sqlite3_column_double\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _sqlite3_column_text=Module[\"_sqlite3_column_text\"]=function(){return(_sqlite3_column_text=Module[\"_sqlite3_column_text\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _sqlite3_column_type=Module[\"_sqlite3_column_type\"]=function(){return(_sqlite3_column_type=Module[\"_sqlite3_column_type\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _sqlite3_column_name=Module[\"_sqlite3_column_name\"]=function(){return(_sqlite3_column_name=Module[\"_sqlite3_column_name\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=function(){return(_sqlite3_bind_blob=Module[\"_sqlite3_bind_blob\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=function(){return(_sqlite3_bind_double=Module[\"_sqlite3_bind_double\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=function(){return(_sqlite3_bind_int=Module[\"_sqlite3_bind_int\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=function(){return(_sqlite3_bind_text=Module[\"_sqlite3_bind_text\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=function(){return(_sqlite3_bind_parameter_index=Module[\"_sqlite3_bind_parameter_index\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _sqlite3_sql=Module[\"_sqlite3_sql\"]=function(){return(_sqlite3_sql=Module[\"_sqlite3_sql\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _sqlite3_normalized_sql=Module[\"_sqlite3_normalized_sql\"]=function(){return(_sqlite3_normalized_sql=Module[\"_sqlite3_normalized_sql\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=function(){return(_sqlite3_errmsg=Module[\"_sqlite3_errmsg\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _sqlite3_exec=Module[\"_sqlite3_exec\"]=function(){return(_sqlite3_exec=Module[\"_sqlite3_exec\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _sqlite3_changes=Module[\"_sqlite3_changes\"]=function(){return(_sqlite3_changes=Module[\"_sqlite3_changes\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=function(){return(_sqlite3_close_v2=Module[\"_sqlite3_close_v2\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=function(){return(_sqlite3_create_function_v2=Module[\"_sqlite3_create_function_v2\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _sqlite3_open=Module[\"_sqlite3_open\"]=function(){return(_sqlite3_open=Module[\"_sqlite3_open\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=function(){return(_RegisterExtensionFunctions=Module[\"_RegisterExtensionFunctions\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var __get_tzname=Module[\"__get_tzname\"]=function(){return(__get_tzname=Module[\"__get_tzname\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var __get_daylight=Module[\"__get_daylight\"]=function(){return(__get_daylight=Module[\"__get_daylight\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var __get_timezone=Module[\"__get_timezone\"]=function(){return(__get_timezone=Module[\"__get_timezone\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};Module[\"cwrap\"]=cwrap;Module[\"UTF8ToString\"]=UTF8ToString;Module[\"stackSave\"]=stackSave;Module[\"stackRestore\"]=stackRestore;Module[\"stackAlloc\"]=stackAlloc;var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n // The shell-pre.js and emcc-generated code goes above\n return Module;\n }); // The end of the promise being returned\n\n return initSqlJsPromise;\n} // The end of our initSqlJs function\n\n// This bit below is copied almost exactly from what you get when you use the MODULARIZE=1 flag with emcc\n// However, we don't want to use the emcc modularization. See shell-pre.js\nif (typeof exports === 'object' && typeof module === 'object'){\n module.exports = initSqlJs;\n // This will allow the module to be used in ES6 or CommonJS\n module.exports.default = initSqlJs;\n}\nelse if (typeof define === 'function' && define['amd']) {\n define([], function() { return initSqlJs; });\n}\nelse if (typeof exports === 'object'){\n exports[\"Module\"] = initSqlJs;\n}\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","module.exports = require('./lib/_stream_duplex.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve\n });\n return curve;\n }\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'\n ]\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'\n ]\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5'\n ]\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f'\n ]\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650'\n ]\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9'\n ]\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658'\n ]\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3'\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15'\n }\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre\n ]\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.REQUIRED = true;\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","module.exports = require('./browser/algorithms.json')\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\n\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n process.nextTick(function () {\n callback(null, out)\n })\n }, function (e) {\n process.nextTick(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n return process.nextTick(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","module.exports = require('./lib/_stream_writable.js');\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16)\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 }\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n};\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul)\n }\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1)\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1)\n }\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point))\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point))\n }\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate)\n }\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (var i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (var i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this._strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n var z = 0;\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n var b;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n b = c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n\n r |= b;\n z |= b;\n }\n\n assert(!(z & 0xf0), 'Invalid character in ' + str);\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n if (this.curve.twisted) {\n // E = a * C\n var e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n var h = this.z.redSqr();\n // J = F - 2 * H\n var j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n var e = c.redAdd(d);\n // H = (c * Z1)^2\n var h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n var j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","module.exports = {};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'\n ]\n ]\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'\n ]\n ]\n }\n};\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = require('events').EventEmitter;\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength)\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r\\+\\/\\=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r\\+\\/\\=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = new Buffer(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","import sqliteParser from 'sqlite-parser'\n\nexport default {\n * generateChunks (data, size) {\n const matrix = Object.keys(data).map(col => data[col])\n const [row] = matrix\n const transposedMatrix = row.map((value, column) => matrix.map(row => row[column]))\n\n const count = Math.ceil(transposedMatrix.length / size)\n\n for (let i = 0; i <= count - 1; i++) {\n const start = size * i\n const end = start + size\n yield transposedMatrix.slice(start, end)\n }\n },\n\n getInsertStmt (tabName, columns) {\n const colList = `\"${columns.join('\", \"')}\"`\n const params = columns.map(() => '?').join(', ')\n return `INSERT INTO \"${tabName}\" (${colList}) VALUES (${params});`\n },\n\n getCreateStatement (tabName, data) {\n let result = `CREATE table \"${tabName}\"(`\n for (const col in data) {\n // Get the first row of values to determine types\n const value = data[col][0]\n let type = ''\n switch (typeof value) {\n case 'number': {\n type = 'REAL'\n break\n }\n case 'boolean': {\n type = 'INTEGER'\n break\n }\n case 'string': {\n type = 'TEXT'\n break\n }\n default: type = 'TEXT'\n }\n result += `\"${col}\" ${type}, `\n }\n\n result = result.replace(/,\\s$/, ');')\n return result\n },\n\n getAst (sql) {\n // There is a bug is sqlite-parser\n // It throws an error if tokenizer has an arguments:\n // https://github.com/codeschool/sqlite-parser/issues/59\n const fixedSql = sql\n .replace(/(tokenize=[^,]+)\"tokenchars=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"remove_diacritics=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"separators=.+?\"/, '$1')\n .replace(/tokenize=.+?(,|\\))/, 'tokenize=unicode61$1')\n\n return sqliteParser(fixedSql)\n },\n\n /*\n * Return an array of columns with name and type. E.g.:\n * [\n * { name: 'id', type: 'INTEGER' },\n * { name: 'title', type: 'NVARCHAR(30)' },\n * ]\n */\n getColumns (sql) {\n const columns = []\n const ast = this.getAst(sql)\n\n const columnDefinition = ast.statement[0].format === 'table'\n ? ast.statement[0].definition\n : ast.statement[0].result.args.expression // virtual table\n\n columnDefinition.forEach(item => {\n if (item.variant === 'column' && ['identifier', 'definition'].includes(item.type)) {\n let type = item.datatype ? item.datatype.variant : 'N/A'\n if (item.datatype && item.datatype.args) {\n type = type + '(' + item.datatype.args.expression[0].value\n if (item.datatype.args.expression.length === 2) {\n type = type + ', ' + item.datatype.args.expression[1].value\n }\n type = type + ')'\n }\n columns.push({ name: item.name, type: type })\n }\n })\n return columns\n }\n}\n","import initSqlJs from 'sql.js/dist/sql-wasm.js'\nimport dbUtils from './_statements'\n\nlet SQL = null\nconst sqlModuleReady = initSqlJs().then(sqlModule => { SQL = sqlModule })\n\nfunction _getDataSourcesFromSqlResult (sqlResult) {\n if (!sqlResult) {\n return {}\n }\n const dataSorces = {}\n sqlResult.columns.forEach((column, index) => {\n dataSorces[column] = sqlResult.values.map(row => row[index])\n })\n return dataSorces\n}\n\nexport default class Sql {\n constructor () {\n this.db = null\n }\n\n static build () {\n return sqlModuleReady\n .then(() => {\n return new Sql()\n })\n }\n\n createDb (buffer) {\n if (this.db != null) this.db.close()\n this.db = new SQL.Database(buffer)\n return this.db\n }\n\n open (buffer) {\n this.createDb(buffer && new Uint8Array(buffer))\n return {\n ready: true\n }\n }\n\n exec (sql, params) {\n if (this.db === null) {\n this.createDb()\n }\n if (!sql) {\n throw new Error('exec: Missing query string')\n }\n const sqlResults = this.db.exec(sql, params)\n return sqlResults.map(result => _getDataSourcesFromSqlResult(result))\n }\n\n import (tabName, data, progressCounterId, progressCallback, chunkSize = 1500) {\n if (this.db === null) {\n this.createDb()\n }\n const columns = Object.keys(data)\n const rowCount = data[columns[0]].length\n this.db.exec(dbUtils.getCreateStatement(tabName, data))\n const chunks = dbUtils.generateChunks(data, chunkSize)\n const chunksAmount = Math.ceil(rowCount / chunkSize)\n let count = 0\n const insertStr = dbUtils.getInsertStmt(tabName, columns)\n const insertStmt = this.db.prepare(insertStr)\n\n progressCallback({ progress: 0, id: progressCounterId })\n for (const chunk of chunks) {\n this.db.exec('BEGIN')\n for (const row of chunk) {\n insertStmt.run(row)\n }\n this.db.exec('COMMIT')\n count++\n progressCallback({ progress: 100 * (count / chunksAmount), id: progressCounterId })\n }\n\n return {\n finish: true\n }\n }\n\n export () {\n return this.db.export()\n }\n\n close () {\n if (this.db) {\n this.db.close()\n }\n return {\n finished: true\n }\n }\n}\n","import registerPromiseWorker from 'promise-worker/register'\nimport Sql from './_sql'\n\nconst sqlReady = Sql.build()\n\nfunction processMsg (sql) {\n const data = this\n switch (data && data.action) {\n case 'open':\n return sql.open(data.buffer)\n case 'reopen':\n return sql.open(sql.export())\n case 'exec':\n return sql.exec(data.sql, data.params)\n case 'import':\n return sql.import(\n data.tabName,\n data.data,\n data.progressCounterId,\n postMessage\n )\n case 'export':\n return sql.export()\n case 'close':\n return sql.close()\n default:\n throw new Error('Invalid action : ' + (data && data.action))\n }\n}\n\nfunction onError (error) {\n return {\n error: error.message\n }\n}\n\nregisterPromiseWorker(data => {\n return sqlReady\n .then(processMsg.bind(data))\n .catch(onError)\n})\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\n\n// `RegExp.prototype.flags` getter\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nif (DESCRIPTORS && (/./g.flags != 'g' || UNSUPPORTED_Y)) {\n objectDefinePropertyModule.f(RegExp.prototype, 'flags', {\n configurable: true,\n get: regExpFlags\n });\n}\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","module.exports = require('events').EventEmitter;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new NativeArrayBuffer(); // eslint-disable-line no-new\n new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","/*!\n * sqlite-parser - v1.0.1\n * @copyright 2015-2017 Code School (http://codeschool.com)\n * @author Nick Wronski \n */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.sqliteParser = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o0){for(i=1,j=1;i0;},function(d,e){return{'args':Object.assign(e,d)};},function(s){return{'filter':keyNode(s)};},peg$otherExpectation(\"Error Message\"),function(m){return m;},peg$otherExpectation(\"Statement\"),function(m,s){return Object.assign(s,m);},peg$otherExpectation(\"QUERY PLAN\"),function(e,q){return{'explain':isOkay(e)};},peg$otherExpectation(\"QUERY PLAN Keyword\"),function(q,p){return foldStringKey([q,p]);},peg$otherExpectation(\"END Transaction Statement\"),function(s,t){return{'type':'statement','variant':'transaction','action':'commit'};},peg$otherExpectation(\"BEGIN Transaction Statement\"),function(s,m,t,n){return Object.assign({'type':'statement','variant':'transaction','action':'begin'},m,n);},function(t){return t;},function(m){return{'defer':keyNode(m)};},peg$otherExpectation(\"ROLLBACK Statement\"),function(s,n){return Object.assign({'type':'statement','variant':'transaction','action':'rollback'},n);},peg$otherExpectation(\"TO Clause\"),function(n){return{'savepoint':n};},function(s){return keyNode(s);},peg$otherExpectation(\"SAVEPOINT Statement\"),function(s,n){return{'type':'statement','variant':s,'target':n};},peg$otherExpectation(\"RELEASE Statement\"),function(s,a,n){return{'type':'statement','variant':keyNode(s),'target':n};},peg$otherExpectation(\"ALTER TABLE Statement\"),function(s,n,e){return Object.assign({'type':'statement','variant':keyNode(s),'target':n},e);},peg$otherExpectation(\"ALTER TABLE Keyword\"),function(a,t){return foldStringKey([a,t]);},peg$otherExpectation(\"RENAME TO Keyword\"),function(s,n){return{'action':keyNode(s),'name':n};},peg$otherExpectation(\"ADD COLUMN Keyword\"),function(s,d){return{'action':keyNode(s),'definition':d};},function(w,s){return Object.assign(s,w);},peg$otherExpectation(\"WITH Clause\"),function(s,v,t){var recursive={'variant':isOkay(v)?'recursive':'common'};if(isArrayOkay(t)){t=t.map(function(elem){return Object.assign(elem,recursive);});}return{'with':t};},function(f,r){return flattenAll([f,r]);},peg$otherExpectation(\"Common Table Expression\"),function(t,s){return Object.assign({'type':'expression','format':'table','variant':'common','target':t},s);},function(s){return{'expression':s};},function(w,s){return Object.assign(s,w);},peg$otherExpectation(\"ATTACH Statement\"),function(a,b,e,n){return{'type':'statement','variant':keyNode(a),'target':n,'attach':e};},peg$otherExpectation(\"DETACH Statement\"),function(d,b,n){return{'type':'statement','variant':keyNode(d),'target':n};},peg$otherExpectation(\"VACUUM Statement\"),function(v,t){return Object.assign({'type':'statement','variant':'vacuum'},t);},function(t){return{'target':t};},peg$otherExpectation(\"ANALYZE Statement\"),function(s,a){return Object.assign({'type':'statement','variant':keyNode(s)},a);},function(n){return{'target':n['name']};},peg$otherExpectation(\"REINDEX Statement\"),function(a){return{'target':a['name']};},peg$otherExpectation(\"PRAGMA Statement\"),function(s,n,v){return{'type':'statement','variant':keyNode(s),'target':n,'args':{'type':'expression','variant':'list','expression':v}};},function(v){return v;},function(v){return /^(yes|no|on|off|false|true|0|1)$/i.test(v);},function(v){return{'type':'literal','variant':'boolean','normalized':/^(yes|on|true|1)$/i.test(v)?'1':'0','value':v};},function(n){return keyNode(n);},function(n){return{'type':'identifier','variant':'name','name':n};},peg$otherExpectation(\"SELECT Statement\"),function(s,o,l){return Object.assign(s,o,l);},peg$otherExpectation(\"ORDER BY Clause\"),function(d){return{'order':d['result']};},peg$otherExpectation(\"LIMIT Clause\"),function(s,e,d){return{'limit':Object.assign({'type':'expression','variant':'limit','start':e},d)};},peg$otherExpectation(\"OFFSET Clause\"),function(o,e){return{'offset':e};},function(s,u){if(isArrayOkay(u)){return{'type':'statement','variant':'compound','statement':s,'compound':u};}else{return s;}},peg$otherExpectation(\"Union Operation\"),function(c,s){return{'type':'compound','variant':c,'statement':s};},function(s,f,w,g){return Object.assign({'type':'statement','variant':'select'},s,f,w,g);},peg$otherExpectation(\"SELECT Results Clause\"),function(d,t){return Object.assign({'result':t},d);},peg$otherExpectation(\"SELECT Results Modifier\"),function(s){return{'distinct':true};},function(s){return{};},peg$otherExpectation(\"FROM Clause\"),function(f,s){return{'from':s};},peg$otherExpectation(\"WHERE Clause\"),function(f,e){return{'where':makeArray(e)};},peg$otherExpectation(\"GROUP BY Clause\"),function(f,e,h){return Object.assign({'group':e},h);},peg$otherExpectation(\"HAVING Clause\"),function(f,e){return{'having':e};},function(q,s){return{'type':'identifier','variant':'star','name':foldStringWord([q,s])};},function(n,s){return foldStringWord([n,s]);},function(e,a){return Object.assign(e,a);},function(f,t){if(isArrayOkay(t)){return{'type':'map','variant':'join','source':f,'map':t};}return f;},function(cl,c){return Object.assign(cl,c);},peg$otherExpectation(\"CROSS JOIN Operation\"),function(n){return{'type':'join','variant':'cross join','source':n};},peg$otherExpectation(\"JOIN Operation\"),function(o,n){return{'type':'join','variant':keyNode(o),'source':n};},function(n,l,a){return Object.assign({'type':'function','variant':'table','name':n,'args':l},a);},peg$otherExpectation(\"Qualified Table\"),function(d,i){return Object.assign(d,i);},peg$otherExpectation(\"Qualified Table Identifier\"),function(n,a){return Object.assign(n,a);},peg$otherExpectation(\"Qualfied Table Index\"),function(s,n){return{'index':n};},function(n,i){return{'index':foldStringKey([n,i])};},peg$otherExpectation(\"SELECT Source\"),function(l,a){return Object.assign(l,a);},peg$otherExpectation(\"Subquery\"),function(s,a){return Object.assign(s,a);},peg$otherExpectation(\"Alias\"),function(a,n){return{'alias':n};},peg$otherExpectation(\"JOIN Operator\"),function(n,t,j){return foldStringKey([n,t,j]);},function(t,o){return foldStringKey([t,o]);},function(t){return keyNode(t);},peg$otherExpectation(\"JOIN Constraint\"),function(c){return{'constraint':Object.assign({'type':'constraint','variant':'join'},c)};},peg$otherExpectation(\"Join ON Clause\"),function(s,e){return{'format':keyNode(s),'on':e};},peg$otherExpectation(\"Join USING Clause\"),function(s,e){return{'format':keyNode(s),'using':e};},peg$otherExpectation(\"VALUES Clause\"),function(s,l){return{'type':'statement','variant':'select','result':l};},function(f,b){return{'result':flattenAll([f,b])};},function(i){return i;},peg$otherExpectation(\"Ordering Expression\"),function(e,d){if(isOkay(d)){return Object.assign({'type':'expression','variant':'order','expression':e},d);}return e;},peg$otherExpectation(\"Star\"),peg$otherExpectation(\"Fallback Type\"),peg$otherExpectation(\"INSERT Statement\"),function(k,t){return Object.assign({'type':'statement','variant':'insert'},k,t);},peg$otherExpectation(\"INSERT Keyword\"),function(a,m){return Object.assign({'action':keyNode(a)},m);},peg$otherExpectation(\"REPLACE Keyword\"),function(a){return{'action':keyNode(a)};},peg$otherExpectation(\"INSERT OR Modifier\"),function(s,m){return{'or':keyNode(m)};},function(i,r){return Object.assign({'into':i},r);},peg$otherExpectation(\"INTO Clause\"),function(s,t){return t;},peg$otherExpectation(\"INTO Keyword\"),function(r){return{'result':r};},peg$otherExpectation(\"Column List\"),function(f,b){return{'columns':flattenAll([f,b])};},function(c){return c;},peg$otherExpectation(\"Column Name\"),function(n){return{'type':'identifier','variant':'column','name':n};},function(s,r){return r;},peg$otherExpectation(\"VALUES Keyword\"),function(f,b){return flattenAll([f,b]);},peg$otherExpectation(\"Wrapped Expression List\"),function(e){return e;},peg$otherExpectation(\"DEFAULT VALUES Clause\"),function(d,v){return{'type':'values','variant':'default'};},peg$otherExpectation(\"Compound Operator\"),peg$otherExpectation(\"UNION Operator\"),function(s,a){return foldStringKey([s,a]);},function(a){return a;},peg$otherExpectation(\"UPDATE Statement\"),function(s,f,t,u,w,o,l){return Object.assign({'type':'statement','variant':s,'into':t},f,u,w,o,l);},peg$otherExpectation(\"UPDATE Keyword\"),peg$otherExpectation(\"UPDATE OR Modifier\"),function(t){return{'or':keyNode(t)};},peg$otherExpectation(\"SET Clause\"),function(c){return{'set':c};},peg$otherExpectation(\"Column Assignment\"),function(f,e){return{'type':'assignment','target':f,'value':e};},peg$otherExpectation(\"DELETE Statement\"),function(s,t,w,o,l){return Object.assign({'type':'statement','variant':s,'from':t},w,o,l);},peg$otherExpectation(\"DELETE Keyword\"),peg$otherExpectation(\"CREATE Statement\"),peg$otherExpectation(\"CREATE TABLE Statement\"),function(s,ne,id,r){return Object.assign({'type':'statement','name':id},s,r,ne);},function(s,tmp,t){return Object.assign({'variant':s,'format':keyNode(t)},tmp);},function(t){return{'temporary':isOkay(t)};},peg$otherExpectation(\"IF NOT EXISTS Modifier\"),function(i,n,e){return{'condition':makeArray({'type':'condition','variant':keyNode(i),'condition':{'type':'expression','variant':keyNode(e),'operator':foldStringKey([n,e])}})};},peg$otherExpectation(\"Table Definition\"),function(s,t,r){return Object.assign({'definition':flattenAll([s,t])},r);},function(r,w){return{'optimization':[{'type':'optimization','value':foldStringKey([r,w])}]};},function(f){return f;},peg$otherExpectation(\"Column Definition\"),function(n,t,c){return Object.assign({'type':'definition','variant':'column','name':n,'definition':isOkay(c)?c:[]},t);},peg$otherExpectation(\"Column Datatype\"),function(t){return{'datatype':t};},peg$otherExpectation(\"Column Constraint\"),function(n,c,ln){return Object.assign(c,n);},function(cl){return cl[cl.length-1];},peg$otherExpectation(\"CONSTRAINT Name\"),function(n){return{'name':n};},peg$otherExpectation(\"FOREIGN KEY Column Constraint\"),function(f){return Object.assign({'variant':'foreign key'},f);},peg$otherExpectation(\"PRIMARY KEY Column Constraint\"),function(p,d,c,a){return Object.assign(p,c,d,a);},peg$otherExpectation(\"PRIMARY KEY Keyword\"),function(s,k){return{'type':'constraint','variant':foldStringKey([s,k])};},peg$otherExpectation(\"AUTOINCREMENT Keyword\"),function(a){return{'autoIncrement':true};},function(s,c){return Object.assign({'type':'constraint','variant':s},c);},peg$otherExpectation(\"UNIQUE Column Constraint\"),peg$otherExpectation(\"NULL Column Constraint\"),function(n,l){return foldStringKey([n,l]);},peg$otherExpectation(\"CHECK Column Constraint\"),peg$otherExpectation(\"DEFAULT Column Constraint\"),function(s,v){return{'type':'constraint','variant':keyNode(s),'value':v};},peg$otherExpectation(\"COLLATE Column Constraint\"),function(c){return{'type':'constraint','variant':'collate','collate':c};},peg$otherExpectation(\"Table Constraint\"),function(n,c,nl){return Object.assign({'type':'definition','variant':'constraint'},c,n);},peg$otherExpectation(\"CHECK Table Constraint\"),function(c){return{'definition':makeArray(c)};},peg$otherExpectation(\"PRIMARY KEY Table Constraint\"),function(k,c,t){return{'definition':makeArray(Object.assign(k,t,c[1])),'columns':c[0]};},function(s){return{'type':'constraint','variant':keyNode(s)};},function(p,k){return foldStringKey([p,k]);},peg$otherExpectation(\"UNIQUE Keyword\"),function(u){return keyNode(u);},function(f,b){return[f].concat(b);},function(c){return c.map(function(_ref){var _ref2=_slicedToArray(_ref,1);var res=_ref2[0];return res;});},function(c){var auto=c.find(function(_ref3){var _ref4=_slicedToArray(_ref3,2);var res=_ref4[0];var a=_ref4[1];return isOkay(a);});return[c.map(function(_ref5){var _ref6=_slicedToArray(_ref5,2);var res=_ref6[0];var a=_ref6[1];return res;}),auto?auto[1]:null];},peg$otherExpectation(\"Indexed Column\"),function(e,d,a){var res=e;if(isOkay(d)){res=Object.assign({'type':'expression','variant':'order','expression':e},d);}return[res,a];},peg$otherExpectation(\"Collation\"),function(c){return{'collate':makeArray(c)};},peg$otherExpectation(\"Column Direction\"),function(t){return{'direction':keyNode(t)};},function(s,t){return{'conflict':keyNode(t)};},peg$otherExpectation(\"ON CONFLICT Keyword\"),function(o,c){return foldStringKey([o,c]);},function(k,c){return{'type':'constraint','variant':keyNode(k),'expression':c};},peg$otherExpectation(\"FOREIGN KEY Table Constraint\"),function(k,l,c){return Object.assign({'definition':makeArray(Object.assign(k,c))},l);},peg$otherExpectation(\"FOREIGN KEY Keyword\"),function(f,k){return{'type':'constraint','variant':foldStringKey([f,k])};},function(r,a,d){return Object.assign({'type':'constraint'},r,a,d);},peg$otherExpectation(\"REFERENCES Clause\"),function(s,t){return{'references':t};},function(f,b){return{'action':flattenAll([f,b])};},peg$otherExpectation(\"FOREIGN KEY Action Clause\"),function(m,a,n){return{'type':'action','variant':keyNode(m),'action':keyNode(n)};},peg$otherExpectation(\"FOREIGN KEY Action\"),function(s,v){return foldStringKey([s,v]);},function(c){return keyNode(c);},function(n,a){return foldStringKey([n,a]);},function(m,n){return{'type':'action','variant':keyNode(m),'action':n};},peg$otherExpectation(\"DEFERRABLE Clause\"),function(n,d,i){return{'defer':foldStringKey([n,d,i])};},function(i,d){return foldStringKey([i,d]);},function(s){return{'definition':makeArray(s)};},peg$otherExpectation(\"CREATE INDEX Statement\"),function(s,ne,n,o,w){return Object.assign({'type':'statement','target':n,'on':o},s,ne,w);},function(s,u,i){return Object.assign({'variant':keyNode(s),'format':keyNode(i)},u);},function(u){return{'unique':true};},peg$otherExpectation(\"ON Clause\"),function(o,t,c){return{'type':'identifier','variant':'expression','format':'table','name':t['name'],'columns':c};},peg$otherExpectation(\"CREATE TRIGGER Statement\"),function(s,ne,n,cd,o,me,wh,a){return Object.assign({'type':'statement','target':n,'on':o,'event':cd,'by':isOkay(me)?me:'row','action':makeArray(a)},s,ne,wh);},function(s,tmp,t){return Object.assign({'variant':keyNode(s),'format':keyNode(t)},tmp);},peg$otherExpectation(\"Conditional Clause\"),function(m,d){return Object.assign({'type':'event'},m,d);},function(m){return{'occurs':keyNode(m)};},function(i,o){return foldStringKey([i,o]);},peg$otherExpectation(\"Conditional Action\"),function(o){return{'event':keyNode(o)};},function(s,f){return{'event':keyNode(s),'of':f};},function(s,c){return c;},\"statement\",peg$literalExpectation(\"STATEMENT\",true),function(f,e,r){return keyNode(r);},function(w,e){return{'when':e};},peg$otherExpectation(\"Actions Clause\"),function(s,a,e){return a;},function(l){return l;},peg$otherExpectation(\"CREATE VIEW Statement\"),function(s,ne,n,r){return Object.assign({'type':'statement','target':n,'result':r},s,ne);},function(n,a){return Object.assign({'type':'identifier','variant':'expression','format':'view','name':n['name'],'columns':[]},a);},function(s,tmp,v){return Object.assign({'variant':keyNode(s),'format':keyNode(v)},tmp);},peg$otherExpectation(\"CREATE VIRTUAL TABLE Statement\"),function(s,ne,n,m){return Object.assign({'type':'statement','target':n,'result':m},s,ne);},function(s,v,t){return{'variant':keyNode(s),'format':keyNode(v)};},function(m,a){return Object.assign({'type':'module','variant':'virtual','name':m},a);},peg$otherExpectation(\"Module Arguments\"),function(l){return{'args':{'type':'expression','variant':'list','expression':isOkay(l)?l:[]}};},function(f,b){return flattenAll([f,b]).filter(function(arg){return isOkay(arg);});},function(a){return a;},peg$otherExpectation(\"DROP Statement\"),function(s,q){return Object.assign({'type':'statement','target':Object.assign(q,{'variant':s['format']})},s);},peg$otherExpectation(\"DROP Keyword\"),function(s,t,i){return Object.assign({'variant':keyNode(s),'format':t,'condition':[]},i);},peg$otherExpectation(\"DROP Type\"),peg$otherExpectation(\"IF EXISTS Keyword\"),function(i,e){return{'condition':[{'type':'condition','variant':keyNode(i),'condition':{'type':'expression','variant':keyNode(e),'operator':keyNode(e)}}]};},peg$otherExpectation(\"Or\"),peg$otherExpectation(\"Add\"),peg$otherExpectation(\"Subtract\"),peg$otherExpectation(\"Multiply\"),peg$otherExpectation(\"Divide\"),peg$otherExpectation(\"Modulo\"),peg$otherExpectation(\"Shift Left\"),peg$otherExpectation(\"Shift Right\"),peg$otherExpectation(\"Logical AND\"),peg$otherExpectation(\"Logical OR\"),peg$otherExpectation(\"Less Than\"),peg$otherExpectation(\"Greater Than\"),peg$otherExpectation(\"Less Than Or Equal\"),peg$otherExpectation(\"Greater Than Or Equal\"),peg$otherExpectation(\"Equal\"),peg$otherExpectation(\"Not Equal\"),peg$otherExpectation(\"IS\"),function(i,n){return foldStringKey([i,n]);},peg$otherExpectation(\"Identifier\"),peg$otherExpectation(\"Database Identifier\"),function(n){return{'type':'identifier','variant':'database','name':n};},peg$otherExpectation(\"Function Identifier\"),function(d,n){return{'type':'identifier','variant':'function','name':foldStringWord([d,n])};},peg$otherExpectation(\"Table Identifier\"),function(d,n){return{'type':'identifier','variant':'table','name':foldStringWord([d,n])};},function(n,d){return foldStringWord([n,d]);},peg$otherExpectation(\"Column Identifier\"),function(q,n){return{'type':'identifier','variant':'column','name':foldStringWord([q,n])};},function(){return'';},function(d,t){return foldStringWord([d,t]);},peg$otherExpectation(\"Collation Identifier\"),function(n){return{'type':'identifier','variant':'collation','name':n};},peg$otherExpectation(\"Savepoint Identifier\"),function(n){return{'type':'identifier','variant':'savepoint','name':n};},peg$otherExpectation(\"Index Identifier\"),function(d,n){return{'type':'identifier','variant':'index','name':foldStringWord([d,n])};},peg$otherExpectation(\"Trigger Identifier\"),function(d,n){return{'type':'identifier','variant':'trigger','name':foldStringWord([d,n])};},peg$otherExpectation(\"View Identifier\"),function(d,n){return{'type':'identifier','variant':'view','name':foldStringWord([d,n])};},peg$otherExpectation(\"Pragma Identifier\"),function(d,n){return{'type':'identifier','variant':'pragma','name':foldStringWord([d,n])};},peg$otherExpectation(\"CTE Identifier\"),function(d){return d;},function(n,a){return Object.assign({'type':'identifier','variant':'expression','format':'table','name':n['name'],'columns':[]},a);},peg$otherExpectation(\"Table Constraint Identifier\"),function(n){return{'type':'identifier','variant':'constraint','format':'table','name':n};},peg$otherExpectation(\"Column Constraint Identifier\"),function(n){return{'type':'identifier','variant':'constraint','format':'column','name':n};},peg$otherExpectation(\"Datatype Name\"),function(t){return[t,'text'];},function(t){return[t,'real'];},function(t){return[t,'numeric'];},function(t){return[t,'integer'];},function(t){return[t,'none'];},peg$otherExpectation(\"TEXT Datatype Name\"),\"n\",peg$literalExpectation(\"N\",true),\"var\",peg$literalExpectation(\"VAR\",true),\"char\",peg$literalExpectation(\"CHAR\",true),\"tiny\",peg$literalExpectation(\"TINY\",true),\"medium\",peg$literalExpectation(\"MEDIUM\",true),\"long\",peg$literalExpectation(\"LONG\",true),\"text\",peg$literalExpectation(\"TEXT\",true),\"clob\",peg$literalExpectation(\"CLOB\",true),peg$otherExpectation(\"REAL Datatype Name\"),\"float\",peg$literalExpectation(\"FLOAT\",true),\"real\",peg$literalExpectation(\"REAL\",true),peg$otherExpectation(\"DOUBLE Datatype Name\"),\"double\",peg$literalExpectation(\"DOUBLE\",true),\"precision\",peg$literalExpectation(\"PRECISION\",true),function(d,p){return foldStringWord([d,p]);},peg$otherExpectation(\"NUMERIC Datatype Name\"),\"numeric\",peg$literalExpectation(\"NUMERIC\",true),\"decimal\",peg$literalExpectation(\"DECIMAL\",true),\"boolean\",peg$literalExpectation(\"BOOLEAN\",true),\"date\",peg$literalExpectation(\"DATE\",true),\"time\",peg$literalExpectation(\"TIME\",true),\"stamp\",peg$literalExpectation(\"STAMP\",true),\"string\",peg$literalExpectation(\"STRING\",true),peg$otherExpectation(\"INTEGER Datatype Name\"),\"int\",peg$literalExpectation(\"INT\",true),\"2\",peg$literalExpectation(\"2\",false),\"4\",peg$literalExpectation(\"4\",false),\"8\",peg$literalExpectation(\"8\",false),\"eger\",peg$literalExpectation(\"EGER\",true),\"big\",peg$literalExpectation(\"BIG\",true),\"small\",peg$literalExpectation(\"SMALL\",true),\"floating\",peg$literalExpectation(\"FLOATING\",true),\"point\",peg$literalExpectation(\"POINT\",true),function(f,p){return foldStringWord([f,p]);},peg$otherExpectation(\"BLOB Datatype Name\"),\"blob\",peg$literalExpectation(\"BLOB\",true),/^[a-z0-9$_]/i,peg$classExpectation([[\"a\",\"z\"],[\"0\",\"9\"],\"$\",\"_\"],false,true),\"\\\\u\",peg$literalExpectation(\"\\\\u\",false),/^[a-f0-9]/i,peg$classExpectation([[\"a\",\"f\"],[\"0\",\"9\"]],false,true),function(u,s){return foldStringWord([u,s]).toLowerCase();},function(n){return keyNode(n);},peg$anyExpectation(),function(n){return textNode(n);},/^[ \\t]/,peg$classExpectation([\" \",\"\\t\"],false,false),\"\\\"\",peg$literalExpectation(\"\\\"\",false),\"\\\"\\\"\",peg$literalExpectation(\"\\\"\\\"\",false),/^[^\"]/,peg$classExpectation([\"\\\"\"],true,false),function(n){return unescape(n,'\"');},\"'\",peg$literalExpectation(\"'\",false),function(n){return unescape(n,\"'\");},\"`\",peg$literalExpectation(\"`\",false),\"``\",peg$literalExpectation(\"``\",false),/^[^`]/,peg$classExpectation([\"`\"],true,false),function(n){return unescape(n,'`');},peg$otherExpectation(\"Open Bracket\"),\"[\",peg$literalExpectation(\"[\",false),peg$otherExpectation(\"Close Bracket\"),\"]\",peg$literalExpectation(\"]\",false),peg$otherExpectation(\"Open Parenthesis\"),\"(\",peg$literalExpectation(\"(\",false),peg$otherExpectation(\"Close Parenthesis\"),\")\",peg$literalExpectation(\")\",false),peg$otherExpectation(\"Comma\"),\",\",peg$literalExpectation(\",\",false),peg$otherExpectation(\"Period\"),\".\",peg$literalExpectation(\".\",false),peg$otherExpectation(\"Asterisk\"),\"*\",peg$literalExpectation(\"*\",false),peg$otherExpectation(\"Question Mark\"),\"?\",peg$literalExpectation(\"?\",false),peg$otherExpectation(\"Single Quote\"),peg$otherExpectation(\"Double Quote\"),peg$otherExpectation(\"Backtick\"),peg$otherExpectation(\"Tilde\"),\"~\",peg$literalExpectation(\"~\",false),peg$otherExpectation(\"Plus\"),\"+\",peg$literalExpectation(\"+\",false),peg$otherExpectation(\"Minus\"),\"-\",peg$literalExpectation(\"-\",false),\"=\",peg$literalExpectation(\"=\",false),peg$otherExpectation(\"Ampersand\"),\"&\",peg$literalExpectation(\"&\",false),peg$otherExpectation(\"Pipe\"),\"|\",peg$literalExpectation(\"|\",false),\"%\",peg$literalExpectation(\"%\",false),\"<\",peg$literalExpectation(\"<\",false),\">\",peg$literalExpectation(\">\",false),peg$otherExpectation(\"Exclamation\"),\"!\",peg$literalExpectation(\"!\",false),peg$otherExpectation(\"Semicolon\"),\";\",peg$literalExpectation(\";\",false),peg$otherExpectation(\"Colon\"),peg$otherExpectation(\"Forward Slash\"),\"/\",peg$literalExpectation(\"/\",false),peg$otherExpectation(\"Backslash\"),\"\\\\\",peg$literalExpectation(\"\\\\\",false),\"abort\",peg$literalExpectation(\"ABORT\",true),\"action\",peg$literalExpectation(\"ACTION\",true),\"add\",peg$literalExpectation(\"ADD\",true),\"after\",peg$literalExpectation(\"AFTER\",true),\"all\",peg$literalExpectation(\"ALL\",true),\"alter\",peg$literalExpectation(\"ALTER\",true),\"analyze\",peg$literalExpectation(\"ANALYZE\",true),\"and\",peg$literalExpectation(\"AND\",true),\"as\",peg$literalExpectation(\"AS\",true),\"asc\",peg$literalExpectation(\"ASC\",true),\"attach\",peg$literalExpectation(\"ATTACH\",true),\"autoincrement\",peg$literalExpectation(\"AUTOINCREMENT\",true),\"before\",peg$literalExpectation(\"BEFORE\",true),\"begin\",peg$literalExpectation(\"BEGIN\",true),\"between\",peg$literalExpectation(\"BETWEEN\",true),\"by\",peg$literalExpectation(\"BY\",true),\"cascade\",peg$literalExpectation(\"CASCADE\",true),\"case\",peg$literalExpectation(\"CASE\",true),\"cast\",peg$literalExpectation(\"CAST\",true),\"check\",peg$literalExpectation(\"CHECK\",true),\"collate\",peg$literalExpectation(\"COLLATE\",true),\"column\",peg$literalExpectation(\"COLUMN\",true),\"commit\",peg$literalExpectation(\"COMMIT\",true),\"conflict\",peg$literalExpectation(\"CONFLICT\",true),\"constraint\",peg$literalExpectation(\"CONSTRAINT\",true),\"create\",peg$literalExpectation(\"CREATE\",true),\"cross\",peg$literalExpectation(\"CROSS\",true),\"current_date\",peg$literalExpectation(\"CURRENT_DATE\",true),\"current_time\",peg$literalExpectation(\"CURRENT_TIME\",true),\"current_timestamp\",peg$literalExpectation(\"CURRENT_TIMESTAMP\",true),\"database\",peg$literalExpectation(\"DATABASE\",true),\"default\",peg$literalExpectation(\"DEFAULT\",true),\"deferrable\",peg$literalExpectation(\"DEFERRABLE\",true),\"deferred\",peg$literalExpectation(\"DEFERRED\",true),\"delete\",peg$literalExpectation(\"DELETE\",true),\"desc\",peg$literalExpectation(\"DESC\",true),\"detach\",peg$literalExpectation(\"DETACH\",true),\"distinct\",peg$literalExpectation(\"DISTINCT\",true),\"drop\",peg$literalExpectation(\"DROP\",true),\"each\",peg$literalExpectation(\"EACH\",true),\"else\",peg$literalExpectation(\"ELSE\",true),\"end\",peg$literalExpectation(\"END\",true),\"escape\",peg$literalExpectation(\"ESCAPE\",true),\"except\",peg$literalExpectation(\"EXCEPT\",true),\"exclusive\",peg$literalExpectation(\"EXCLUSIVE\",true),\"exists\",peg$literalExpectation(\"EXISTS\",true),\"explain\",peg$literalExpectation(\"EXPLAIN\",true),\"fail\",peg$literalExpectation(\"FAIL\",true),\"for\",peg$literalExpectation(\"FOR\",true),\"foreign\",peg$literalExpectation(\"FOREIGN\",true),\"from\",peg$literalExpectation(\"FROM\",true),\"full\",peg$literalExpectation(\"FULL\",true),\"glob\",peg$literalExpectation(\"GLOB\",true),\"group\",peg$literalExpectation(\"GROUP\",true),\"having\",peg$literalExpectation(\"HAVING\",true),\"if\",peg$literalExpectation(\"IF\",true),\"ignore\",peg$literalExpectation(\"IGNORE\",true),\"immediate\",peg$literalExpectation(\"IMMEDIATE\",true),\"in\",peg$literalExpectation(\"IN\",true),\"index\",peg$literalExpectation(\"INDEX\",true),\"indexed\",peg$literalExpectation(\"INDEXED\",true),\"initially\",peg$literalExpectation(\"INITIALLY\",true),\"inner\",peg$literalExpectation(\"INNER\",true),\"insert\",peg$literalExpectation(\"INSERT\",true),\"instead\",peg$literalExpectation(\"INSTEAD\",true),\"intersect\",peg$literalExpectation(\"INTERSECT\",true),\"into\",peg$literalExpectation(\"INTO\",true),\"is\",peg$literalExpectation(\"IS\",true),\"isnull\",peg$literalExpectation(\"ISNULL\",true),\"join\",peg$literalExpectation(\"JOIN\",true),\"key\",peg$literalExpectation(\"KEY\",true),\"left\",peg$literalExpectation(\"LEFT\",true),\"like\",peg$literalExpectation(\"LIKE\",true),\"limit\",peg$literalExpectation(\"LIMIT\",true),\"match\",peg$literalExpectation(\"MATCH\",true),\"natural\",peg$literalExpectation(\"NATURAL\",true),\"no\",peg$literalExpectation(\"NO\",true),\"not\",peg$literalExpectation(\"NOT\",true),\"notnull\",peg$literalExpectation(\"NOTNULL\",true),\"of\",peg$literalExpectation(\"OF\",true),\"offset\",peg$literalExpectation(\"OFFSET\",true),\"on\",peg$literalExpectation(\"ON\",true),\"or\",peg$literalExpectation(\"OR\",true),\"order\",peg$literalExpectation(\"ORDER\",true),\"outer\",peg$literalExpectation(\"OUTER\",true),\"plan\",peg$literalExpectation(\"PLAN\",true),\"pragma\",peg$literalExpectation(\"PRAGMA\",true),\"primary\",peg$literalExpectation(\"PRIMARY\",true),\"query\",peg$literalExpectation(\"QUERY\",true),\"raise\",peg$literalExpectation(\"RAISE\",true),\"recursive\",peg$literalExpectation(\"RECURSIVE\",true),\"references\",peg$literalExpectation(\"REFERENCES\",true),\"regexp\",peg$literalExpectation(\"REGEXP\",true),\"reindex\",peg$literalExpectation(\"REINDEX\",true),\"release\",peg$literalExpectation(\"RELEASE\",true),\"rename\",peg$literalExpectation(\"RENAME\",true),\"replace\",peg$literalExpectation(\"REPLACE\",true),\"restrict\",peg$literalExpectation(\"RESTRICT\",true),\"right\",peg$literalExpectation(\"RIGHT\",true),\"rollback\",peg$literalExpectation(\"ROLLBACK\",true),\"row\",peg$literalExpectation(\"ROW\",true),\"rowid\",peg$literalExpectation(\"ROWID\",true),\"savepoint\",peg$literalExpectation(\"SAVEPOINT\",true),\"select\",peg$literalExpectation(\"SELECT\",true),\"set\",peg$literalExpectation(\"SET\",true),\"table\",peg$literalExpectation(\"TABLE\",true),\"temp\",peg$literalExpectation(\"TEMP\",true),\"temporary\",peg$literalExpectation(\"TEMPORARY\",true),\"then\",peg$literalExpectation(\"THEN\",true),\"to\",peg$literalExpectation(\"TO\",true),\"transaction\",peg$literalExpectation(\"TRANSACTION\",true),\"trigger\",peg$literalExpectation(\"TRIGGER\",true),\"union\",peg$literalExpectation(\"UNION\",true),\"unique\",peg$literalExpectation(\"UNIQUE\",true),\"update\",peg$literalExpectation(\"UPDATE\",true),\"using\",peg$literalExpectation(\"USING\",true),\"vacuum\",peg$literalExpectation(\"VACUUM\",true),\"values\",peg$literalExpectation(\"VALUES\",true),\"view\",peg$literalExpectation(\"VIEW\",true),\"virtual\",peg$literalExpectation(\"VIRTUAL\",true),\"when\",peg$literalExpectation(\"WHEN\",true),\"where\",peg$literalExpectation(\"WHERE\",true),\"with\",peg$literalExpectation(\"WITH\",true),\"without\",peg$literalExpectation(\"WITHOUT\",true),function(r){return keyNode(r);},function(){return null;},peg$otherExpectation(\"Line Comment\"),\"--\",peg$literalExpectation(\"--\",false),/^[\\n\\v\\f\\r]/,peg$classExpectation([\"\\n\",\"\\v\",\"\\f\",\"\\r\"],false,false),peg$otherExpectation(\"Block Comment\"),\"/*\",peg$literalExpectation(\"/*\",false),\"*/\",peg$literalExpectation(\"*/\",false),/^[\\n\\v\\f\\r\\t ]/,peg$classExpectation([\"\\n\",\"\\v\",\"\\f\",\"\\r\",\"\\t\",\" \"],false,false),peg$otherExpectation(\"Whitespace\"),\"__TODO__\",peg$literalExpectation(\"__TODO__\",false)];var peg$bytecode=[peg$decode(\"%;\\u023F/H#;#/?$;\\\".\\\" &\\\"/1$;#/($8$: $!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u023F/C#;#/:$;x/1$;#/($8$: $!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;x/B#;\\u023F/9$$;%0#*;%&/)$8#:!#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"$;\\u01B30#*;\\u01B3&\"),peg$decode(\"$;\\u01B3/�#*;\\u01B3&&&#\"),peg$decode(\"%;$/:#;x/1$;\\u023F/($8#:\\\"#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;'.# &;(/@#;\\u023F/7$;*.\\\" &\\\"/)$8#:$#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7#\"),peg$decode(\"%;\\u018B/' 8!:%!! )\"),peg$decode(\"<%;\\u0195/9#$;)0#*;)&/)$8\\\":'\\\"\\\"! )(\\\"'#&'#=.\\\" 7&\"),peg$decode(\"%4(\\\"\\\"5!7)/1#;\\u0197/($8\\\":*\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/R#;5/I$;\\u023F/@$;+.\\\" &\\\"/2$;\\u01A1/)$8%:,%\\\"#!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7+\"),peg$decode(\"%;\\u01A2/C#;\\u023F/:$;5/1$;\\u023F/($8$:-$!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\";5.; &;6.5 &;2./ &;-.) &;..# &;/\"),peg$decode(\"<%;\\u0206/1#;\\u023F/($8\\\":/\\\"!!)(\\\"'#&'#=.\\\" 7.\"),peg$decode(\"<%;\\u01D2.) &;\\u01D4.# &;\\u01D3/1#;\\u023F/($8\\\":1\\\"!!)(\\\"'#&'#=.\\\" 70\"),peg$decode(\"<%;4.\\\" &\\\"/2#;0/)$8\\\":3\\\"\\\"! )(\\\"'#&'#=.\\\" 72\"),peg$decode(\"<%;\\u01A6/A#$;10#*;1&/1$;\\u01A6/($8#:5#!!)(#'#(\\\"'#&'#=.\\\" 74\"),peg$decode(\"26\\\"\\\"6677.) &48\\\"\\\"5!79\"),peg$decode(\"<%4;\\\"\\\"5!7!! )\"),peg$decode(\"<%;\\u01AA.# &;\\u01AB/' 8!:\\\"!! )=.\\\" 7?\"),peg$decode(\"%;4.\\\" &\\\"/2#;6/)$8\\\":@\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";<.# &;7\"),peg$decode(\"%;8/7#;;.\\\" &\\\"/)$8\\\":A\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<;9.# &;:=.\\\" 7B\"),peg$decode(\"%$;>/�#*;>&&&#/7#;:.\\\" &\\\"/)$8\\\":C\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u01A3/9#$;>0#*;>&/)$8\\\":D\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%3F\\\"\\\"5!7G/T#4H\\\"\\\"5!7I.\\\" &\\\"/@$$;>/�#*;>&&&#/*$8#:J##\\\"! )(#'#(\\\"'#&'#=.\\\" 7E\"),peg$decode(\"<%3L\\\"\\\"5\\\"7M/?#$;=/�#*;=&&&#/)$8\\\":N\\\"\\\"! )(\\\"'#&'#=.\\\" 7K\"),peg$decode(\"4O\\\"\\\"5!7P\"),peg$decode(\"4Q\\\"\\\"5!7R\"),peg$decode(\"<%;@.) &;B.# &;C/' 8!:T!! )=.\\\" 7S\"),peg$decode(\"<%;\\u01A5/@#;A.\\\" &\\\"/2$;\\u023F/)$8#:V#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7U\"),peg$decode(\"%4W\\\"\\\"5!7X/9#$;>0#*;>&/)$8\\\":Y\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%4[\\\"\\\"5!7\\\\/H#$;\\u0193/�#*;\\u0193&&&#/2$;\\u023F/)$8#:]#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7Z\"),peg$decode(\"<%2_\\\"\\\"6_7`/o#$;\\u0193.) &2a\\\"\\\"6a7b/2#0/*;\\u0193.) &2a\\\"\\\"6a7b&&&#/A$;\\u023F/8$;D.\\\" &\\\"/*$8$:c$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7^\"),peg$decode(\"%;\\u019B/1#;\\u023F/($8\\\":d\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;F.\\\" &\\\"/;#;\\u023F/2$;\\x94/)$8#:f#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7e\"),peg$decode(\"<%;k.\\\" &\\\"/;#;\\u01E4/2$;\\u023F/)$8#:h#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7g\"),peg$decode(\"<%;\\u0211/_#;\\u023F/V$;\\u01A0/M$;\\u023F/D$;H/;$;\\u023F/2$;\\u01A1/)$8':j'\\\"&\\\")(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7i\"),peg$decode(\"<%;I.# &;J/' 8!:l!! )=.\\\" 7k\"),peg$decode(\"<%;\\u01EF/' 8!:n!! )=.\\\" 7m\"),peg$decode(\"%;\\u021B.) &;\\u01B7.# &;\\u01E6/M#;\\u023F/D$;\\u01A2/;$;\\u023F/2$;w/)$8%:o%\\\"$ )(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\";?./ &;t.) &;,.# &;\\u017D\"),peg$decode(\"%;\\u01A0/L#;\\u023F/C$;p/:$;\\u023F/1$;\\u01A1/($8%:p%!\\\")(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\";L.; &;E.5 &;_./ &;a.) &;G.# &;K\"),peg$decode(\"%;M/;#;\\u023F/2$;Q/)$8#:q#\\\"\\\" )(#'#(\\\"'#&'#.# &;M\"),peg$decode(\"%;P/A#;\\u023F/8$;N.# &;p/)$8#:r#\\\"\\\" )(#'#(\\\"'#&'#.# &;N\"),peg$decode(\";\\u01A9.U &;\\u01AB.O &;\\u01AA.I &%%;k/8#%<;\\u01E4=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,)\"),peg$decode(\"<%;\\u012D/' 8!:t!! )=.\\\" 7s\"),peg$decode(\"%;O/\\x83#$%;\\u023F/>#;\\u0166/5$;\\u023F/,$;O/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;\\u0166/5$;\\u023F/,$;O/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;R/\\x83#$%;\\u023F/>#;T/5$;\\u023F/,$;R/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;T/5$;\\u023F/,$;R/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0169.) &;\\u016A.# &;\\u016B\"),peg$decode(\"%;S/\\x83#$%;\\u023F/>#;V/5$;\\u023F/,$;S/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;V/5$;\\u023F/,$;S/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0167.# &;\\u0168\"),peg$decode(\"%;U/\\x83#$%;\\u023F/>#;X/5$;\\u023F/,$;U/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;X/5$;\\u023F/,$;U/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u016C.U &;\\u016D.O &;\\u016E.I &%%;\\u016F/8#%<;\\u016F=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,)\"),peg$decode(\"%;W/\\x83#$%;\\u023F/>#;Z/5$;\\u023F/,$;W/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;Z/5$;\\u023F/,$;W/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0172.{ &;\\u0173.u &%%;\\u0170/8#%<;X=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,).I &%%;\\u0171/8#%<;X=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,)\"),peg$decode(\"%;Y/9#$;\\\\0#*;\\\\&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u023F/1#;]/($8\\\":v\\\"! )(\\\"'#&'#.H &%;\\u023F/>#;^/5$;\\u023F/,$;Y/#$+$)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%3w\\\"\\\"5$7x/?#;\\u023F/6$3y\\\"\\\"5$7z/'$8#:{# )(#'#(\\\"'#&'#.? &%;\\u01FB/& 8!:|! ).. &%;\\u0205/& 8!:{! )\"),peg$decode(\";\\u0177./ &;\\u0175.) &;\\u0176.# &;\\u0174\"),peg$decode(\"<%;\\u01C9/i#;\\u023F/`$;\\u01A0/W$;p/N$;\\u023F/E$;`/<$;\\u023F/3$;\\u01A1/*$8(:~(#'$\\\")(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7}\"),peg$decode(\"<%;\\u01BF/:#;\\u023F/1$;&/($8#:\\x80#! )(#'#(\\\"'#&'#=.\\\" 7\\x7F\"),peg$decode(\"<%;\\u01C8/\\x93#;\\u023F/\\x8A$;b.\\\" &\\\"/|$;\\u023F/s$$;c/�#*;c&&&#/]$;\\u023F/T$;d.\\\" &\\\"/F$;\\u023F/=$;\\u01E0/4$;\\u023F/+$8*:\\x82*$)'%#)(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x81\"),peg$decode(\"%%<;\\u0230=.##&&!&'#/1#;p/($8\\\":\\x83\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0230/i#;\\u023F/`$;p/W$;\\u023F/N$;\\u0224/E$;\\u023F/<$;p/3$;\\u023F/*$8(:\\x85(#'%!)(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x84\"),peg$decode(\"<%;\\u01DF/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\x87$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\x86\"),peg$decode(\"%;[/;#;\\u023F/2$;f/)$8#:\\x88#\\\"\\\" )(#'#(\\\"'#&'#.# &;[\"),peg$decode(\";l.) &;i.# &;g\"),peg$decode(\"<%;k.\\\" &\\\"/o#;\\u01FF./ &;\\u01EB.) &;\\u0214.# &;\\u0201/T$;\\u023F/K$;p/B$;\\u023F/9$;h.\\\" &\\\"/+$8&:\\x8A&$%$\\\" )(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x89\"),peg$decode(\"<%;\\u01E1/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\x8C$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\x8B\"),peg$decode(\"<%;k.\\\" &\\\"/E#;\\u01C5/<$;\\u023F/3$;j/*$8$:\\x8E$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\x8D\"),peg$decode(\"%;e/W#%;\\u023F/>#;\\u01BE/5$;\\u023F/,$;e/#$+$)($'#(#'#(\\\"'#&'#/)$8\\\":\\x8F\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u0204/1#;\\u023F/($8\\\":\\x90\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;k.\\\" &\\\"/E#;\\u01F1/<$;\\u023F/3$;m/*$8$:\\x92$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\x91\"),peg$decode(\";n.# &;\\u017B\"),peg$decode(\"%;\\u01A0/I#;\\x95.# &;q/:$;\\u023F/1$;\\u01A1/($8$:\\x93$!\\\")($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;e/\\x83#$%;\\u023F/>#;\\u01BE/5$;\\u023F/,$;e/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;\\u01BE/5$;\\u023F/,$;e/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;o/\\x83#$%;\\u023F/>#;\\u020A/5$;\\u023F/,$;o/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;\\u020A/5$;\\u023F/,$;o/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;r.\\\" &\\\"/1#;\\u023F/($8\\\":\\x95\\\"!!)(\\\"'#&'#=.\\\" 7\\x94\"),peg$decode(\"%;p/B#;\\u023F/9$$;s0#*;s&/)$8#:\\x96#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;p/1$;\\u023F/($8#:\\x93#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u017A/[#;\\u023F/R$;\\u01A0/I$;u.\\\" &\\\"/;$;\\u023F/2$;\\u01A1/)$8&:\\x98&\\\"%\\\")(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x97\"),peg$decode(\"<%;\\xDB/' 8!:\\x9A!! ).V &%;v.\\\" &\\\"/G#;q/>$9:\\x9B \\\"! -\\\"\\\"&!&#/)$8#:\\x9C#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\x99\"),peg$decode(\"%;\\u01DC.# &;\\u01BB/1#;\\u023F/($8\\\":\\x9D\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;//' 8!:\\x9F!! )=.\\\" 7\\x9E\"),peg$decode(\"<%;y.\\\" &\\\"/;#;{/2$;\\u023F/)$8#:\\xA1#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\xA0\"),peg$decode(\"<%;\\u01E5/@#;\\u023F/7$;z.\\\" &\\\"/)$8#:\\xA3#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xA2\"),peg$decode(\"<%;\\u0210/D#;\\u023F/;$;\\u020D/2$;\\u023F/)$8$:\\xA5$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xA4\"),peg$decode(\";\\x8C.S &;\\xFB.M &;\\u0162.G &;}.A &;|.; &;\\x86.5 &;\\x80./ &;\\x84.) &;\\x85.# &;\\x96\"),peg$decode(\"<%;\\u01CD.# &;\\u01E0/@#;\\u023F/7$;~.\\\" &\\\"/)$8#:\\xA7#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xA6\"),peg$decode(\"<%;\\u01C4/^#;\\u023F/U$;\\x7F.\\\" &\\\"/G$;~.\\\" &\\\"/9$;\\x82.\\\" &\\\"/+$8%:\\xA9%$$\\\"! )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xA8\"),peg$decode(\"%;\\u0226/1#;\\u023F/($8\\\":\\xAA\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01D8.) &;\\u01F0.# &;\\u01E3/1#;\\u023F/($8\\\":\\xAB\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u021B/N#;\\u023F/E$;~.\\\" &\\\"/7$;\\x81.\\\" &\\\"/)$8$:\\xAD$\\\"# )($'#(#'#(\\\"'#&'#=.\\\" 7\\xAC\"),peg$decode(\"<%%;\\u0225/,#;\\u023F/#$+\\\")(\\\"'#&'#.\\\" &\\\"/?#;\\x83.\\\" &\\\"/1$;\\x82/($8#:p#! )(#'#(\\\"'#&'#=.\\\" 7\\xAE\"),peg$decode(\"%;\\u0182/1#;\\u023F/($8\\\":\\xAF\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u021E/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\x83/2#;\\x82/)$8\\\":\\xB2\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\xB1\"),peg$decode(\"<%;\\u0216/J#;\\u023F/A$;\\x83.\\\" &\\\"/3$;\\x82/*$8$:\\xB4$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\xB3\"),peg$decode(\"<%;\\x87/N#;\\u017B/E$;\\u023F/<$;\\x88/3$;\\u023F/*$8%:\\xB6%#$#!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xB5\"),peg$decode(\"<%;\\u01BC/D#;\\u023F/;$;\\u0221/2$;\\u023F/)$8$:\\xB8$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xB7\"),peg$decode(\";\\x89.# &;\\x8A\"),peg$decode(\"<%;\\u0217/M#;\\u023F/D$;\\u0225/;$;\\u023F/2$;\\u017B/)$8%:\\xBA%\\\"$ )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xB9\"),peg$decode(\"<%;\\u01B9/I#;\\u023F/@$;\\x8B.\\\" &\\\"/2$;\\u010C/)$8$:\\xBC$\\\"# )($'#(#'#(\\\"'#&'#=.\\\" 7\\xBB\"),peg$decode(\"%;\\u01CC/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\x8D/2#;\\xA7/)$8\\\":\\xBD\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\x8E.\\\" &\\\"/1#;\\u023F/($8\\\":*\\\"!!)(\\\"'#&'#=.\\\" 7\\xBE\"),peg$decode(\"%;\\u0232/J#;\\u023F/A$;\\x8F.\\\" &\\\"/3$;\\x90/*$8$:\\xBF$##! )($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0212/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\x92/B#;\\u023F/9$$;\\x910#*;\\x91&/)$8#:\\xC0#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\x92/1$;\\u023F/($8#:\\x93#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0187/2#;\\x93/)$8\\\":\\xC2\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\xC1\"),peg$decode(\"%;\\u01BF/:#;\\u023F/1$;\\x94/($8#:\\xC3#! )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A0/C#;\\x95/:$;\\u023F/1$;\\u01A1/($8$: $!\\\")($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\x8D/2#;\\xA8/)$8\\\":\\xC4\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\x97.; &;\\x99.5 &;\\x9A./ &;\\x9C.) &;\\x9E.# &;\\xA0\"),peg$decode(\"<%;\\u01C1/\\x8B#;\\u023F/\\x82$%;\\u01D5/,#;\\u023F/#$+\\\")(\\\"'#&'#.\\\" &\\\"/a$;p/X$;\\u023F/O$;\\u01BF/F$;\\u023F/=$;\\x98/4$;\\u023F/+$8):\\xC6)$(&%!)()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xC5\"),peg$decode(\";\\u0179.) &;-.# &;?\"),peg$decode(\"<%;\\u01DB/f#;\\u023F/]$%;\\u01D5/,#;\\u023F/#$+\\\")(\\\"'#&'#.\\\" &\\\"/<$;\\x98/3$;\\u023F/*$8%:\\xC8%#$\\\"!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xC7\"),peg$decode(\"<%;\\u022C/@#;\\u023F/7$;\\x9B.\\\" &\\\"/)$8#:\\xCA#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xC9\"),peg$decode(\"%;\\u0179/1#;\\u023F/($8\\\":\\xCB\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u01BD/@#;\\u023F/7$;\\x9D.\\\" &\\\"/)$8#:\\xCD#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xCC\"),peg$decode(\"%;\\u017B.) &;\\u0183.# &;\\u0179/1#;\\u023F/($8\\\":\\xCE\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u0215/I#;\\u023F/@$;\\x9F.\\\" &\\\"/2$;\\u023F/)$8$:\\xCD$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xCF\"),peg$decode(\"%;\\u017B.) &;\\u0183.# &;\\u0181/1#;\\u023F/($8\\\":\\xD0\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u020E/S#;\\u023F/J$;\\u0186/A$;\\u023F/8$;\\xA1.\\\" &\\\"/*$8%:\\xD2%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xD1\"),peg$decode(\"%;\\u01A0/C#;\\xA2/:$;\\u023F/1$;\\u01A1/($8$:\\xD3$!\\\")($'#(#'#(\\\"'#&'#.D &%;\\u01AC/:#;\\xA2/1$;\\u023F/($8#:\\xD3#!!)(#'#(\\\"'#&'#\"),peg$decode(\";\\xA4.) &;\\xA3.# &;\\xA6\"),peg$decode(\";5.) &;/.# &;3\"),peg$decode(\"%;\\xA5/<#9:\\xD4 ! -\\\"\\\"&!&#/($8\\\":\\xD5\\\"!!)(\\\"'#&'#\"),peg$decode(\"%$;\\u0193/�#*;\\u0193&&&#/' 8!:\\xD6!! )\"),peg$decode(\"%;\\xA5/' 8!:\\xD7!! )\"),peg$decode(\";\\xA8./ &;\\xDD.) &;\\xF2.# &;\\xF9\"),peg$decode(\"<%;\\xAE/X#;\\u023F/O$;\\xA9.\\\" &\\\"/A$;\\u023F/8$;\\xAA.\\\" &\\\"/*$8%:\\xD9%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xD8\"),peg$decode(\"<%;\\u020B/L#;\\u023F/C$;\\u01C6/:$;\\u023F/1$;\\xD8/($8%:\\xDB%! )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xDA\"),peg$decode(\"<%;\\u0200/S#;\\u023F/J$;p/A$;\\u023F/8$;\\xAB.\\\" &\\\"/*$8%:\\xDD%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xDC\"),peg$decode(\"<%;\\xAC/2#;p/)$8\\\":\\xDF\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\xDE\"),peg$decode(\";\\xAD.# &;\\u01A2\"),peg$decode(\"%;\\u0208/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\xB0/B#;\\u023F/9$$;\\xAF0#*;\\xAF&/)$8#:\\xE0#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\xEF/D#;\\u023F/;$;\\xB0/2$;\\u023F/)$8$:\\xE2$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xE1\"),peg$decode(\";\\xB1.# &;\\xD7\"),peg$decode(\"%;\\xB2/U#;\\xB8.\\\" &\\\"/G$;\\xB9.\\\" &\\\"/9$;\\xBA.\\\" &\\\"/+$8$:\\xE3$$#\\\"! )($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u021F/R#;\\u023F/I$;\\xB3.\\\" &\\\"/;$;\\u023F/2$;\\xB6/)$8%:\\xE5%\\\"\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xE4\"),peg$decode(\"<;\\xB4.# &;\\xB5=.\\\" 7\\xE6\"),peg$decode(\"%;\\u01DC/1#;\\u023F/($8\\\":\\xE7\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01BB/1#;\\u023F/($8\\\":\\xE8\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\xBC/B#;\\u023F/9$$;\\xB70#*;\\xB7&/)$8#:\\xC0#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\xBC/1$;\\u023F/($8#:-#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01E9/D#;\\u023F/;$;\\xC0/2$;\\u023F/)$8$:\\xEA$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xE9\"),peg$decode(\"<%;\\u0231/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\xEC$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xEB\"),peg$decode(\"<%;\\u01EC/e#;\\u023F/\\\\$;\\u01C6/S$;\\u023F/J$;q/A$;\\u023F/8$;\\xBB.\\\" &\\\"/*$8':\\xEE'#&\\\" )(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xED\"),peg$decode(\"<%;\\u01ED/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\xF0$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xEF\"),peg$decode(\";\\xBD.# &;\\xBF\"),peg$decode(\"%;\\xBE.\\\" &\\\"/2#;\\xDB/)$8\\\":\\xF1\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u0195/2#;\\u01A3/)$8\\\":\\xF2\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;p/@#;\\u023F/7$;\\xCD.\\\" &\\\"/)$8#:\\xF3#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\xC4/B#;\\u023F/9$$;\\xC10#*;\\xC1&/)$8#:\\xF4#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\xC2.# &;\\xC3/7#;\\xD4.\\\" &\\\"/)$8\\\":\\xF5\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u01A2/:#;\\xC4/1$;\\u023F/($8#:\\xF7#!!)(#'#(\\\"'#&'#=.\\\" 7\\xF6\"),peg$decode(\"<%;\\xCE/D#;\\u023F/;$;\\xC4/2$;\\u023F/)$8$:\\xF9$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xF8\"),peg$decode(\";\\xCB.5 &;?./ &;\\xC5.) &;\\xC6.# &;\\xCC\"),peg$decode(\"%;\\u017A/S#;\\u023F/J$;\\xED/A$;\\u023F/8$;\\xCD.\\\" &\\\"/*$8%:\\xFA%#$\\\" )(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\xC7/@#;\\u023F/7$;\\xC8.\\\" &\\\"/)$8#:\\xFC#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xFB\"),peg$decode(\"<%;\\u017B/@#;\\u023F/7$;\\xCD.\\\" &\\\"/)$8#:\\xFE#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xFD\"),peg$decode(\"<;\\xC9.# &;\\xCA=.\\\" 7\\xFF\"),peg$decode(\"%;\\u01F3/V#;\\u023F/M$;\\u01C6/D$;\\u023F/;$;\\u0183/2$;\\u023F/)$8&:\\u0100&\\\"%!)(&'#(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;k/;#;\\u01F3/2$;\\u023F/)$8#:\\u0101#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/R#;\\xC0/I$;\\u023F/@$;\\u01A1/7$;\\xCD.\\\" &\\\"/)$8%:\\u0103%\\\"# )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0102\"),peg$decode(\"<%;\\x94/7#;\\xCD.\\\" &\\\"/)$8\\\":\\u0105\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0104\"),peg$decode(\"<%%;\\u01BF/Q#%%<;\\u0193.# &;\\u0236=.##&&!&'#/,#;\\u023F/#$+\\\")(\\\"'#&'#/#$+\\\")(\\\"'#&'#.\\\" &\\\"/;#;\\u0195/2$;\\u023F/)$8#:\\u0107#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\u0106\"),peg$decode(\"<%;\\xCF.\\\" &\\\"/J#;\\u023F/A$;\\xD0.\\\" &\\\"/3$;\\u01FC/*$8$:\\u0109$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0108\"),peg$decode(\"%;\\u0202/1#;\\u023F/($8\\\":\\x90\\\"!!)(\\\"'#&'#\"),peg$decode(\";\\xD1.# &;\\xD3\"),peg$decode(\"%;\\u01FE.) &;\\u021A.# &;\\u01EA/@#;\\u023F/7$;\\xD2.\\\" &\\\"/)$8#:\\u010A#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u020C/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01F5.# &;\\u01D1/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\xD5.# &;\\xD6/1#;\\u023F/($8\\\":\\u010D\\\"!!)(\\\"'#&'#=.\\\" 7\\u010C\"),peg$decode(\"<%;\\u0209/;#;\\u023F/2$;p/)$8#:\\u010F#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u010E\"),peg$decode(\"<%;\\u022B/;#;\\u023F/2$;\\xE6/)$8#:\\u0111#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0110\"),peg$decode(\"<%;\\u022D/;#;\\u023F/2$;\\xEB/)$8#:\\u0113#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0112\"),peg$decode(\"%;\\xDA/B#;\\u023F/9$$;\\xD90#*;\\xD9&/)$8#:\\u0114#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\xDA/1$;\\u023F/($8#:\\u0115#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;p/@#;\\u023F/7$;\\u012F.\\\" &\\\"/)$8#:\\u0117#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0116\"),peg$decode(\"<;\\u01A4=.\\\" 7\\u0118\"),peg$decode(\"<;\\u0218.5 &;\\u021B./ &;\\u01B7.) &;\\u01E6.# &;\\u01EF=.\\\" 7\\u0119\"),peg$decode(\"<%;\\xDE/;#;\\u023F/2$;\\xE2/)$8#:\\u011B#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u011A\"),peg$decode(\";\\xDF.# &;\\xE0\"),peg$decode(\"<%;\\u01F6/@#;\\u023F/7$;\\xE1.\\\" &\\\"/)$8#:\\u011D#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u011C\"),peg$decode(\"<%;\\u0218/1#;\\u023F/($8\\\":\\u011F\\\"!!)(\\\"'#&'#=.\\\" 7\\u011E\"),peg$decode(\"<%;\\u020A/;#;\\u023F/2$;\\xDC/)$8#:\\u0121#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0120\"),peg$decode(\"%;\\xE3/2#;\\xE5/)$8\\\":\\u0122\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\xE4/2#;\\u0187/)$8\\\":\\u0124\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0123\"),peg$decode(\"<%;\\u01F9/,#;\\u023F/#$+\\\")(\\\"'#&'#=.\\\" 7\\u0125\"),peg$decode(\"<%;\\xE9.) &;\\x95.# &;\\xEE/1#;\\u023F/($8\\\":\\u0126\\\"!!)(\\\"'#&'#=.\\\" 7\\u0112\"),peg$decode(\"<%;\\u01A0/T#;\\xE8/K$;\\u023F/B$$;\\xE70#*;\\xE7&/2$;\\u01A1/)$8%:\\u0128%\\\"#!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0127\"),peg$decode(\"%;\\u01A2/:#;\\xE8/1$;\\u023F/($8#:\\u0129#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0178/' 8!:\\u012B!! )=.\\\" 7\\u012A\"),peg$decode(\"<%;\\xEA/2#;\\xEB/)$8\\\":\\u012C\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0112\"),peg$decode(\"<%;\\u022D/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#=.\\\" 7\\u012D\"),peg$decode(\"%;\\xED/B#;\\u023F/9$$;\\xEC0#*;\\xEC&/)$8#:\\u012E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\xED/1$;\\u023F/($8#:\\x93#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/C#;q/:$;\\u023F/1$;\\u01A1/($8$:\\u0130$!\\\")($'#(#'#(\\\"'#&'#=.\\\" 7\\u012F\"),peg$decode(\"<%;\\u01D6/;#;\\u023F/2$;\\u022D/)$8#:\\u0132#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0131\"),peg$decode(\"<%;\\xF0.) &;\\u01F8.# &;\\u01E2/' 8!:\\xB0!! )=.\\\" 7\\u0133\"),peg$decode(\"<%;\\u0228/@#;\\u023F/7$;\\xF1.\\\" &\\\"/)$8#:\\u0135#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0134\"),peg$decode(\"%;\\u01BB/1#;\\u023F/($8\\\":\\u0136\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\xF3/\\x8A#;\\xF4.\\\" &\\\"/|$;\\xC6/s$;\\u023F/j$;\\xF5/a$;\\xB9.\\\" &\\\"/S$;\\xA9.\\\" &\\\"/E$;\\u023F/<$;\\xAA.\\\" &\\\"/.$8):\\u0138)'('&$#\\\" )()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0137\"),peg$decode(\"<%;\\u022A/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#=.\\\" 7\\u0139\"),peg$decode(\"<%;\\u020A/C#;\\u023F/:$;\\xDC/1$;\\u023F/($8$:\\u013B$!!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u013A\"),peg$decode(\"<%;\\u0220/C#;\\u023F/:$;\\xF6/1$;\\u023F/($8$:\\u013D$!!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u013C\"),peg$decode(\"%;\\xF8/9#$;\\xF70#*;\\xF7&/)$8\\\":\\u012E\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u023F/:#;\\u01A2/1$;\\xF8/($8#:\\u0129#! )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u017D/M#;\\u023F/D$;\\u01AC/;$;p/2$;\\u023F/)$8%:\\u013F%\\\"$!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u013E\"),peg$decode(\"<%;\\xFA/h#;\\xC6/_$;\\u023F/V$;\\xB9.\\\" &\\\"/H$;\\xA9.\\\" &\\\"/:$;\\xAA.\\\" &\\\"/,$8&:\\u0141&%%$\\\"! )(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0140\"),peg$decode(\"<%;\\u01D9/C#;\\u023F/:$;\\u01E9/1$;\\u023F/($8$:\\xB0$!#)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0142\"),peg$decode(\"<;\\xFD.5 &;\\xFE./ &;\\xFF.) &;\\u0100.# &;\\u0101=.\\\" 7\\u0143\"),peg$decode(\"%;\\u01D0/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u01F2./ &;\\u0227.) &;\\u022E.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0102/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u0227.) &;\\u022E.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0143/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u01F2.) &;\\u022E.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0147/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u01F2.) &;\\u0227.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0156/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u01F2.) &;\\u0227.# &;\\u022E/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u015A/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0103/T#;\\u0105.\\\" &\\\"/F$;\\u017B/=$;\\u023F/4$;\\u0106/+$8%:\\u0145%$$#\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0144\"),peg$decode(\"%;\\xFC/J#;\\u0104.\\\" &\\\"/<$;\\u0221/3$;\\u023F/*$8$:\\u0146$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0223.# &;\\u0222/1#;\\u023F/($8\\\":\\u0147\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u01EE/N#;\\u023F/E$;k/<$;\\u01E4/3$;\\u023F/*$8%:\\u0149%#$\\\"!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0148\"),peg$decode(\";\\u0107.# &;\\u0142\"),peg$decode(\"<%;\\u01A0/Z#;\\u0109/Q$$;\\u010B0#*;\\u010B&/A$;\\u01A1/8$;\\u0108.\\\" &\\\"/*$8%:\\u014B%##\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u014A\"),peg$decode(\"%;\\u0233/D#;\\u023F/;$;\\u021D/2$;\\u023F/)$8$:\\u014C$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u010C/B#;\\u023F/9$$;\\u010A0#*;\\u010A&/)$8#:\\u012E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\u010C/1$;\\u023F/($8#:\\xAA#!!)(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2.\\\" &\\\"/1#;\\u0120/($8\\\":\\u014D\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u010D/O#;\\u023F/F$;\\u010E.\\\" &\\\"/8$;\\u010F.\\\" &\\\"/*$8$:\\u014F$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u014E\"),peg$decode(\"%;\\u0195/=#%<;\\u023F=/##&'!&&#/($8\\\":p\\\"!!)(\\\"'#&'#.\\\\ &%%<;\\u010E.) &;\\u0111.# &;\\u0120=.##&&!&'#/:#;\\u023F/1$;\\u0198/($8#:p#! )(#'#(\\\"'#&'#\"),peg$decode(\"<%;&/1#;\\u023F/($8\\\":\\u0151\\\"!!)(\\\"'#&'#=.\\\" 7\\u0150\"),peg$decode(\"%;\\u0111/B#$;\\u01100#*;\\u0110&/2$;\\u023F/)$8#:\\u012E#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u023F/1#;\\u0111/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0112.\\\" &\\\"/A#;\\u0114/8$;\\u0112.\\\" &\\\"/*$8#:\\u0153##\\\"! )(#'#(\\\"'#&'#=.\\\" 7\\u0152\"),peg$decode(\"%$;\\u0113/�#*;\\u0113&&&#/' 8!:\\u0154!! )\"),peg$decode(\"<%;\\u01CF/C#;\\u023F/:$;\\u0195/1$;\\u023F/($8$:\\u0156$!!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0155\"),peg$decode(\";\\u0116.; &;\\u0119.5 &;\\u011C./ &;\\u011D.) &;\\u011F.# &;\\u0115\"),peg$decode(\"<%;\\u0135/' 8!:\\u0158!! )=.\\\" 7\\u0157\"),peg$decode(\"<%;\\u0117/U#;\\u012F.\\\" &\\\"/G$;\\u0130.\\\" &\\\"/9$;\\u0118.\\\" &\\\"/+$8$:\\u015A$$#\\\"! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0159\"),peg$decode(\"<%;\\u020F.# &;\\u020E/D#;\\u023F/;$;\\u01FD/2$;\\u023F/)$8$:\\u015C$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u015B\"),peg$decode(\"<%;\\u01C2/1#;\\u023F/($8\\\":\\u015E\\\"!!)(\\\"'#&'#=.\\\" 7\\u015D\"),peg$decode(\"%;\\u011A/@#;\\u0130.\\\" &\\\"/2$;\\u023F/)$8#:\\u015F#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u011B.# &;\\u0229/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#=.\\\" 7\\u0160\"),peg$decode(\"<%;k.\\\" &\\\"/2#;\\u0206/)$8\\\":\\u0162\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0161\"),peg$decode(\"<;\\u0132=.\\\" 7\\u0163\"),peg$decode(\"<%;\\u01D6/D#;\\u023F/;$;\\u011E/2$;\\u023F/)$8$:\\u0165$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0164\"),peg$decode(\";L./ &;5.) &;,.# &;3\"),peg$decode(\"<%;\\u012D/' 8!:\\u0167!! )=.\\\" 7\\u0166\"),peg$decode(\"<%;\\u0112.\\\" &\\\"/J#;\\u0121/A$;\\u023F/8$;\\u0112.\\\" &\\\"/*$8$:\\u0169$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0168\"),peg$decode(\";\\u0133.) &;\\u0123.# &;\\u0122\"),peg$decode(\"<%;\\u0132/' 8!:\\u016B!! )=.\\\" 7\\u016A\"),peg$decode(\"<%;\\u0124/J#;\\u023F/A$;\\u0129/8$;\\u0130.\\\" &\\\"/*$8$:\\u016D$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u016C\"),peg$decode(\"%;\\u0125.# &;\\u0126/1#;\\u023F/($8\\\":\\u016E\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u020F/;#;\\u023F/2$;\\u01FD/)$8#:\\u016F#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u015B\"),peg$decode(\"<%;\\u0229/' 8!:\\u0171!! )=.\\\" 7\\u0170\"),peg$decode(\"%;\\u01A0/T#;\\u012B/K$;\\u023F/B$$;\\u012A0#*;\\u012A&/2$;\\u01A1/)$8%:\\u0172%\\\"#!)(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0127/' 8!:\\u0173!! )\"),peg$decode(\"%;\\u0127/' 8!:\\u0174!! )\"),peg$decode(\"%;\\u01A2/:#;\\u012B/1$;\\u023F/($8#:\\u0129#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u012C/O#;\\u023F/F$;\\u012F.\\\" &\\\"/8$;\\u0118.\\\" &\\\"/*$8$:\\u0176$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0175\"),peg$decode(\"%;\\xE8/\\\\#%<%;\\u023F/8#;\\u01B3.) &;\\u01A1.# &;\\u012F/#$+\\\")(\\\"'#&'#=/##&'!&&#/($8\\\":p\\\"!!)(\\\"'#&'#.# &;p\"),peg$decode(\"<%$;\\u012E/�#*;\\u012E&&&#/' 8!:\\u0178!! )=.\\\" 7\\u0177\"),peg$decode(\"%;\\u01CB/C#;\\u023F/:$;\\u0181/1$;\\u023F/($8$:p$!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01C0.# &;\\u01DA/1#;\\u023F/($8\\\":\\u017A\\\"!!)(\\\"'#&'#=.\\\" 7\\u0179\"),peg$decode(\"%;\\u0131/;#;\\xDC/2$;\\u023F/)$8#:\\u017B#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0209/D#;\\u023F/;$;\\u01CE/2$;\\u023F/)$8$:\\u017D$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u017C\"),peg$decode(\"%;\\u01CA/;#;\\u023F/2$;L/)$8#:\\u017E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0134/E#;\\xE6/<$;\\u0135/3$;\\u023F/*$8$:\\u0180$##\\\"!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u017F\"),peg$decode(\"<%;\\u01E8/D#;\\u023F/;$;\\u01FD/2$;\\u023F/)$8$:\\u0182$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0181\"),peg$decode(\"%;\\u0136/F#;\\u0137.\\\" &\\\"/8$;\\u0140.\\\" &\\\"/*$8#:\\u0183##\\\"! )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0213/D#;\\u023F/;$;\\u0187/2$;\\u023F/)$8$:\\u0185$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0184\"),peg$decode(\"%;\\u0139/B#;\\u023F/9$$;\\u01380#*;\\u0138&/)$8#:\\u0186#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0139/1#;\\u023F/($8\\\":\\u0136\\\"!!)(\\\"'#&'#\"),peg$decode(\"<;\\u013A.# &;\\u013F=.\\\" 7\\u0187\"),peg$decode(\"%;\\u0209/T#;\\u023F/K$;\\u01D9.# &;\\u022A/<$;\\u023F/3$;\\u013B/*$8%:\\u0188%#$\\\" )(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"<;\\u013C.) &;\\u013D.# &;\\u013E=.\\\" 7\\u0189\"),peg$decode(\"%;\\u0220/J#;\\u023F/A$;\\u0206.# &;\\u01D6/2$;\\u023F/)$8$:\\u018A$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01C7.# &;\\u0219/1#;\\u023F/($8\\\":\\u018B\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u0203/D#;\\u023F/;$;\\u01B8/2$;\\u023F/)$8$:\\u018C$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0201/D#;\\u023F/;$;\\u0195/2$;\\u023F/)$8$:\\u018D$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;k.\\\" &\\\"/J#;\\u01D7/A$;\\u023F/8$;\\u0141.\\\" &\\\"/*$8$:\\u018F$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\u018E\"),peg$decode(\"%;\\u01F4/J#;\\u023F/A$;\\u01D8.# &;\\u01F0/2$;\\u023F/)$8$:\\u0190$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0159/' 8!:\\u0191!! )\"),peg$decode(\"<%;\\u0144/c#;\\u0105.\\\" &\\\"/U$;\\u0183/L$;\\u023F/C$;\\u0146/:$;\\xB9.\\\" &\\\"/,$8&:\\u0193&%%$#! )(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0192\"),peg$decode(\"%;\\xFC/J#;\\u0145.\\\" &\\\"/<$;\\u01F2/3$;\\u023F/*$8$:\\u0194$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0229/1#;\\u023F/($8\\\":\\u0195\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u0209/N#;\\u023F/E$;\\u017B/<$;\\u023F/3$;\\u0128/*$8%:\\u0197%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0196\"),peg$decode(\"<%;\\u0148/\\xA6#;\\u0105.\\\" &\\\"/\\x98$;\\u0184.\\\" &\\\"/\\x8A$;\\u023F/\\x81$;\\u0149/x$;\\u0209/o$;\\u023F/f$;\\u017B/]$;\\u023F/T$;\\u0151.\\\" &\\\"/F$;\\u0152.\\\" &\\\"/8$;\\u0153//$8,:\\u0199,(+*)'$\\\"! )(,'#(+'#(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0198\"),peg$decode(\"%;\\xFC/J#;\\u0104.\\\" &\\\"/<$;\\u0227/3$;\\u023F/*$8$:\\u019A$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u014A.\\\" &\\\"/2#;\\u014C/)$8\\\":\\u019C\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u019B\"),peg$decode(\"%;\\u01C3.) &;\\u01BA.# &;\\u014B/1#;\\u023F/($8\\\":\\u019D\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01F7/;#;\\u023F/2$;\\u0207/)$8#:\\u019E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<;\\u014D.# &;\\u014E=.\\\" 7\\u019F\"),peg$decode(\"%;\\u01D9.# &;\\u01F6/1#;\\u023F/($8\\\":\\u01A0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u022A/@#;\\u023F/7$;\\u014F.\\\" &\\\"/)$8#:\\u01A1#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0207/;#;\\u023F/2$;\\u0150/)$8#:\\u01A2#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\xE8/B#;\\u023F/9$$;\\xE70#*;\\xE7&/)$8#:\\u012E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01E7/c#;\\u023F/Z$;\\u01DE/Q$;\\u023F/H$;\\u021C.) &3\\u01A3\\\"\\\"5)7\\u01A4/3$;\\u023F/*$8&:\\u01A5&#%#!)(&'#(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0230/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\u01A6$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\x84\"),peg$decode(\"<%;\\u01C4/W#;\\u023F/N$;\\u0154/E$;\\u023F/<$;\\u01E0/3$;\\u023F/*$8&:\\u01A8&#%#!)(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01A7\"),peg$decode(\"%$;\\u0155/�#*;\\u0155&&&#/' 8!:\\u01A9!! )\"),peg$decode(\"%;\\x8C/:#;\\u023F/1$;$/($8#:\\\"#!\\\")(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0158/T#;\\u0105.\\\" &\\\"/F$;\\u0157/=$;\\u023F/4$;\\u0159/+$8%:\\u01AB%$$#\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01AA\"),peg$decode(\"%;\\u0185/;#;\\u023F/2$;\\xE6/)$8#:\\u01AC#\\\"\\\" )(#'#(\\\"'#&'#.# &;\\u0185\"),peg$decode(\"%;\\xFC/J#;\\u0104.\\\" &\\\"/<$;\\u022E/3$;\\u023F/*$8$:\\u01AD$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01BF/D#;\\u023F/;$;\\xA8/2$;\\u023F/)$8$:\\u012C$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u015B/f#;\\u0105.\\\" &\\\"/X$;\\u017B/O$;\\u023F/F$;\\u022B/=$;\\u023F/4$;\\u015C/+$8':\\u01AF'$&%$ )(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01AE\"),peg$decode(\"%;\\xFC/N#;\\u022F/E$;\\u023F/<$;\\u0221/3$;\\u023F/*$8%:\\u01B0%#$#!)(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0197/@#;\\u023F/7$;\\u015D.\\\" &\\\"/)$8#:\\u01B1#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/Z#;\\u023F/Q$;\\u015E.\\\" &\\\"/C$;\\u023F/:$;\\u01A1/1$;\\u023F/($8&:\\u01B3&!#)(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01B2\"),peg$decode(\"%;\\u0160/9#$;\\u015F0#*;\\u015F&/)$8\\\":\\u01B4\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u023F/H#;\\u01A2/?$;\\u023F/6$;\\u0160.\\\" &\\\"/($8$:\\u01B5$! )($'#(#'#(\\\"'#&'#\"),peg$decode(\"%%<%;\\u0195/;#;\\u023F/2$;&.# &;\\u0111/#$+#)(#'#(\\\"'#&'#=.##&&!&'#/:#;p/1$;\\u023F/($8#:\\u0130#!!)(#'#(\\\"'#&'#.x &%;\\u0161/n#%%<;\\u0193=.##&&!&'#/,#;\\u023F/#$+\\\")(\\\"'#&'#/F$;\\u010E.\\\" &\\\"/8$;\\u010F.\\\" &\\\"/*$8$:\\u014F$##! )($'#(#'#(\\\"'#&'#\"),peg$decode(\";\\u0195.# &;\\u0198\"),peg$decode(\"<%;\\u0163/;#;\\u017B/2$;\\u023F/)$8#:\\u01B7#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\u01B6\"),peg$decode(\"<%;\\u01DD/J#;\\u023F/A$;\\u0164/8$;\\u0165.\\\" &\\\"/*$8$:\\u01B9$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u01B8\"),peg$decode(\"<%;\\u0221./ &;\\u01F2.) &;\\u0227.# &;\\u022E/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#=.\\\" 7\\u01BA\"),peg$decode(\"<%;\\u01EE/D#;\\u023F/;$;\\u01E4/2$;\\u023F/)$8$:\\u01BC$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u01BB\"),peg$decode(\"<%;\\u01AE/,#;\\u01AE/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01BD\"),peg$decode(\"<;\\u01AA=.\\\" 7\\u01BE\"),peg$decode(\"<;\\u01AB=.\\\" 7\\u01BF\"),peg$decode(\"<;\\u01A4=.\\\" 7\\u01C0\"),peg$decode(\"<;\\u01B5=.\\\" 7\\u01C1\"),peg$decode(\"<;\\u01AF=.\\\" 7\\u01C2\"),peg$decode(\"<%;\\u01B0/,#;\\u01B0/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01C3\"),peg$decode(\"<%;\\u01B1/,#;\\u01B1/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01C4\"),peg$decode(\"<;\\u01AD=.\\\" 7\\u01C5\"),peg$decode(\"<;\\u01AE=.\\\" 7\\u01C6\"),peg$decode(\"<;\\u01B0=.\\\" 7\\u01C7\"),peg$decode(\"<;\\u01B1=.\\\" 7\\u01C8\"),peg$decode(\"<%;\\u01B0/,#;\\u01AC/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01C9\"),peg$decode(\"<%;\\u01B1/,#;\\u01AC/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CA\"),peg$decode(\"<%;\\u01AC/1#;\\u01AC.\\\" &\\\"/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CB\"),peg$decode(\"<%;\\u01B2/,#;\\u01AC/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CC\"),peg$decode(\"<%;\\u01B0/,#;\\u01B1/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CC\"),peg$decode(\"<%;\\u01FA/@#;\\u023F/7$;k.\\\" &\\\"/)$8#:\\u01CE#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u01CD\"),peg$decode(\"<;\\u0195.# &;\\u0198=.\\\" 7\\u01CF\"),peg$decode(\"<%;\\u0178/' 8!:\\u01D1!! )=.\\\" 7\\u01D0\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01D3\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01D2\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01D5\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01D4\"),peg$decode(\"%;\\u0178/2#;\\u01A3/)$8\\\":\\u01D6\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u017F.) &;\\u0180.# &;\\u017E/2#;\\u0178/)$8\\\":\\u01D8\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01D7\"),peg$decode(\"%;\\u023F/& 8!:\\u01D9! )\"),peg$decode(\"%;\\u017C/2#;\\u0180/)$8\\\":\\u01DA\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u0178/2#;\\u01A3/)$8\\\":D\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0178/' 8!:\\u01DC!! )=.\\\" 7\\u01DB\"),peg$decode(\"<%;\\u0178/' 8!:\\u01DE!! )=.\\\" 7\\u01DD\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E0\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01DF\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E2\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01E1\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E4\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01E3\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E6\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01E5\"),peg$decode(\"<%;\\u0188.# &;\\u017B/1#;\\u023F/($8\\\":\\u01E8\\\"!!)(\\\"'#&'#=.\\\" 7\\u01E7\"),peg$decode(\"%;\\u017B/;#;\\u023F/2$;\\xE6/)$8#:\\u01E9#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0178/' 8!:\\u01EB!! )=.\\\" 7\\u01EA\"),peg$decode(\"<%;\\u0178/' 8!:\\u01ED!! )=.\\\" 7\\u01EC\"),peg$decode(\"<%;\\u018C/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01EF\\\"!!)(\\\"'#&'#.\\xC5 &%;\\u018D/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F0\\\"!!)(\\\"'#&'#.\\x9B &%;\\u018F/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F1\\\"!!)(\\\"'#&'#.q &%;\\u0190/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F2\\\"!!)(\\\"'#&'#.G &%;\\u0192/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F3\\\"!!)(\\\"'#&'#=.\\\" 7\\u01EE\"),peg$decode(\"<%%3\\u01F5\\\"\\\"5!7\\u01F6.\\\" &\\\"/F#3\\u01F7\\\"\\\"5#7\\u01F8.\\\" &\\\"/2$3\\u01F9\\\"\\\"5$7\\u01FA/#$+#)(#'#(\\\"'#&'#.k &%3\\u01FB\\\"\\\"5$7\\u01FC.5 &3\\u01FD\\\"\\\"5&7\\u01FE.) &3\\u01FF\\\"\\\"5$7\\u0200.\\\" &\\\"/2#3\\u0201\\\"\\\"5$7\\u0202/#$+\\\")(\\\"'#&'#.) &3\\u0203\\\"\\\"5$7\\u0204/' 8!:\\u010B!! )=.\\\" 7\\u01F4\"),peg$decode(\"<%;\\u018E.5 &3\\u0206\\\"\\\"5%7\\u0207.) &3\\u0208\\\"\\\"5$7\\u0209/' 8!:\\u010B!! )=.\\\" 7\\u0205\"),peg$decode(\"<%3\\u020B\\\"\\\"5&7\\u020C/i#%$4(\\\"\\\"5!7)/,#0)*4(\\\"\\\"5!7)&&&#/2#3\\u020D\\\"\\\"5)7\\u020E/#$+\\\")(\\\"'#&'#.\\\" &\\\"/)$8\\\":\\u020F\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u020A\"),peg$decode(\"<%3\\u0211\\\"\\\"5'7\\u0212.\\x95 &3\\u0213\\\"\\\"5'7\\u0214.\\x89 &3\\u0215\\\"\\\"5'7\\u0216.} &%3\\u0217\\\"\\\"5$7\\u0218/7#3\\u0219\\\"\\\"5$7\\u021A.\\\" &\\\"/#$+\\\")(\\\"'#&'#.S &%3\\u0219\\\"\\\"5$7\\u021A/7#3\\u021B\\\"\\\"5%7\\u021C.\\\" &\\\"/#$+\\\")(\\\"'#&'#.) &3\\u021D\\\"\\\"5&7\\u021E/' 8!:\\u010B!! )=.\\\" 7\\u0210\"),peg$decode(\"<%%3\\u0220\\\"\\\"5#7\\u0221/V#2\\u0222\\\"\\\"6\\u02227\\u0223.A &2\\u0224\\\"\\\"6\\u02247\\u0225.5 &2\\u0226\\\"\\\"6\\u02267\\u0227.) &3\\u0228\\\"\\\"5$7\\u0229/#$+\\\")(\\\"'#&'#.q &%3\\u022A\\\"\\\"5#7\\u022B.A &3\\u01FD\\\"\\\"5&7\\u01FE.5 &3\\u022C\\\"\\\"5%7\\u022D.) &3\\u01FB\\\"\\\"5$7\\u01FC.\\\" &\\\"/2#3\\u0220\\\"\\\"5#7\\u0221/#$+\\\")(\\\"'#&'#.# &;\\u0191/' 8!:\\u010B!! )=.\\\" 7\\u021F\"),peg$decode(\"%3\\u022E\\\"\\\"5(7\\u022F/d#%$4(\\\"\\\"5!7)/,#0)*4(\\\"\\\"5!7)&&&#/2#3\\u0230\\\"\\\"5%7\\u0231/#$+\\\")(\\\"'#&'#/)$8\\\":\\u0232\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%3\\u0234\\\"\\\"5$7\\u0235/' 8!:\\u010B!! )=.\\\" 7\\u0233\"),peg$decode(\"4\\u0236\\\"\\\"5!7\\u0237\"),peg$decode(\"%2\\u0238\\\"\\\"6\\u02387\\u0239/K#$4\\u023A\\\"\\\"5!7\\u023B/,#0)*4\\u023A\\\"\\\"5!7\\u023B&&&#/)$8\\\":\\u023C\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0196.# &;\\u0197\"),peg$decode(\";\\u0199./ &;\\u019D.) &;\\u019B.# &;\\u019C\"),peg$decode(\"%%<;\\u0234.# &;>=.##&&!&'#/J#$;\\u0194.# &;\\u0193/,#0)*;\\u0194.# &;\\u0193&&&#/($8\\\":\\xD6\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<;\\u0236.# &;>=.##&&!&'#/J#$;\\u0194.# &;\\u0193/,#0)*;\\u0194.# &;\\u0193&&&#/($8\\\":\\u023D\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u019E/\\x99#;\\u023F/\\x90$%$%%<;\\u019A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#0G*%%<;\\u019A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#&/\\\"!&,)/1$;\\u019A/($8$:\\u023F$!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%$4\\u0240\\\"\\\"5!7\\u02410)*4\\u0240\\\"\\\"5!7\\u0241&/5#;\\u019F/,$;\\u023F/#$+#)(#'#(\\\"'#&'#\"),peg$decode(\"%2\\u0242\\\"\\\"6\\u02427\\u0243/k#$2\\u0244\\\"\\\"6\\u02447\\u0245.) &4\\u0246\\\"\\\"5!7\\u024705*2\\u0244\\\"\\\"6\\u02447\\u0245.) &4\\u0246\\\"\\\"5!7\\u0247&/7$2\\u0242\\\"\\\"6\\u02427\\u0243/($8#:\\u0248#!!)(#'#(\\\"'#&'#\"),peg$decode(\"%2\\u0249\\\"\\\"6\\u02497\\u024A/k#$26\\\"\\\"6677.) &48\\\"\\\"5!7905*26\\\"\\\"6677.) &48\\\"\\\"5!79&/7$2\\u0249\\\"\\\"6\\u02497\\u024A/($8#:\\u024B#!!)(#'#(\\\"'#&'#\"),peg$decode(\"%2\\u024C\\\"\\\"6\\u024C7\\u024D/k#$2\\u024E\\\"\\\"6\\u024E7\\u024F.) &4\\u0250\\\"\\\"5!7\\u025105*2\\u024E\\\"\\\"6\\u024E7\\u024F.) &4\\u0250\\\"\\\"5!7\\u0251&/7$2\\u024C\\\"\\\"6\\u024C7\\u024D/($8#:\\u0252#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%2\\u0254\\\"\\\"6\\u02547\\u0255/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0253\"),peg$decode(\"<%2\\u0257\\\"\\\"6\\u02577\\u0258/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0256\"),peg$decode(\"<%2\\u025A\\\"\\\"6\\u025A7\\u025B/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0259\"),peg$decode(\"<%2\\u025D\\\"\\\"6\\u025D7\\u025E/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u025C\"),peg$decode(\"<%2\\u0260\\\"\\\"6\\u02607\\u0261/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u025F\"),peg$decode(\"<%2\\u0263\\\"\\\"6\\u02637\\u0264/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0262\"),peg$decode(\"<%2\\u0266\\\"\\\"6\\u02667\\u0267/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0265\"),peg$decode(\"<%2\\u0269\\\"\\\"6\\u02697\\u026A/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0268\"),peg$decode(\"<%2\\u0249\\\"\\\"6\\u02497\\u024A/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026B\"),peg$decode(\"<%2\\u0242\\\"\\\"6\\u02427\\u0243/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026C\"),peg$decode(\"<%2\\u024C\\\"\\\"6\\u024C7\\u024D/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026D\"),peg$decode(\"<%2\\u026F\\\"\\\"6\\u026F7\\u0270/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026E\"),peg$decode(\"<%2\\u0272\\\"\\\"6\\u02727\\u0273/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0271\"),peg$decode(\"<%2\\u0275\\\"\\\"6\\u02757\\u0276/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0274\"),peg$decode(\"<%2\\u0277\\\"\\\"6\\u02777\\u0278/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01CB\"),peg$decode(\"<%2\\u027A\\\"\\\"6\\u027A7\\u027B/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0279\"),peg$decode(\"<%2\\u027D\\\"\\\"6\\u027D7\\u027E/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u027C\"),peg$decode(\"<%2\\u027F\\\"\\\"6\\u027F7\\u0280/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01C2\"),peg$decode(\"<%2\\u0281\\\"\\\"6\\u02817\\u0282/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01C7\"),peg$decode(\"<%2\\u0283\\\"\\\"6\\u02837\\u0284/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01C8\"),peg$decode(\"<%2\\u0286\\\"\\\"6\\u02867\\u0287/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0285\"),peg$decode(\"<%2\\u0289\\\"\\\"6\\u02897\\u028A/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0288\"),peg$decode(\"<%2a\\\"\\\"6a7b/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u028B\"),peg$decode(\"<%2\\u028D\\\"\\\"6\\u028D7\\u028E/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u028C\"),peg$decode(\"<%2\\u0290\\\"\\\"6\\u02907\\u0291/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u028F\"),peg$decode(\"%3\\u0292\\\"\\\"5%7\\u0293/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0294\\\"\\\"5&7\\u0295/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0296\\\"\\\"5#7\\u0297/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0298\\\"\\\"5%7\\u0299/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u029A\\\"\\\"5#7\\u029B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u029C\\\"\\\"5%7\\u029D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u029E\\\"\\\"5'7\\u029F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A0\\\"\\\"5#7\\u02A1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A2\\\"\\\"5\\\"7\\u02A3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A4\\\"\\\"5#7\\u02A5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A6\\\"\\\"5&7\\u02A7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A8\\\"\\\"5-7\\u02A9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02AA\\\"\\\"5&7\\u02AB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02AC\\\"\\\"5%7\\u02AD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02AE\\\"\\\"5'7\\u02AF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B0\\\"\\\"5\\\"7\\u02B1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B2\\\"\\\"5'7\\u02B3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B4\\\"\\\"5$7\\u02B5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B6\\\"\\\"5$7\\u02B7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B8\\\"\\\"5%7\\u02B9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02BA\\\"\\\"5'7\\u02BB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02BC\\\"\\\"5&7\\u02BD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02BE\\\"\\\"5&7\\u02BF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C0\\\"\\\"5(7\\u02C1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C2\\\"\\\"5*7\\u02C3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C4\\\"\\\"5&7\\u02C5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C6\\\"\\\"5%7\\u02C7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C8\\\"\\\"5,7\\u02C9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02CA\\\"\\\"5,7\\u02CB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02CC\\\"\\\"517\\u02CD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02CE\\\"\\\"5(7\\u02CF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D0\\\"\\\"5'7\\u02D1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D2\\\"\\\"5*7\\u02D3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D4\\\"\\\"5(7\\u02D5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D6\\\"\\\"5&7\\u02D7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D8\\\"\\\"5$7\\u02D9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02DA\\\"\\\"5&7\\u02DB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02DC\\\"\\\"5(7\\u02DD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02DE\\\"\\\"5$7\\u02DF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E0\\\"\\\"5$7\\u02E1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E2\\\"\\\"5$7\\u02E3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E4\\\"\\\"5#7\\u02E5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E6\\\"\\\"5&7\\u02E7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E8\\\"\\\"5&7\\u02E9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02EA\\\"\\\"5)7\\u02EB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02EC\\\"\\\"5&7\\u02ED/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02EE\\\"\\\"5'7\\u02EF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F0\\\"\\\"5$7\\u02F1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F2\\\"\\\"5#7\\u02F3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F4\\\"\\\"5'7\\u02F5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F6\\\"\\\"5$7\\u02F7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F8\\\"\\\"5$7\\u02F9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02FA\\\"\\\"5$7\\u02FB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02FC\\\"\\\"5%7\\u02FD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02FE\\\"\\\"5&7\\u02FF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0300\\\"\\\"5\\\"7\\u0301/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0302\\\"\\\"5&7\\u0303/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0304\\\"\\\"5)7\\u0305/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0306\\\"\\\"5\\\"7\\u0307/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0308\\\"\\\"5%7\\u0309/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u030A\\\"\\\"5'7\\u030B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u030C\\\"\\\"5)7\\u030D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u030E\\\"\\\"5%7\\u030F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0310\\\"\\\"5&7\\u0311/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0312\\\"\\\"5'7\\u0313/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0314\\\"\\\"5)7\\u0315/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0316\\\"\\\"5$7\\u0317/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0318\\\"\\\"5\\\"7\\u0319/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u031A\\\"\\\"5&7\\u031B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u031C\\\"\\\"5$7\\u031D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u031E\\\"\\\"5#7\\u031F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0320\\\"\\\"5$7\\u0321/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0322\\\"\\\"5$7\\u0323/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0324\\\"\\\"5%7\\u0325/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0326\\\"\\\"5%7\\u0327/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0328\\\"\\\"5'7\\u0329/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u032A\\\"\\\"5\\\"7\\u032B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u032C\\\"\\\"5#7\\u032D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u032E\\\"\\\"5'7\\u032F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3y\\\"\\\"5$7z/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0330\\\"\\\"5\\\"7\\u0331/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0332\\\"\\\"5&7\\u0333/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0334\\\"\\\"5\\\"7\\u0335/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0336\\\"\\\"5\\\"7\\u0337/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0338\\\"\\\"5%7\\u0339/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u033A\\\"\\\"5%7\\u033B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u033C\\\"\\\"5$7\\u033D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u033E\\\"\\\"5&7\\u033F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0340\\\"\\\"5'7\\u0341/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0342\\\"\\\"5%7\\u0343/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0344\\\"\\\"5%7\\u0345/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0346\\\"\\\"5)7\\u0347/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0348\\\"\\\"5*7\\u0349/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u034A\\\"\\\"5&7\\u034B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u034C\\\"\\\"5'7\\u034D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u034E\\\"\\\"5'7\\u034F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0350\\\"\\\"5&7\\u0351/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0352\\\"\\\"5'7\\u0353/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0354\\\"\\\"5(7\\u0355/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0356\\\"\\\"5%7\\u0357/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0358\\\"\\\"5(7\\u0359/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u035A\\\"\\\"5#7\\u035B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u035C\\\"\\\"5%7\\u035D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u035E\\\"\\\"5)7\\u035F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0360\\\"\\\"5&7\\u0361/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0362\\\"\\\"5#7\\u0363/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0364\\\"\\\"5%7\\u0365/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0366\\\"\\\"5$7\\u0367/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0368\\\"\\\"5)7\\u0369/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u036A\\\"\\\"5$7\\u036B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u036C\\\"\\\"5\\\"7\\u036D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u036E\\\"\\\"5+7\\u036F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0370\\\"\\\"5'7\\u0371/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0372\\\"\\\"5%7\\u0373/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0374\\\"\\\"5&7\\u0375/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0376\\\"\\\"5&7\\u0377/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0378\\\"\\\"5%7\\u0379/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u037A\\\"\\\"5&7\\u037B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u037C\\\"\\\"5&7\\u037D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u037E\\\"\\\"5$7\\u037F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0380\\\"\\\"5'7\\u0381/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0382\\\"\\\"5$7\\u0383/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0384\\\"\\\"5%7\\u0385/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0386\\\"\\\"5$7\\u0387/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0388\\\"\\\"5'7\\u0389/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%;\\u0235/' 8!:\\u038A!! )\"),peg$decode(\";\\u01B7.\\u02F9 &;\\u01B8.\\u02F3 &;\\u01B9.\\u02ED &;\\u01BA.\\u02E7 &;\\u01BB.\\u02E1 &;\\u01BC.\\u02DB &;\\u01BD.\\u02D5 &;\\u01BE.\\u02CF &;\\u01BF.\\u02C9 &;\\u01C0.\\u02C3 &;\\u01C1.\\u02BD &;\\u01C2.\\u02B7 &;\\u01C3.\\u02B1 &;\\u01C4.\\u02AB &;\\u01C5.\\u02A5 &;\\u01C6.\\u029F &;\\u01C7.\\u0299 &;\\u01C8.\\u0293 &;\\u01C9.\\u028D &;\\u01CA.\\u0287 &;\\u01CB.\\u0281 &;\\u01CC.\\u027B &;\\u01CD.\\u0275 &;\\u01CE.\\u026F &;\\u01CF.\\u0269 &;\\u01D0.\\u0263 &;\\u01D1.\\u025D &;\\u01D2.\\u0257 &;\\u01D3.\\u0251 &;\\u01D4.\\u024B &;\\u01D5.\\u0245 &;\\u01D6.\\u023F &;\\u01D7.\\u0239 &;\\u01D8.\\u0233 &;\\u01D9.\\u022D &;\\u01DA.\\u0227 &;\\u01DB.\\u0221 &;\\u01DC.\\u021B &;\\u01DD.\\u0215 &;\\u01DE.\\u020F &;\\u01DF.\\u0209 &;\\u01E0.\\u0203 &;\\u01E1.\\u01FD &;\\u01E2.\\u01F7 &;\\u01E3.\\u01F1 &;\\u01E4.\\u01EB &;\\u01E5.\\u01E5 &;\\u01E6.\\u01DF &;\\u01E7.\\u01D9 &;\\u01E8.\\u01D3 &;\\u01E9.\\u01CD &;\\u01EA.\\u01C7 &;\\u01EB.\\u01C1 &;\\u01EC.\\u01BB &;\\u01ED.\\u01B5 &;\\u01EE.\\u01AF &;\\u01EF.\\u01A9 &;\\u01F0.\\u01A3 &;\\u01F1.\\u019D &;\\u01F2.\\u0197 &;\\u01F3.\\u0191 &;\\u01F4.\\u018B &;\\u01F5.\\u0185 &;\\u01F6.\\u017F &;\\u01F7.\\u0179 &;\\u01F8.\\u0173 &;\\u01F9.\\u016D &;\\u01FA.\\u0167 &;\\u01FB.\\u0161 &;\\u01FC.\\u015B &;\\u01FD.\\u0155 &;\\u01FE.\\u014F &;\\u01FF.\\u0149 &;\\u0200.\\u0143 &;\\u0201.\\u013D &;\\u0202.\\u0137 &;\\u0203.\\u0131 &;\\u0204.\\u012B &;\\u0205.\\u0125 &;\\u0206.\\u011F &;\\u0207.\\u0119 &;\\u0208.\\u0113 &;\\u0209.\\u010D &;\\u020A.\\u0107 &;\\u020B.\\u0101 &;\\u020C.\\xFB &;\\u020D.\\xF5 &;\\u020E.\\xEF &;\\u020F.\\xE9 &;\\u0210.\\xE3 &;\\u0211.\\xDD &;\\u0212.\\xD7 &;\\u0213.\\xD1 &;\\u0214.\\xCB &;\\u0215.\\xC5 &;\\u0216.\\xBF &;\\u0217.\\xB9 &;\\u0218.\\xB3 &;\\u0219.\\xAD &;\\u021A.\\xA7 &;\\u021B.\\xA1 &;\\u021C.\\x9B &;\\u021E.\\x95 &;\\u021F.\\x8F &;\\u0220.\\x89 &;\\u0221.\\x83 &;\\u0223.} &;\\u0224.w &;\\u0225.q &;\\u0226.k &;\\u0227.e &;\\u0228._ &;\\u0229.Y &;\\u022A.S &;\\u022B.M &;\\u022C.G &;\\u022D.A &;\\u022E.; &;\\u022F.5 &;\\u0230./ &;\\u0231.) &;\\u0232.# &;\\u0233\"),peg$decode(\";\\u01B9.\\u0167 &;\\u01BB.\\u0161 &;\\u01BC.\\u015B &;\\u01BE.\\u0155 &;\\u01BF.\\u014F &;\\u01C2.\\u0149 &;\\u01C5.\\u0143 &;\\u01C8.\\u013D &;\\u01CA.\\u0137 &;\\u01CB.\\u0131 &;\\u01CD.\\u012B &;\\u01CF.\\u0125 &;\\u01D0.\\u011F &;\\u01D6.\\u0119 &;\\u01D7.\\u0113 &;\\u01D9.\\u010D &;\\u01DC.\\u0107 &;\\u01DD.\\u0101 &;\\u01DF.\\xFB &;\\u01E1.\\xF5 &;\\u01E2.\\xEF &;\\u01E4.\\xE9 &;\\u01E8.\\xE3 &;\\u01E9.\\xDD &;\\u01EC.\\xD7 &;\\u01ED.\\xD1 &;\\u01F1.\\xCB &;\\u01F2.\\xC5 &;\\u01F6.\\xBF &;\\u01F8.\\xB9 &;\\u01F9.\\xB3 &;\\u01FA.\\xAD &;\\u01FB.\\xA7 &;\\u01FC.\\xA1 &;\\u0200.\\x9B &;\\u0204.\\x95 &;\\u0205.\\x8F &;\\u0206.\\x89 &;\\u0209.\\x83 &;\\u020A.} &;\\u020B.w &;\\u020F.q &;\\u0213.k &;\\u021F.e &;\\u0220._ &;\\u0221.Y &;\\u0224.S &;\\u0225.M &;\\u0226.G &;\\u0228.A &;\\u0229.; &;\\u022A.5 &;\\u022B./ &;\\u022D.) &;\\u0230.# &;\\u0231\"),peg$decode(\";\\u0238.. &%;\\u0239/& 8!:\\u038B! )\"),peg$decode(\"<%2\\u038D\\\"\\\"6\\u038D7\\u038E/\\x87#$%%<4\\u038F\\\"\\\"5!7\\u0390=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#0M*%%<4\\u038F\\\"\\\"5!7\\u0390=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#&/#$+\\\")(\\\"'#&'#=.\\\" 7\\u038C\"),peg$decode(\"<%;\\u023A/5#;\\u023E/,$;\\u023B/#$+#)(#'#(\\\"'#&'#=.\\\" 7\\u0391\"),peg$decode(\"2\\u0392\\\"\\\"6\\u03927\\u0393\"),peg$decode(\"2\\u0394\\\"\\\"6\\u03947\\u0395\"),peg$decode(\"$%%<;\\u023B.# &;\\u023A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#/P#0M*%%<;\\u023B.# &;\\u023A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#&&&#\"),peg$decode(\";\\u023C.# &;\\u0239\"),peg$decode(\"%;\\u023D/K#$4\\u0396\\\"\\\"5!7\\u0397.# &;\\u023D0/*4\\u0396\\\"\\\"5!7\\u0397.# &;\\u023D&/#$+\\\")(\\\"'#&'#\"),peg$decode(\"<%$4\\u0396\\\"\\\"5!7\\u0397.# &;\\u02370/*4\\u0396\\\"\\\"5!7\\u0397.# &;\\u0237&/' 8!:-!! )=.\\\" 7\\u0398\"),peg$decode(\"2\\u0399\\\"\\\"6\\u03997\\u039A\")];var peg$currPos=0;var peg$savedPos=0;var peg$posDetailsCache=[{line:1,column:1}];var peg$maxFailPos=0;var peg$maxFailExpected=[];var peg$silentFails=0;var peg$resultsCache={};var peg$ruleNames=[\"start\",\"start_streaming\",\"stmt_list\",\"semi_optional\",\"semi_required\",\"stmt_list_tail\",\"type_definition\",\"type_definition_types\",\"datatype_custom\",\"datatype_word_tail\",\"type_definition_args\",\"definition_args_loop\",\"literal_value\",\"literal_null\",\"literal_date\",\"literal_string\",\"literal_string_single\",\"literal_string_schar\",\"literal_blob\",\"literal_text\",\"number_sign\",\"literal_number_signed\",\"literal_number\",\"literal_number_decimal\",\"number_decimal_node\",\"number_decimal_full\",\"number_decimal_fraction\",\"number_decimal_exponent\",\"literal_number_hex\",\"number_hex\",\"number_digit\",\"bind_parameter\",\"bind_parameter_numbered\",\"bind_number_id\",\"bind_parameter_named\",\"bind_parameter_tcl\",\"tcl_suffix\",\"expression_exists\",\"expression_exists_ne\",\"expression_raise\",\"expression_raise_args\",\"raise_args_ignore\",\"raise_args_message\",\"expression_root\",\"expression_wrapped\",\"expression_recur\",\"expression_unary_collate\",\"expression_unary\",\"expression_unary_op\",\"expression_collate\",\"expression_concat\",\"expression_multiply\",\"expression_multiply_op\",\"expression_add\",\"expression_add_op\",\"expression_shift\",\"expression_shift_op\",\"expression_compare\",\"expression_compare_op\",\"expression_equiv\",\"expression_equiv_tails\",\"expression_equiv_null_op\",\"expression_equiv_op\",\"expression_cast\",\"type_alias\",\"expression_case\",\"case_expression\",\"expression_case_when\",\"expression_case_else\",\"expression_postfix\",\"expression_postfix_tail\",\"expression_like\",\"expression_escape\",\"expression_between\",\"expression_between_tail\",\"expression_is_not\",\"expression_in\",\"expression_in_target\",\"expression_list_or_select\",\"expression_and\",\"expression\",\"expression_list\",\"expression_list_loop\",\"expression_list_rest\",\"function_call\",\"function_call_args\",\"args_list_distinct\",\"error_message\",\"stmt\",\"stmt_modifier\",\"modifier_query\",\"stmt_nodes\",\"stmt_commit\",\"stmt_begin\",\"commit_transaction\",\"stmt_begin_modifier\",\"stmt_rollback\",\"rollback_savepoint\",\"savepoint_name\",\"savepoint_alt\",\"stmt_savepoint\",\"stmt_release\",\"stmt_alter\",\"alter_start\",\"alter_action\",\"alter_action_rename\",\"alter_action_add\",\"action_add_modifier\",\"stmt_crud\",\"stmt_core_with\",\"clause_with\",\"clause_with_recursive\",\"clause_with_tables\",\"clause_with_loop\",\"expression_cte\",\"select_alias\",\"select_wrapped\",\"stmt_select_full\",\"stmt_sqlite\",\"stmt_attach\",\"attach_arg\",\"stmt_detach\",\"stmt_vacuum\",\"vacuum_target\",\"stmt_analyze\",\"analyze_arg\",\"stmt_reindex\",\"reindex_arg\",\"stmt_pragma\",\"pragma_expression\",\"pragma_value\",\"pragma_value_literal\",\"pragma_value_bool\",\"pragma_bool_id\",\"pragma_value_name\",\"stmt_crud_types\",\"stmt_select\",\"stmt_core_order\",\"stmt_core_limit\",\"stmt_core_limit_offset\",\"limit_offset_variant\",\"limit_offset_variant_name\",\"select_loop\",\"select_loop_union\",\"select_parts\",\"select_parts_core\",\"select_core_select\",\"select_modifier\",\"select_modifier_distinct\",\"select_modifier_all\",\"select_target\",\"select_target_loop\",\"select_core_from\",\"stmt_core_where\",\"select_core_group\",\"select_core_having\",\"select_node\",\"select_node_star\",\"select_node_star_qualified\",\"select_node_aliased\",\"select_source\",\"source_loop_tail\",\"select_cross_clause\",\"select_join_clause\",\"table_or_sub\",\"table_or_sub_func\",\"table_qualified\",\"table_qualified_id\",\"table_or_sub_index_node\",\"index_node_indexed\",\"index_node_none\",\"table_or_sub_sub\",\"table_or_sub_select\",\"alias\",\"join_operator\",\"join_operator_natural\",\"join_operator_types\",\"operator_types_hand\",\"types_hand_outer\",\"operator_types_misc\",\"join_condition\",\"join_condition_on\",\"join_condition_using\",\"select_parts_values\",\"stmt_core_order_list\",\"stmt_core_order_list_loop\",\"stmt_core_order_list_item\",\"select_star\",\"stmt_fallback_types\",\"stmt_insert\",\"insert_keyword\",\"insert_keyword_ins\",\"insert_keyword_repl\",\"insert_keyword_mod\",\"insert_target\",\"insert_into\",\"insert_into_start\",\"insert_results\",\"loop_columns\",\"loop_column_tail\",\"loop_name\",\"insert_value\",\"insert_value_start\",\"insert_values_list\",\"insert_values_loop\",\"expression_list_wrapped\",\"insert_default\",\"operator_compound\",\"compound_union\",\"compound_union_all\",\"stmt_update\",\"update_start\",\"update_fallback\",\"update_set\",\"update_columns\",\"update_columns_tail\",\"update_column\",\"stmt_delete\",\"delete_start\",\"stmt_create\",\"create_start\",\"create_table_only\",\"create_index_only\",\"create_trigger_only\",\"create_view_only\",\"create_virtual_only\",\"create_table\",\"create_table_start\",\"create_core_tmp\",\"create_core_ine\",\"create_table_source\",\"table_source_def\",\"source_def_rowid\",\"source_def_loop\",\"source_def_tail\",\"source_tbl_loop\",\"source_def_column\",\"source_def_name\",\"column_type\",\"column_constraints\",\"column_constraint_tail\",\"column_constraint\",\"constraint_name\",\"constraint_name_loop\",\"column_constraint_types\",\"column_constraint_foreign\",\"column_constraint_primary\",\"col_primary_start\",\"col_primary_auto\",\"column_constraint_null\",\"constraint_null_types\",\"constraint_null_value\",\"column_constraint_check\",\"column_constraint_default\",\"column_default_values\",\"column_constraint_collate\",\"table_constraint\",\"table_constraint_types\",\"table_constraint_check\",\"table_constraint_primary\",\"primary_start\",\"primary_start_normal\",\"primary_start_unique\",\"primary_columns\",\"primary_columns_index\",\"primary_columns_table\",\"primary_column_tail\",\"primary_column\",\"primary_column_types\",\"column_collate\",\"column_collate_loop\",\"primary_column_dir\",\"primary_conflict\",\"primary_conflict_start\",\"constraint_check\",\"table_constraint_foreign\",\"foreign_start\",\"foreign_clause\",\"foreign_references\",\"foreign_actions\",\"foreign_actions_tail\",\"foreign_action\",\"foreign_action_on\",\"action_on_action\",\"on_action_set\",\"on_action_cascade\",\"on_action_none\",\"foreign_action_match\",\"foreign_deferrable\",\"deferrable_initially\",\"table_source_select\",\"create_index\",\"create_index_start\",\"index_unique\",\"index_on\",\"create_trigger\",\"create_trigger_start\",\"trigger_conditions\",\"trigger_apply_mods\",\"trigger_apply_instead\",\"trigger_do\",\"trigger_do_on\",\"trigger_do_update\",\"do_update_of\",\"do_update_columns\",\"trigger_foreach\",\"trigger_when\",\"trigger_action\",\"action_loop\",\"action_loop_stmt\",\"create_view\",\"id_view_expression\",\"create_view_start\",\"create_as_select\",\"create_virtual\",\"create_virtual_start\",\"virtual_module\",\"virtual_args\",\"virtual_args_loop\",\"virtual_args_tail\",\"virtual_arg_types\",\"virtual_column_name\",\"stmt_drop\",\"drop_start\",\"drop_types\",\"drop_ie\",\"binary_concat\",\"binary_plus\",\"binary_minus\",\"binary_multiply\",\"binary_divide\",\"binary_mod\",\"binary_left\",\"binary_right\",\"binary_and\",\"binary_or\",\"binary_lt\",\"binary_gt\",\"binary_lte\",\"binary_gte\",\"binary_equal\",\"binary_notequal_a\",\"binary_notequal_b\",\"binary_lang_isnt\",\"id_name\",\"id_database\",\"id_function\",\"id_table\",\"id_table_qualified\",\"id_column\",\"column_unqualified\",\"column_qualifiers\",\"id_column_qualified\",\"id_collation\",\"id_savepoint\",\"id_index\",\"id_trigger\",\"id_view\",\"id_pragma\",\"id_cte\",\"id_table_expression\",\"id_constraint_table\",\"id_constraint_column\",\"datatype_types\",\"datatype_text\",\"datatype_real\",\"datatype_real_double\",\"datatype_numeric\",\"datatype_integer\",\"datatype_integer_fp\",\"datatype_none\",\"name_char\",\"unicode_char\",\"name\",\"name_quoted\",\"name_unquoted\",\"name_reserved\",\"name_bracketed\",\"bracket_terminator\",\"name_dblquoted\",\"name_sglquoted\",\"name_backticked\",\"sym_bopen\",\"sym_bclose\",\"sym_popen\",\"sym_pclose\",\"sym_comma\",\"sym_dot\",\"sym_star\",\"sym_quest\",\"sym_sglquote\",\"sym_dblquote\",\"sym_backtick\",\"sym_tilde\",\"sym_plus\",\"sym_minus\",\"sym_equal\",\"sym_amp\",\"sym_pipe\",\"sym_mod\",\"sym_lt\",\"sym_gt\",\"sym_excl\",\"sym_semi\",\"sym_colon\",\"sym_fslash\",\"sym_bslash\",\"ABORT\",\"ACTION\",\"ADD\",\"AFTER\",\"ALL\",\"ALTER\",\"ANALYZE\",\"AND\",\"AS\",\"ASC\",\"ATTACH\",\"AUTOINCREMENT\",\"BEFORE\",\"BEGIN\",\"BETWEEN\",\"BY\",\"CASCADE\",\"CASE\",\"CAST\",\"CHECK\",\"COLLATE\",\"COLUMN\",\"COMMIT\",\"CONFLICT\",\"CONSTRAINT\",\"CREATE\",\"CROSS\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"DATABASE\",\"DEFAULT\",\"DEFERRABLE\",\"DEFERRED\",\"DELETE\",\"DESC\",\"DETACH\",\"DISTINCT\",\"DROP\",\"EACH\",\"ELSE\",\"END\",\"ESCAPE\",\"EXCEPT\",\"EXCLUSIVE\",\"EXISTS\",\"EXPLAIN\",\"FAIL\",\"FOR\",\"FOREIGN\",\"FROM\",\"FULL\",\"GLOB\",\"GROUP\",\"HAVING\",\"IF\",\"IGNORE\",\"IMMEDIATE\",\"IN\",\"INDEX\",\"INDEXED\",\"INITIALLY\",\"INNER\",\"INSERT\",\"INSTEAD\",\"INTERSECT\",\"INTO\",\"IS\",\"ISNULL\",\"JOIN\",\"KEY\",\"LEFT\",\"LIKE\",\"LIMIT\",\"MATCH\",\"NATURAL\",\"NO\",\"NOT\",\"NOTNULL\",\"NULL\",\"OF\",\"OFFSET\",\"ON\",\"OR\",\"ORDER\",\"OUTER\",\"PLAN\",\"PRAGMA\",\"PRIMARY\",\"QUERY\",\"RAISE\",\"RECURSIVE\",\"REFERENCES\",\"REGEXP\",\"REINDEX\",\"RELEASE\",\"RENAME\",\"REPLACE\",\"RESTRICT\",\"RIGHT\",\"ROLLBACK\",\"ROW\",\"ROWID\",\"SAVEPOINT\",\"SELECT\",\"SET\",\"TABLE\",\"TEMP\",\"TEMPORARY\",\"THEN\",\"TO\",\"TRANSACTION\",\"TRIGGER\",\"UNION\",\"UNIQUE\",\"UPDATE\",\"USING\",\"VACUUM\",\"VALUES\",\"VIEW\",\"VIRTUAL\",\"WHEN\",\"WHERE\",\"WITH\",\"WITHOUT\",\"reserved_words\",\"reserved_word_list\",\"reserved_critical_list\",\"comment\",\"comment_line\",\"comment_block\",\"comment_block_start\",\"comment_block_end\",\"comment_block_body\",\"block_body_nodes\",\"comment_block_feed\",\"o\",\"_TODO_\"];var peg$descNames=[null,null,null,null,null,null,\"Type Definition\",null,\"Custom Datatype Name\",null,\"Type Definition Arguments\",null,null,\"Null Literal\",\"Date Literal\",\"String Literal\",\"Single-quoted String Literal\",null,\"Blob Literal\",null,\"Number Sign\",null,null,null,\"Decimal Literal\",null,null,\"Decimal Literal Exponent\",\"Hexidecimal Literal\",null,null,\"Bind Parameter\",\"Numbered Bind Parameter\",null,\"Named Bind Parameter\",\"TCL Bind Parameter\",null,\"EXISTS Expression\",\"EXISTS Keyword\",\"RAISE Expression\",\"RAISE Expression Arguments\",\"IGNORE Keyword\",null,null,null,null,null,null,null,\"COLLATE Expression\",null,null,null,null,null,null,null,null,null,null,null,null,null,\"CAST Expression\",\"Type Alias\",\"CASE Expression\",null,\"WHEN Clause\",\"ELSE Clause\",null,null,\"Comparison Expression\",\"ESCAPE Expression\",\"BETWEEN Expression\",null,null,\"IN Expression\",null,null,null,null,\"Expression List\",null,null,\"Function Call\",\"Function Call Arguments\",null,\"Error Message\",\"Statement\",\"QUERY PLAN\",\"QUERY PLAN Keyword\",null,\"END Transaction Statement\",\"BEGIN Transaction Statement\",null,null,\"ROLLBACK Statement\",\"TO Clause\",null,null,\"SAVEPOINT Statement\",\"RELEASE Statement\",\"ALTER TABLE Statement\",\"ALTER TABLE Keyword\",null,\"RENAME TO Keyword\",\"ADD COLUMN Keyword\",null,null,\"WITH Clause\",null,null,null,null,\"Common Table Expression\",null,null,null,null,\"ATTACH Statement\",null,\"DETACH Statement\",\"VACUUM Statement\",null,\"ANALYZE Statement\",null,\"REINDEX Statement\",null,\"PRAGMA Statement\",null,null,null,null,null,null,null,\"SELECT Statement\",\"ORDER BY Clause\",\"LIMIT Clause\",\"OFFSET Clause\",null,null,null,\"Union Operation\",null,null,\"SELECT Results Clause\",\"SELECT Results Modifier\",null,null,null,null,\"FROM Clause\",\"WHERE Clause\",\"GROUP BY Clause\",\"HAVING Clause\",null,null,null,null,null,null,\"CROSS JOIN Operation\",\"JOIN Operation\",null,null,\"Qualified Table\",\"Qualified Table Identifier\",\"Qualfied Table Index\",null,null,\"SELECT Source\",\"Subquery\",\"Alias\",\"JOIN Operator\",null,null,null,null,null,\"JOIN Constraint\",\"Join ON Clause\",\"Join USING Clause\",\"VALUES Clause\",null,null,\"Ordering Expression\",\"Star\",\"Fallback Type\",\"INSERT Statement\",null,\"INSERT Keyword\",\"REPLACE Keyword\",\"INSERT OR Modifier\",null,\"INTO Clause\",\"INTO Keyword\",\"VALUES Clause\",\"Column List\",null,\"Column Name\",\"VALUES Clause\",\"VALUES Keyword\",null,null,\"Wrapped Expression List\",\"DEFAULT VALUES Clause\",\"Compound Operator\",\"UNION Operator\",null,\"UPDATE Statement\",\"UPDATE Keyword\",\"UPDATE OR Modifier\",\"SET Clause\",null,null,\"Column Assignment\",\"DELETE Statement\",\"DELETE Keyword\",\"CREATE Statement\",null,null,null,null,null,null,\"CREATE TABLE Statement\",null,null,\"IF NOT EXISTS Modifier\",null,\"Table Definition\",null,null,null,null,\"Column Definition\",null,\"Column Datatype\",null,null,\"Column Constraint\",null,\"CONSTRAINT Name\",null,\"FOREIGN KEY Column Constraint\",\"PRIMARY KEY Column Constraint\",\"PRIMARY KEY Keyword\",\"AUTOINCREMENT Keyword\",null,\"UNIQUE Column Constraint\",\"NULL Column Constraint\",\"CHECK Column Constraint\",\"DEFAULT Column Constraint\",null,\"COLLATE Column Constraint\",\"Table Constraint\",null,\"CHECK Table Constraint\",\"PRIMARY KEY Table Constraint\",null,\"PRIMARY KEY Keyword\",\"UNIQUE Keyword\",null,null,null,null,\"Indexed Column\",null,\"Collation\",null,\"Column Direction\",null,\"ON CONFLICT Keyword\",null,\"FOREIGN KEY Table Constraint\",\"FOREIGN KEY Keyword\",null,\"REFERENCES Clause\",null,null,\"FOREIGN KEY Action Clause\",null,\"FOREIGN KEY Action\",null,null,null,null,\"DEFERRABLE Clause\",null,null,\"CREATE INDEX Statement\",null,null,\"ON Clause\",\"CREATE TRIGGER Statement\",null,\"Conditional Clause\",null,null,\"Conditional Action\",null,null,null,null,null,\"WHEN Clause\",\"Actions Clause\",null,null,\"CREATE VIEW Statement\",null,null,null,\"CREATE VIRTUAL TABLE Statement\",null,null,\"Module Arguments\",null,null,null,null,\"DROP Statement\",\"DROP Keyword\",\"DROP Type\",\"IF EXISTS Keyword\",\"Or\",\"Add\",\"Subtract\",\"Multiply\",\"Divide\",\"Modulo\",\"Shift Left\",\"Shift Right\",\"Logical AND\",\"Logical OR\",\"Less Than\",\"Greater Than\",\"Less Than Or Equal\",\"Greater Than Or Equal\",\"Equal\",\"Not Equal\",\"Not Equal\",\"IS\",\"Identifier\",\"Database Identifier\",\"Function Identifier\",\"Table Identifier\",null,\"Column Identifier\",null,null,null,\"Collation Identifier\",\"Savepoint Identifier\",\"Index Identifier\",\"Trigger Identifier\",\"View Identifier\",\"Pragma Identifier\",\"CTE Identifier\",null,\"Table Constraint Identifier\",\"Column Constraint Identifier\",\"Datatype Name\",\"TEXT Datatype Name\",\"REAL Datatype Name\",\"DOUBLE Datatype Name\",\"NUMERIC Datatype Name\",\"INTEGER Datatype Name\",null,\"BLOB Datatype Name\",null,null,null,null,null,null,null,null,null,null,null,\"Open Bracket\",\"Close Bracket\",\"Open Parenthesis\",\"Close Parenthesis\",\"Comma\",\"Period\",\"Asterisk\",\"Question Mark\",\"Single Quote\",\"Double Quote\",\"Backtick\",\"Tilde\",\"Plus\",\"Minus\",\"Equal\",\"Ampersand\",\"Pipe\",\"Modulo\",\"Less Than\",\"Greater Than\",\"Exclamation\",\"Semicolon\",\"Colon\",\"Forward Slash\",\"Backslash\",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"Line Comment\",\"Block Comment\",null,null,null,null,null,\"Whitespace\",null];var peg$tracer=\"tracer\"in options?options.tracer:new peg$DefaultTracer();var peg$result;if(\"startRule\"in options){if(!(options.startRule in peg$startRuleIndices)){throw new Error(\"Can't start parsing from rule \\\"\"+options.startRule+\"\\\".\");}peg$startRuleIndex=peg$startRuleIndices[options.startRule];}function text(){return input.substring(peg$savedPos,peg$currPos);}function location(){return peg$computeLocation(peg$savedPos,peg$currPos);}function expected(description,location){location=location!==undefined?location:peg$computeLocation(peg$savedPos,peg$currPos);throw peg$buildStructuredError([peg$otherExpectation(description)],input.substring(peg$savedPos,peg$currPos),location);}function error(message,location){location=location!==undefined?location:peg$computeLocation(peg$savedPos,peg$currPos);throw peg$buildSimpleError(message,location);}function peg$literalExpectation(text,ignoreCase){return{type:\"literal\",text:text,ignoreCase:ignoreCase};}function peg$classExpectation(parts,inverted,ignoreCase){return{type:\"class\",parts:parts,inverted:inverted,ignoreCase:ignoreCase};}function peg$anyExpectation(){return{type:\"any\"};}function peg$endExpectation(){return{type:\"end\"};}function peg$otherExpectation(description){return{type:\"other\",description:description};}function peg$computePosDetails(pos){var details=peg$posDetailsCache[pos];var p;if(details){return details;}else{p=pos-1;while(!peg$posDetailsCache[p]){p--;}details=peg$posDetailsCache[p];details={line:details.line,column:details.column};while(ppeg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[];}peg$maxFailExpected.push(expected);}function peg$buildSimpleError(message,location){return new peg$SyntaxError(message,null,null,location);}function peg$buildStructuredError(expected,found,location){return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected,found),expected,found,location);}function peg$decode(s){return s.split(\"\").map(function(ch){return ch.charCodeAt(0)-32;});}function peg$parseRule(index){var bc=peg$bytecode[index];var ip=0;var ips=[];var end=bc.length;var ends=[];var stack=[];var startPos=peg$currPos;var params;peg$tracer.trace({type:\"rule.enter\",rule:peg$ruleNames[index],description:peg$descNames[index],location:peg$computeLocation(startPos,startPos)});var key=peg$currPos*545+index;var cached=peg$resultsCache[key];if(cached){peg$currPos=cached.nextPos;if(cached.result!==peg$FAILED){peg$tracer.trace({type:\"rule.match\",rule:peg$ruleNames[index],description:peg$descNames[index],result:cached.result,location:peg$computeLocation(startPos,peg$currPos)});}else{peg$tracer.trace({type:\"rule.fail\",rule:peg$ruleNames[index],description:peg$descNames[index],location:peg$computeLocation(startPos,startPos)});}return cached.result;}while(true){while(ippeg$currPos){end=ip+3+bc[ip+1];ip+=3;}else{end=ip+3+bc[ip+1]+bc[ip+2];ip+=3+bc[ip+1];}break;case 18:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(input.substr(peg$currPos,peg$consts[bc[ip+1]].length)===peg$consts[bc[ip+1]]){end=ip+4+bc[ip+2];ip+=4;}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2];}break;case 19:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(input.substr(peg$currPos,peg$consts[bc[ip+1]].length).toLowerCase()===peg$consts[bc[ip+1]]){end=ip+4+bc[ip+2];ip+=4;}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2];}break;case 20:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(peg$consts[bc[ip+1]].test(input.charAt(peg$currPos))){end=ip+4+bc[ip+2];ip+=4;}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2];}break;case 21:stack.push(input.substr(peg$currPos,bc[ip+1]));peg$currPos+=bc[ip+1];ip+=2;break;case 22:stack.push(peg$consts[bc[ip+1]]);peg$currPos+=peg$consts[bc[ip+1]].length;ip+=2;break;case 23:stack.push(peg$FAILED);if(peg$silentFails===0){peg$fail(peg$consts[bc[ip+1]]);}ip+=2;break;case 24:peg$savedPos=stack[stack.length-1-bc[ip+1]];ip+=2;break;case 25:peg$savedPos=peg$currPos;ip++;break;case 26:params=bc.slice(ip+4,ip+4+bc[ip+3]).map(function(p){return stack[stack.length-1-p];});stack.splice(stack.length-bc[ip+2],bc[ip+2],peg$consts[bc[ip+1]].apply(null,params));ip+=4+bc[ip+3];break;case 27:stack.push(peg$parseRule(bc[ip+1]));ip+=2;break;case 28:peg$silentFails++;ip++;break;case 29:peg$silentFails--;ip++;break;default:throw new Error(\"Invalid opcode: \"+bc[ip]+\".\");}}if(ends.length>0){end=ends.pop();ip=ips.pop();}else{break;}}peg$resultsCache[key]={nextPos:peg$currPos,result:stack[0]};if(stack[0]!==peg$FAILED){peg$tracer.trace({type:\"rule.match\",rule:peg$ruleNames[index],description:peg$descNames[index],result:stack[0],location:peg$computeLocation(startPos,peg$currPos)});}else{peg$tracer.trace({type:\"rule.fail\",rule:peg$ruleNames[index],description:peg$descNames[index],location:peg$computeLocation(startPos,startPos)});}return stack[0];}function makeArray(arr){if(!isOkay(arr)){return[];}return!Array.isArray(arr)?[arr]:arr;}function isOkay(obj){return obj!=null;}function foldString(parts){var glue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:' ';var folded=parts.filter(function(part){return isOkay(part);}).reduce(function(prev,cur){return\"\"+prev+nodeToString(cur)+glue;},'');return folded.trim();}function foldStringWord(parts){return foldString(parts,'');}function foldStringKey(parts){return foldString(parts).toLowerCase();}function flattenAll(arr){return arr.filter(function(part){return isOkay(part);}).reduce(function(prev,cur){return prev.concat(cur);},[]);}function unescape(str){var quoteChar=arguments.length>1&&arguments[1]!==undefined?arguments[1]:'\\'';var re=new RegExp(quoteChar+\"{2}\",'g');return nodeToString(str).replace(re,quoteChar);}function nodeToString(){var node=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];return makeArray(node).join('');}function textNode(node){return nodeToString(node).trim();}function keyNode(node){return textNode(node).toLowerCase();}function isArrayOkay(arr){return Array.isArray(arr)&&arr.length>0&&isOkay(arr[0]);}function composeBinary(first,rest){return rest.reduce(function(left,_ref7){var _ref8=_slicedToArray(_ref7,4);var x=_ref8[0];var operation=_ref8[1];var y=_ref8[2];var right=_ref8[3];return{'type':'expression','format':'binary','variant':'operation','operation':keyNode(operation),'left':left,'right':right};},first);}peg$result=peg$parseRule(peg$startRuleIndex);if(peg$result!==peg$FAILED&&peg$currPos===input.length){return peg$result;}else{if(peg$result!==peg$FAILED&&peg$currPos=0;i-=1){if(func(arr[i])){return i;}}return-1;}function takeWhile(arr,func){var len=arr.length;var i=0;for(;i1){return false;}if(!deep){if(elem.indentation>bestNode.indentation){bestNode=elem;}else{deep=true;}}else if(/^(stmt)$/i.test(elem.rule)){deep=true;return true;}return true;});if(chain.length){location=bestNode.location;firstNode=chain.find(function(elem){return that.firstNodeRule.test(elem.description)&&elem.description!==bestNode.description&&elem.indentation!==bestNode.indentation;});if(firstNode!=null){if(this.statementRule.test(bestNode.description)&&this.statementRule.test(firstNode.description)){chainDetail=firstNode.description;}else{chainDetail=bestNode.description+' ('+firstNode.description+')';}}else{chainDetail=bestNode.description;}message='Syntax error found near '+chainDetail;Object.assign(err,{'message':message,'location':location});}return err;};return Tracer;}();\n\n},{}]},{},[1])(1)\n});","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","exports.f = Object.getOwnPropertySymbols;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","// IEEE754 conversions based on https://github.com/feross/ieee754\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","/* eslint-disable no-new */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n var curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var defaultEncoding\n/* istanbul ignore next */\nif (process.browser) {\n defaultEncoding = 'utf-8'\n} else if (process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","'use strict'\n\nfunction isPromise (obj) {\n // via https://unpkg.com/is-promise@2.1.0/index.js\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\n}\n\nfunction registerPromiseWorker (callback) {\n function postOutgoingMessage (e, messageId, error, result) {\n function postMessage (msg) {\n /* istanbul ignore if */\n if (typeof self.postMessage !== 'function') { // service worker\n e.ports[0].postMessage(msg)\n } else { // web worker\n self.postMessage(msg)\n }\n }\n if (error) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined' && 'error' in console) {\n // This is to make errors easier to debug. I think it's important\n // enough to just leave here without giving the user an option\n // to silence it.\n console.error('Worker caught an error:', error)\n }\n postMessage([messageId, {\n message: error.message\n }])\n } else {\n postMessage([messageId, null, result])\n }\n }\n\n function tryCatchFunc (callback, message) {\n try {\n return { res: callback(message) }\n } catch (e) {\n return { err: e }\n }\n }\n\n function handleIncomingMessage (e, callback, messageId, message) {\n var result = tryCatchFunc(callback, message)\n\n if (result.err) {\n postOutgoingMessage(e, messageId, result.err)\n } else if (!isPromise(result.res)) {\n postOutgoingMessage(e, messageId, null, result.res)\n } else {\n result.res.then(function (finalResult) {\n postOutgoingMessage(e, messageId, null, finalResult)\n }, function (finalError) {\n postOutgoingMessage(e, messageId, finalError)\n })\n }\n }\n\n function onIncomingMessage (e) {\n var payload = e.data\n if (!Array.isArray(payload) || payload.length !== 2) {\n // message doens't match communication format; ignore\n return\n }\n var messageId = payload[0]\n var message = payload[1]\n\n if (typeof callback !== 'function') {\n postOutgoingMessage(e, messageId, new Error(\n 'Please pass a function into register().'))\n } else {\n handleIncomingMessage(e, callback, messageId, message)\n }\n }\n\n self.addEventListener('message', onIncomingMessage)\n}\n\nmodule.exports = registerPromiseWorker\n","var $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n copyWithin: copyWithin\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","var bn = require('bn.js');\nvar randomBytes = require('randombytes');\nmodule.exports = crt;\nfunction blind(priv) {\n var r = getr(priv);\n var blinder = r.toRed(bn.mont(priv.modulus))\n .redPow(new bn(priv.publicExponent)).fromRed();\n return {\n blinder: blinder,\n unblinder:r.invm(priv.modulus)\n };\n}\nfunction crt(msg, priv) {\n var blinds = blind(priv);\n var len = priv.modulus.byteLength();\n var mod = bn.mont(priv.modulus);\n var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus);\n var c1 = blinded.toRed(bn.mont(priv.prime1));\n var c2 = blinded.toRed(bn.mont(priv.prime2));\n var qinv = priv.coefficient;\n var p = priv.prime1;\n var q = priv.prime2;\n var m1 = c1.redPow(priv.exponent1);\n var m2 = c2.redPow(priv.exponent2);\n m1 = m1.fromRed();\n m2 = m2.fromRed();\n var h = m1.isub(m2).imul(qinv).umod(p);\n h.imul(q);\n m2.iadd(h);\n return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len));\n}\ncrt.getr = getr;\nfunction getr(priv) {\n var len = priv.modulus.byteLength();\n var r = new bn(randomBytes(len));\n while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) {\n r = new bn(randomBytes(len));\n }\n return r;\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return C;\n }\n};\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(curves.hasOwnProperty(options), 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray()\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n do {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n } while (true);\n};\n\nEC.prototype._truncateToN = function truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8'\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; true; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n\n if (!this.curve._maxwellTrick) {\n var p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n var p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.github.io/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n});\n","module.exports = require('./readable').PassThrough\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","module.exports = false;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","module.exports = {};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","module.exports = require('./readable').Transform\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n for (var j = 0; j < naf.length; j += doubles.step) {\n var nafW = 0;\n for (var k = j + doubles.step - 1; k >= j; k--)\n nafW = (nafW << 1) + naf[k];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (var j = 0; j < repr.length; j++) {\n var nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var k = 0; i >= 0 && naf[i] === 0; i--)\n k++;\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n for (var i = 0; i < len; i++) {\n var p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (var i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b] /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3 /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (var j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (var i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (var j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (var j = 0; j < len; j++) {\n var z = tmp[j];\n var p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (var i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ;\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","module.exports = require('events').EventEmitter;\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n []\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n var m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n var m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/js/_worker.c13cc3a9.worker.js b/js/_worker.c13cc3a9.worker.js deleted file mode 100644 index 3c5db9f..0000000 --- a/js/_worker.c13cc3a9.worker.js +++ /dev/null @@ -1,19 +0,0 @@ -(function(t){var e={};function r(i){if(e[i])return e[i].exports;var n=e[i]={i:i,l:!1,exports:{}};return t[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.m=t,r.c=e,r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},r.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)r.d(i,n,function(e){return t[e]}.bind(null,n));return i},r.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s="4ef2")})({0:function(t,e){},"00dc":function(t,e,r){(function(t){var i=r("58a2"),n=r("c24d"),o=r("561d");function a(e){var r=new t(n[e].prime,"hex"),i=new t(n[e].gen,"hex");return new o(r,i)}var s={binary:!0,hex:!0,base64:!0};function u(e,r,n,a){return t.isBuffer(r)||void 0===s[r]?u(e,"binary",r,n):(r=r||"binary",a=a||"binary",n=n||new t([2]),t.isBuffer(n)||(n=new t(n,a)),"number"===typeof e?new o(i(e,n),n,!0):(t.isBuffer(e)||(e=new t(e,r)),new o(e,n,!0)))}e.DiffieHellmanGroup=e.createDiffieHellmanGroup=e.getDiffieHellman=a,e.createDiffieHellman=e.DiffieHellman=u}).call(this,r("b639").Buffer)},"00ee":function(t,e,r){var i=r("b622"),n=i("toStringTag"),o={};o[n]="z",t.exports="[object z]"===String(o)},"0106":function(t,e,r){(function(t){(function(t,e){"use strict";function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a=r(14).Buffer}catch(x){}function s(t,e,r){for(var i=0,n=Math.min(t.length,r),o=e;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return i}function u(t,e,r,i){for(var n=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var n=0;"-"===t[0]&&n++,16===e?this._parseHex(t,n):this._parseBase(t,e,n),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(i("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)n=s(t,r,r+6),this.words[i]|=n<>>26-o&4194303,o+=24,o>=26&&(o-=26,i++);r+6!==e&&(n=s(t,e,r+6),this.words[i]|=n<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=e)i++;i--,n=n/e|0;for(var o=t.length-r,a=o%i,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>n}return e}function d(t,e,r){r.negative=e.negative^t.negative;var i=t.length+e.length|0;r.length=i,i=i-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;n=0|t.words[p],o=0|e.words[d],a=n*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,n+=2,n>=26&&(n-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,i=t):(r=t,i=this);for(var n=0,o=0;o>>26;for(;0!==n&&o>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,i,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=t):(r=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,b=0|a[2],v=8191&b,g=b>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],S=8191&_,E=_>>>13,A=0|a[5],x=8191&A,k=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,L=0|a[8],N=8191&L,B=L>>>13,P=0|a[9],j=8191&P,D=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],K=8191&z,W=z>>>13,H=0|s[2],Z=8191&H,Y=H>>>13,V=0|s[3],G=8191&V,X=V>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,it=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,i=Math.imul(l,U),n=Math.imul(l,F),n=n+Math.imul(c,U)|0,o=Math.imul(c,F);var bt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(p,U),n=Math.imul(p,F),n=n+Math.imul(m,U)|0,o=Math.imul(m,F),i=i+Math.imul(l,K)|0,n=n+Math.imul(l,W)|0,n=n+Math.imul(c,K)|0,o=o+Math.imul(c,W)|0;var vt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,U),n=Math.imul(v,F),n=n+Math.imul(g,U)|0,o=Math.imul(g,F),i=i+Math.imul(p,K)|0,n=n+Math.imul(p,W)|0,n=n+Math.imul(m,K)|0,o=o+Math.imul(m,W)|0,i=i+Math.imul(l,Z)|0,n=n+Math.imul(l,Y)|0,n=n+Math.imul(c,Z)|0,o=o+Math.imul(c,Y)|0;var gt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,i=Math.imul(w,U),n=Math.imul(w,F),n=n+Math.imul(M,U)|0,o=Math.imul(M,F),i=i+Math.imul(v,K)|0,n=n+Math.imul(v,W)|0,n=n+Math.imul(g,K)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(p,Z)|0,n=n+Math.imul(p,Y)|0,n=n+Math.imul(m,Z)|0,o=o+Math.imul(m,Y)|0,i=i+Math.imul(l,G)|0,n=n+Math.imul(l,X)|0,n=n+Math.imul(c,G)|0,o=o+Math.imul(c,X)|0;var yt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(S,U),n=Math.imul(S,F),n=n+Math.imul(E,U)|0,o=Math.imul(E,F),i=i+Math.imul(w,K)|0,n=n+Math.imul(w,W)|0,n=n+Math.imul(M,K)|0,o=o+Math.imul(M,W)|0,i=i+Math.imul(v,Z)|0,n=n+Math.imul(v,Y)|0,n=n+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(p,G)|0,n=n+Math.imul(p,X)|0,n=n+Math.imul(m,G)|0,o=o+Math.imul(m,X)|0,i=i+Math.imul(l,Q)|0,n=n+Math.imul(l,tt)|0,n=n+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(x,U),n=Math.imul(x,F),n=n+Math.imul(k,U)|0,o=Math.imul(k,F),i=i+Math.imul(S,K)|0,n=n+Math.imul(S,W)|0,n=n+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,i=i+Math.imul(w,Z)|0,n=n+Math.imul(w,Y)|0,n=n+Math.imul(M,Z)|0,o=o+Math.imul(M,Y)|0,i=i+Math.imul(v,G)|0,n=n+Math.imul(v,X)|0,n=n+Math.imul(g,G)|0,o=o+Math.imul(g,X)|0,i=i+Math.imul(p,Q)|0,n=n+Math.imul(p,tt)|0,n=n+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,i=i+Math.imul(l,rt)|0,n=n+Math.imul(l,it)|0,n=n+Math.imul(c,rt)|0,o=o+Math.imul(c,it)|0;var Mt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul($,U),n=Math.imul($,F),n=n+Math.imul(T,U)|0,o=Math.imul(T,F),i=i+Math.imul(x,K)|0,n=n+Math.imul(x,W)|0,n=n+Math.imul(k,K)|0,o=o+Math.imul(k,W)|0,i=i+Math.imul(S,Z)|0,n=n+Math.imul(S,Y)|0,n=n+Math.imul(E,Z)|0,o=o+Math.imul(E,Y)|0,i=i+Math.imul(w,G)|0,n=n+Math.imul(w,X)|0,n=n+Math.imul(M,G)|0,o=o+Math.imul(M,X)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(v,tt)|0,n=n+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(p,rt)|0,n=n+Math.imul(p,it)|0,n=n+Math.imul(m,rt)|0,o=o+Math.imul(m,it)|0,i=i+Math.imul(l,ot)|0,n=n+Math.imul(l,at)|0,n=n+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(O,U),n=Math.imul(O,F),n=n+Math.imul(C,U)|0,o=Math.imul(C,F),i=i+Math.imul($,K)|0,n=n+Math.imul($,W)|0,n=n+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,i=i+Math.imul(x,Z)|0,n=n+Math.imul(x,Y)|0,n=n+Math.imul(k,Z)|0,o=o+Math.imul(k,Y)|0,i=i+Math.imul(S,G)|0,n=n+Math.imul(S,X)|0,n=n+Math.imul(E,G)|0,o=o+Math.imul(E,X)|0,i=i+Math.imul(w,Q)|0,n=n+Math.imul(w,tt)|0,n=n+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,i=i+Math.imul(v,rt)|0,n=n+Math.imul(v,it)|0,n=n+Math.imul(g,rt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(p,ot)|0,n=n+Math.imul(p,at)|0,n=n+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,i=i+Math.imul(l,ut)|0,n=n+Math.imul(l,ht)|0,n=n+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var St=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(N,U),n=Math.imul(N,F),n=n+Math.imul(B,U)|0,o=Math.imul(B,F),i=i+Math.imul(O,K)|0,n=n+Math.imul(O,W)|0,n=n+Math.imul(C,K)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul($,Z)|0,n=n+Math.imul($,Y)|0,n=n+Math.imul(T,Z)|0,o=o+Math.imul(T,Y)|0,i=i+Math.imul(x,G)|0,n=n+Math.imul(x,X)|0,n=n+Math.imul(k,G)|0,o=o+Math.imul(k,X)|0,i=i+Math.imul(S,Q)|0,n=n+Math.imul(S,tt)|0,n=n+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,i=i+Math.imul(w,rt)|0,n=n+Math.imul(w,it)|0,n=n+Math.imul(M,rt)|0,o=o+Math.imul(M,it)|0,i=i+Math.imul(v,ot)|0,n=n+Math.imul(v,at)|0,n=n+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(p,ut)|0,n=n+Math.imul(p,ht)|0,n=n+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,i=i+Math.imul(l,lt)|0,n=n+Math.imul(l,ct)|0,n=n+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var Et=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(j,U),n=Math.imul(j,F),n=n+Math.imul(D,U)|0,o=Math.imul(D,F),i=i+Math.imul(N,K)|0,n=n+Math.imul(N,W)|0,n=n+Math.imul(B,K)|0,o=o+Math.imul(B,W)|0,i=i+Math.imul(O,Z)|0,n=n+Math.imul(O,Y)|0,n=n+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul($,G)|0,n=n+Math.imul($,X)|0,n=n+Math.imul(T,G)|0,o=o+Math.imul(T,X)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(x,tt)|0,n=n+Math.imul(k,Q)|0,o=o+Math.imul(k,tt)|0,i=i+Math.imul(S,rt)|0,n=n+Math.imul(S,it)|0,n=n+Math.imul(E,rt)|0,o=o+Math.imul(E,it)|0,i=i+Math.imul(w,ot)|0,n=n+Math.imul(w,at)|0,n=n+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,i=i+Math.imul(v,ut)|0,n=n+Math.imul(v,ht)|0,n=n+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,i=i+Math.imul(p,lt)|0,n=n+Math.imul(p,ct)|0,n=n+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,i=i+Math.imul(l,pt)|0,n=n+Math.imul(l,mt)|0,n=n+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(j,K),n=Math.imul(j,W),n=n+Math.imul(D,K)|0,o=Math.imul(D,W),i=i+Math.imul(N,Z)|0,n=n+Math.imul(N,Y)|0,n=n+Math.imul(B,Z)|0,o=o+Math.imul(B,Y)|0,i=i+Math.imul(O,G)|0,n=n+Math.imul(O,X)|0,n=n+Math.imul(C,G)|0,o=o+Math.imul(C,X)|0,i=i+Math.imul($,Q)|0,n=n+Math.imul($,tt)|0,n=n+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,i=i+Math.imul(x,rt)|0,n=n+Math.imul(x,it)|0,n=n+Math.imul(k,rt)|0,o=o+Math.imul(k,it)|0,i=i+Math.imul(S,ot)|0,n=n+Math.imul(S,at)|0,n=n+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,i=i+Math.imul(w,ut)|0,n=n+Math.imul(w,ht)|0,n=n+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,i=i+Math.imul(v,lt)|0,n=n+Math.imul(v,ct)|0,n=n+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,i=i+Math.imul(p,pt)|0,n=n+Math.imul(p,mt)|0,n=n+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var xt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(j,Z),n=Math.imul(j,Y),n=n+Math.imul(D,Z)|0,o=Math.imul(D,Y),i=i+Math.imul(N,G)|0,n=n+Math.imul(N,X)|0,n=n+Math.imul(B,G)|0,o=o+Math.imul(B,X)|0,i=i+Math.imul(O,Q)|0,n=n+Math.imul(O,tt)|0,n=n+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul($,rt)|0,n=n+Math.imul($,it)|0,n=n+Math.imul(T,rt)|0,o=o+Math.imul(T,it)|0,i=i+Math.imul(x,ot)|0,n=n+Math.imul(x,at)|0,n=n+Math.imul(k,ot)|0,o=o+Math.imul(k,at)|0,i=i+Math.imul(S,ut)|0,n=n+Math.imul(S,ht)|0,n=n+Math.imul(E,ut)|0,o=o+Math.imul(E,ht)|0,i=i+Math.imul(w,lt)|0,n=n+Math.imul(w,ct)|0,n=n+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,i=i+Math.imul(v,pt)|0,n=n+Math.imul(v,mt)|0,n=n+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var kt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(j,G),n=Math.imul(j,X),n=n+Math.imul(D,G)|0,o=Math.imul(D,X),i=i+Math.imul(N,Q)|0,n=n+Math.imul(N,tt)|0,n=n+Math.imul(B,Q)|0,o=o+Math.imul(B,tt)|0,i=i+Math.imul(O,rt)|0,n=n+Math.imul(O,it)|0,n=n+Math.imul(C,rt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul($,ot)|0,n=n+Math.imul($,at)|0,n=n+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,i=i+Math.imul(x,ut)|0,n=n+Math.imul(x,ht)|0,n=n+Math.imul(k,ut)|0,o=o+Math.imul(k,ht)|0,i=i+Math.imul(S,lt)|0,n=n+Math.imul(S,ct)|0,n=n+Math.imul(E,lt)|0,o=o+Math.imul(E,ct)|0,i=i+Math.imul(w,pt)|0,n=n+Math.imul(w,mt)|0,n=n+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,i=Math.imul(j,Q),n=Math.imul(j,tt),n=n+Math.imul(D,Q)|0,o=Math.imul(D,tt),i=i+Math.imul(N,rt)|0,n=n+Math.imul(N,it)|0,n=n+Math.imul(B,rt)|0,o=o+Math.imul(B,it)|0,i=i+Math.imul(O,ot)|0,n=n+Math.imul(O,at)|0,n=n+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul($,ut)|0,n=n+Math.imul($,ht)|0,n=n+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,i=i+Math.imul(x,lt)|0,n=n+Math.imul(x,ct)|0,n=n+Math.imul(k,lt)|0,o=o+Math.imul(k,ct)|0,i=i+Math.imul(S,pt)|0,n=n+Math.imul(S,mt)|0,n=n+Math.imul(E,pt)|0,o=o+Math.imul(E,mt)|0;var $t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+($t>>>26)|0,$t&=67108863,i=Math.imul(j,rt),n=Math.imul(j,it),n=n+Math.imul(D,rt)|0,o=Math.imul(D,it),i=i+Math.imul(N,ot)|0,n=n+Math.imul(N,at)|0,n=n+Math.imul(B,ot)|0,o=o+Math.imul(B,at)|0,i=i+Math.imul(O,ut)|0,n=n+Math.imul(O,ht)|0,n=n+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,i=i+Math.imul($,lt)|0,n=n+Math.imul($,ct)|0,n=n+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,i=i+Math.imul(x,pt)|0,n=n+Math.imul(x,mt)|0,n=n+Math.imul(k,pt)|0,o=o+Math.imul(k,mt)|0;var Tt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(j,ot),n=Math.imul(j,at),n=n+Math.imul(D,ot)|0,o=Math.imul(D,at),i=i+Math.imul(N,ut)|0,n=n+Math.imul(N,ht)|0,n=n+Math.imul(B,ut)|0,o=o+Math.imul(B,ht)|0,i=i+Math.imul(O,lt)|0,n=n+Math.imul(O,ct)|0,n=n+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,i=i+Math.imul($,pt)|0,n=n+Math.imul($,mt)|0,n=n+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(j,ut),n=Math.imul(j,ht),n=n+Math.imul(D,ut)|0,o=Math.imul(D,ht),i=i+Math.imul(N,lt)|0,n=n+Math.imul(N,ct)|0,n=n+Math.imul(B,lt)|0,o=o+Math.imul(B,ct)|0,i=i+Math.imul(O,pt)|0,n=n+Math.imul(O,mt)|0,n=n+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(j,lt),n=Math.imul(j,ct),n=n+Math.imul(D,lt)|0,o=Math.imul(D,ct),i=i+Math.imul(N,pt)|0,n=n+Math.imul(N,mt)|0,n=n+Math.imul(B,pt)|0,o=o+Math.imul(B,mt)|0;var Ct=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(j,pt),n=Math.imul(j,mt),n=n+Math.imul(D,pt)|0,o=Math.imul(D,mt);var Lt=(h+i|0)+((8191&n)<<13)|0;return h=(o+(n>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,u[0]=bt,u[1]=vt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=St,u[8]=Et,u[9]=At,u[10]=xt,u[11]=kt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Lt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var i=0,n=0,o=0;o>>26)|0,n+=a>>>26,a&=67108863}r.words[o]=s,i=a,a=n}return 0!==i?r.words[o]=i:r.length--,r.strip()}function b(t,e,r){var i=new v;return i.mulp(t,e,r)}function v(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,i=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):i<63?d(this,t,e):i<1024?m(this,t,e):b(this,t,e),r},v.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,i=0;i>=1;return i},v.prototype.permute=function(t,e,r,i,n,o){for(var a=0;a>>=1)n++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,i=0;i=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=n);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,i=this.clone(),n=t,a=0|n.words[n.length-1],s=this._countBits(a);r=26-s,0!==r&&(n=n.ushln(r),i.iushln(r),a=0|n.words[n.length-1]);var u,h=i.length-n.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|i.words[n.length+c])+(0|i.words[n.length+c-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(n,d,c);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(n,1,c),i.isZero()||(i.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==r&&i.iushrn(r),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),n=t.andln(1),o=r.cmp(i);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(n.isOdd()||a.isOdd())&&(n.iadd(f),a.isub(l)),n.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),n.isub(s),a.isub(u)):(r.isub(e),s.isub(n),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return n=0===e.cmpn(1)?a:s,n.cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var i=0;e.isEven()&&r.isEven();i++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var n=e.cmp(r);if(n<0){var o=e;e=r,r=o}else if(0===n||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var i=0|this.words[r],n=0|t.words[r];if(i!==n){in&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new E(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){E.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var i=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(w,y),w.prototype.split=function(t,e){for(var r=4194303,i=Math.min(t.length,9),n=0;n>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=n,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return g[t]=e,e},E.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},E.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},E.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},E.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},E.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},E.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},E.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},E.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},E.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},E.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},E.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},E.prototype.isqr=function(t){return this.imul(t,t.clone())},E.prototype.sqr=function(t){return this.mul(t,t)},E.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var n=this.m.subn(1),a=0;while(!n.isZero()&&0===n.andln(1))a++,n.iushrn(1);i(!n.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,n),c=this.pow(t,n.addn(1).iushrn(1)),d=this.pow(t,n),p=a;while(0!==d.cmp(s)){for(var m=d,b=0;0!==m.cmp(s);b++)m=m.redSqr();i(b=0;n--){for(var f=e.words[n],l=h-1;l>=0;l--){var c=f>>l&1;a!==i[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===n&&0===l)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}h=26}return a},E.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},E.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},n(A,E),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},"0145":function(t,e){e.encrypt=function(t,e){return t._cipher.encryptBlock(e)},e.decrypt=function(t,e){return t._cipher.decryptBlock(e)}},"0184":function(t,e,r){"use strict";var i=r("da3e");function n(t){this.options=t,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}t.exports=n,n.prototype._init=function(){},n.prototype.update=function(t){return 0===t.length?[]:"decrypt"===this.type?this._updateDecrypt(t):this._updateEncrypt(t)},n.prototype._buffer=function(t,e){for(var r=Math.min(this.buffer.length-this.bufferOff,t.length-e),i=0;i0;i--)e+=this._buffer(t,e),r+=this._flushBuffer(n,r);return e+=this._buffer(t,e),n},n.prototype.final=function(t){var e,r;return t&&(e=this.update(t)),r="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),e?e.concat(r):r},n.prototype._pad=function(t,e){if(0===e)return!1;while(e>>0),null!=t){var e=this.filename,r=e?St("//"+e):"/";if(e=Ae(!0,!0),r=se(r,4095&(void 0!==e?e:438)|32768,0),t){if("string"===typeof t){for(var n=Array(t.length),a=0,s=t.length;ar;++r)n.parameters.push(i["viii"[r]]);r=new WebAssembly.Function(n,t)}else{for(i=[1,0,1,96],n={i:127,j:126,f:125,d:124},i.push(3),r=0;3>r;++r)i.push(n["iii"[r]]);i.push(0),i[1]=i.length-2,r=new Uint8Array([0,97,115,109,1,0,0,0].concat(i,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),r=new WebAssembly.Module(r),r=new WebAssembly.Instance(r,{e:{f:t}}).exports.f}rt.set(e,r)}k.set(t,e),t=e}return t}h.wasmBinary&&(R=h.wasmBinary);h.noExitRuntime;function O(t){var e="i32";switch("*"===e.charAt(e.length-1)&&(e="i32"),e){case"i1":z[t>>0]=0;break;case"i8":z[t>>0]=0;break;case"i16":W[t>>1]=0;break;case"i32":H[t>>2]=0;break;case"i64":ht=[0,(ut=0,1<=+Math.abs(ut)?0>>0:~~+Math.ceil((ut-+(~~ut>>>0))/4294967296)>>>0:0)],H[t>>2]=ht[0],H[t+4>>2]=ht[1];break;case"float":Z[t>>2]=0;break;case"double":Y[t>>3]=0;break;default:pt("invalid type for setValue: "+e)}}function C(t,e){switch(e=e||"i8","*"===e.charAt(e.length-1)&&(e="i32"),e){case"i1":return z[t>>0];case"i8":return z[t>>0];case"i16":return W[t>>1];case"i32":return H[t>>2];case"i64":return H[t>>2];case"float":return Z[t>>2];case"double":return Y[t>>3];default:pt("invalid type for getValue: "+e)}return null}"object"!==("undefined"===typeof WebAssembly?"undefined":u(WebAssembly))&&pt("no native wasm support detected");var L,N=!1;function B(t,e){t||pt("Assertion failed: "+e)}function P(t){var e=h["_"+t];return B(e,"Cannot call unknown function "+t+", make sure it is exported"),e}function j(t,e,r,i){var n={string:function(t){var e=0;if(null!==t&&void 0!==t&&0!==t){var r=1+(t.length<<2);e=Qe(r),J(t,K,e,r)}return e},array:function(t){var e=Qe(t.length);return z.set(t,e),e}},o=P(t),a=[];if(t=0,i)for(var s=0;s=i);)++r;if(16n?i+=String.fromCharCode(n):(n-=65536,i+=String.fromCharCode(55296|n>>10,56320|1023&n))}}else i+=String.fromCharCode(n)}return i}function X(t,e){return t?G(K,t,e):""}function J(t,e,r,i){if(!(0=a){var s=t.charCodeAt(++o);a=65536+((1023&a)<<10)|1023&s}if(127>=a){if(r>=i)break;e[r++]=a}else{if(2047>=a){if(r+1>=i)break;e[r++]=192|a>>6}else{if(65535>=a){if(r+2>=i)break;e[r++]=224|a>>12}else{if(r+3>=i)break;e[r++]=240|a>>18,e[r++]=128|a>>12&63}e[r++]=128|a>>6&63}e[r++]=128|63&a}}return e[r]=0,r-n}function Q(t){for(var e=0,r=0;r=i&&(i=65536+((1023&i)<<10)|1023&t.charCodeAt(++r)),127>=i?++e:e=2047>=i?e+2:65535>=i?e+3:e+4}return e}function tt(t){var e=Q(t)+1,r=We(e);return r&&J(t,z,r,e),r}function et(){var t=L.buffer;F=t,h.HEAP8=z=new Int8Array(t),h.HEAP16=W=new Int16Array(t),h.HEAP32=H=new Int32Array(t),h.HEAPU8=K=new Uint8Array(t),h.HEAPU16=new Uint16Array(t),h.HEAPU32=new Uint32Array(t),h.HEAPF32=Z=new Float32Array(t),h.HEAPF64=Y=new Float64Array(t)}var rt,it=[],nt=[],ot=[];function at(){var t=h.preRun.shift();it.unshift(t)}var st,ut,ht,ft,lt=0,ct=null,dt=null;function pt(t){throw h.onAbort&&h.onAbort(t),x(t),N=!0,new WebAssembly.RuntimeError("abort("+t+"). Build with -s ASSERTIONS=1 for more info.")}function mt(){return st.startsWith("data:application/octet-stream;base64,")}if(h.preloadedImages={},h.preloadedAudios={},st="sql-wasm.wasm",!mt()){var bt=st;st=h.locateFile?h.locateFile(bt,E):E+bt}function vt(){var t=st;try{if(t==st&&R)return new Uint8Array(R);if(M)return M(t);throw"both async and sync fetching of the wasm failed"}catch(e){pt(e)}}function gt(){if(!R&&(m||b)){if("function"===typeof fetch&&!st.startsWith("file://"))return fetch(st,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at '"+st+"'";return t.arrayBuffer()})).catch((function(){return vt()}));if(w)return new Promise((function(t,e){w(st,(function(e){t(new Uint8Array(e))}),e)}))}return Promise.resolve().then((function(){return vt()}))}function yt(t){for(;0>2]=60*o,H[Ve()>>2]=Number(e!=n),r=t(r),i=t(i),r=tt(r),i=tt(i),n>2]=r,H[Ye()+4>>2]=i):(H[Ye()>>2]=i,H[Ye()+4>>2]=r)}}function _t(t,e){for(var r=0,i=t.length-1;0<=i;i--){var n=t[i];"."===n?t.splice(i,1):".."===n?(t.splice(i,1),r++):r&&(t.splice(i,1),r--)}if(e)for(;r;r--)t.unshift("..");return t}function St(t){var e="/"===t.charAt(0),r="/"===t.substr(-1);return(t=_t(t.split("/").filter((function(t){return!!t})),!e).join("/"))||e||(t="."),t&&r&&(t+="/"),(e?"/":"")+t}function Et(t){var e=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(t).slice(1);return t=e[0],e=e[1],t||e?(e&&(e=e.substr(0,e.length-1)),t+e):"."}function At(t){if("/"===t)return"/";t=St(t),t=t.replace(/\/$/,"");var e=t.lastIndexOf("/");return-1===e?t:t.substr(e+1)}function xt(){if("object"===("undefined"===typeof crypto?"undefined":u(crypto))&&"function"===typeof crypto.getRandomValues){var t=new Uint8Array(1);return function(){return crypto.getRandomValues(t),t[0]}}if(v)try{var e=r("1c46");return function(){return e.randomBytes(1)[0]}}catch(i){}return function(){pt("randomDevice")}}function kt(){for(var t="",e=!1,r=arguments.length-1;-1<=r&&!e;r--){if(e=0<=r?arguments[r]:"/","string"!==typeof e)throw new TypeError("Arguments to path.resolve must be strings");if(!e)return"";t=e+"/"+t,e="/"===e.charAt(0)}return t=_t(t.split("/").filter((function(t){return!!t})),!e).join("/"),(e?"/":"")+t||"."}var Rt=[];function $t(t,e){Rt[t]={input:[],output:[],cb:e},oe(t,Tt)}var Tt={open:function(t){var e=Rt[t.node.rdev];if(!e)throw new Ut(43);t.tty=e,t.seekable=!1},close:function(t){t.tty.cb.flush(t.tty)},flush:function(t){t.tty.cb.flush(t.tty)},read:function(t,e,r,i){if(!t.tty||!t.tty.cb.xb)throw new Ut(60);for(var n=0,o=0;o=e||(e=Math.max(e,r*(1048576>r?2:1.125)>>>0),0!=r&&(e=Math.max(e,256)),r=t.Oa,t.Oa=new Uint8Array(e),0=t.node.Sa)return 0;if(t=Math.min(t.node.Sa-n,i),8e)throw new Ut(28);return e},sb:function(t,e,r){Ct.vb(t.node,e+r),t.node.Sa=Math.max(t.node.Sa,e+r)},hb:function(t,e,r,i,n,o){if(0!==e)throw new Ut(28);if(32768!==(61440&t.node.mode))throw new Ut(43);if(t=t.node.Oa,2&o||t.buffer!==F){for((0>>0)%jt.length}function Ht(t){var e=Wt(t.parent.id,t.name);if(jt[e]===t)jt[e]=t.bb;else for(e=jt[e];e;){if(e.bb===t){e.bb=t.bb;break}e=e.bb}}function Zt(t,e){var r;if(r=(r=Jt(t,"x"))?r:t.Ma.lookup?0:2)throw new Ut(r,t);for(r=jt[Wt(t.id,e)];r;r=r.bb){var i=r.name;if(r.parent.id===t.id&&i===e)return r}return t.Ma.lookup(t,e)}function Yt(t,e,r,i){return t=new qe(t,e,r,i),e=Wt(t.parent.id,t.name),t.bb=jt[e],jt[e]=t}function Vt(t){return 16384===(61440&t)}var Gt={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090};function Xt(t){var e=["r","w","rw"][3&t];return 512&t&&(e+="w"),e}function Jt(t,e){return Dt?0:!e.includes("r")||292&t.mode?e.includes("w")&&!(146&t.mode)||e.includes("x")&&!(73&t.mode)?2:0:2}function Qt(t,e){try{return Zt(t,e),20}catch(r){}return Jt(t,"wx")}function te(t,e,r){try{var i=Zt(t,e)}catch(n){return n.Pa}if(t=Jt(t,"wx"))return t;if(r){if(!Vt(i.mode))return 54;if(i===i.parent||"/"===Kt(i))return 10}else if(Vt(i.mode))return 31;return 0}function ee(t){var e=4096;for(t=t||0;t<=e;t++)if(!Bt[t])return t;throw new Ut(33)}function re(t,e){Re||(Re=function(){},Re.prototype={});var r,i=new Re;for(r in t)i[r]=t[r];return t=i,e=ee(e),t.fd=e,Bt[e]=t}var ie,ne={open:function(t){t.Na=Nt[t.node.rdev].Na,t.Na.open&&t.Na.open(t)},Za:function(){throw new Ut(70)}};function oe(t,e){Nt[t]={Na:e}}function ae(t,e){var r="/"===e,i=!e;if(r&&Lt)throw new Ut(10);if(!r&&!i){var n=zt(e,{wb:!1});if(e=n.path,n=n.node,n.ab)throw new Ut(10);if(!Vt(n.mode))throw new Ut(54)}e={type:t,Tb:{},yb:e,Lb:[]},t=t.Wa(e),t.Wa=e,e.root=t,r?Lt=t:n&&(n.ab=e,n.Wa&&n.Wa.Lb.push(e))}function se(t,e,r){var i=zt(t,{parent:!0}).node;if(t=At(t),!t||"."===t||".."===t)throw new Ut(28);var n=Qt(i,t);if(n)throw new Ut(n);if(!i.Ma.gb)throw new Ut(63);return i.Ma.gb(i,t,e,r)}function ue(t,e){return se(t,1023&(void 0!==e?e:511)|16384,0)}function he(t,e,r){"undefined"===typeof r&&(r=e,e=438),se(t,8192|e,r)}function fe(t,e){if(!kt(t))throw new Ut(44);var r=zt(e,{parent:!0}).node;if(!r)throw new Ut(44);e=At(e);var i=Qt(r,e);if(i)throw new Ut(i);if(!r.Ma.symlink)throw new Ut(63);r.Ma.symlink(r,e,t)}function le(t){var e=zt(t,{parent:!0}).node,r=At(t),i=Zt(e,r),n=te(e,r,!1);if(n)throw new Ut(n);if(!e.Ma.unlink)throw new Ut(63);if(i.ab)throw new Ut(10);try{qt.willDeletePath&&qt.willDeletePath(t)}catch(o){x("FS.trackingDelegate['willDeletePath']('"+t+"') threw an exception: "+o.message)}e.Ma.unlink(e,r),Ht(i);try{qt.onDeletePath&&qt.onDeletePath(t)}catch(o){x("FS.trackingDelegate['onDeletePath']('"+t+"') threw an exception: "+o.message)}}function ce(t){if(t=zt(t).node,!t)throw new Ut(44);if(!t.Ma.readlink)throw new Ut(28);return kt(Kt(t.parent),t.Ma.readlink(t))}function de(t,e){if(t=zt(t,{Ya:!e}).node,!t)throw new Ut(44);if(!t.Ma.Ua)throw new Ut(63);return t.Ma.Ua(t)}function pe(t){return de(t,!0)}function me(t,e){if(t="string"===typeof t?zt(t,{Ya:!0}).node:t,!t.Ma.Ta)throw new Ut(63);t.Ma.Ta(t,{mode:4095&e|-4096&t.mode,timestamp:Date.now()})}function be(t){if(t="string"===typeof t?zt(t,{Ya:!0}).node:t,!t.Ma.Ta)throw new Ut(63);t.Ma.Ta(t,{timestamp:Date.now()})}function ve(t,e){if(0>e)throw new Ut(28);if(t="string"===typeof t?zt(t,{Ya:!0}).node:t,!t.Ma.Ta)throw new Ut(63);if(Vt(t.mode))throw new Ut(31);if(32768!==(61440&t.mode))throw new Ut(28);var r=Jt(t,"w");if(r)throw new Ut(r);t.Ma.Ta(t,{size:e,timestamp:Date.now()})}function ge(t,e,r,i){if(""===t)throw new Ut(44);if("string"===typeof e){var n=Gt[e];if("undefined"===typeof n)throw Error("Unknown file open mode: "+e);e=n}if(r=64&e?4095&("undefined"===typeof r?438:r)|32768:0,"object"===u(t))var o=t;else{t=St(t);try{o=zt(t,{Ya:!(131072&e)}).node}catch(a){}}if(n=!1,64&e)if(o){if(128&e)throw new Ut(20)}else o=se(t,r,0),n=!0;if(!o)throw new Ut(44);if(8192===(61440&o.mode)&&(e&=-513),65536&e&&!Vt(o.mode))throw new Ut(54);if(!n&&(r=o?40960===(61440&o.mode)?32:Vt(o.mode)&&("r"!==Xt(e)||512&e)?31:Jt(o,Xt(e)):44))throw new Ut(r);512&e&&ve(o,0),e&=-131713,i=re({node:o,path:Kt(o),flags:e,seekable:!0,position:0,Na:o.Na,Qb:[],error:!1},i),i.Na.open&&i.Na.open(i),!h.logReadFiles||1&e||($e||($e={}),t in $e||($e[t]=1,x("FS.trackingDelegate error on read file: "+t)));try{qt.onOpenFile&&(o=0,1!==(2097155&e)&&(o|=1),0!==(2097155&e)&&(o|=2),qt.onOpenFile(t,o))}catch(a){x("FS.trackingDelegate['onOpenFile']('"+t+"', flags) threw an exception: "+a.message)}return i}function ye(t){if(null===t.fd)throw new Ut(8);t.ob&&(t.ob=null);try{t.Na.close&&t.Na.close(t)}catch(e){throw e}finally{Bt[t.fd]=null}t.fd=null}function we(t,e,r){if(null===t.fd)throw new Ut(8);if(!t.seekable||!t.Na.Za)throw new Ut(70);if(0!=r&&1!=r&&2!=r)throw new Ut(28);t.position=t.Na.Za(t,e,r),t.Qb=[]}function Me(t,e,r,i,n){if(0>i||0>n)throw new Ut(28);if(null===t.fd)throw new Ut(8);if(1===(2097155&t.flags))throw new Ut(8);if(Vt(t.node.mode))throw new Ut(31);if(!t.Na.read)throw new Ut(28);var o="undefined"!==typeof n;if(o){if(!t.seekable)throw new Ut(70)}else n=t.position;return e=t.Na.read(t,e,r,i,n),o||(t.position+=e),e}function _e(t,e,r,i,n,o){if(0>i||0>n)throw new Ut(28);if(null===t.fd)throw new Ut(8);if(0===(2097155&t.flags))throw new Ut(8);if(Vt(t.node.mode))throw new Ut(31);if(!t.Na.write)throw new Ut(28);t.seekable&&1024&t.flags&&we(t,0,2);var a="undefined"!==typeof n;if(a){if(!t.seekable)throw new Ut(70)}else n=t.position;e=t.Na.write(t,e,r,i,n,o),a||(t.position+=e);try{t.path&&qt.onWriteToFile&&qt.onWriteToFile(t.path)}catch(s){x("FS.trackingDelegate['onWriteToFile']('"+t.path+"') threw an exception: "+s.message)}return e}function Se(t){var e={encoding:"binary"};if(e=e||{},e.flags=e.flags||0,e.encoding=e.encoding||"binary","utf8"!==e.encoding&&"binary"!==e.encoding)throw Error('Invalid encoding type "'+e.encoding+'"');var r,i=ge(t,e.flags);t=de(t).size;var n=new Uint8Array(t);return Me(i,n,0,t,0),"utf8"===e.encoding?r=G(n,0):"binary"===e.encoding&&(r=n),ye(i),r}function Ee(){Ut||(Ut=function(t,e){this.node=e,this.Pb=function(t){this.Pa=t},this.Pb(t),this.message="FS error"},Ut.prototype=Error(),Ut.prototype.constructor=Ut,[44].forEach((function(t){Ft[t]=new Ut(t),Ft[t].stack=""})))}function Ae(t,e){var r=0;return t&&(r|=365),e&&(r|=146),r}function xe(t,e,r){t=St("/dev/"+t);var i=Ae(!!e,!!r);ke||(ke=64);var n=ke++<<8|0;oe(n,{open:function(t){t.seekable=!1},close:function(){r&&r.buffer&&r.buffer.length&&r(10)},read:function(t,r,i,n){for(var o=0,a=0;a>2]=i.dev,H[r+4>>2]=0,H[r+8>>2]=i.ino,H[r+12>>2]=i.mode,H[r+16>>2]=i.nlink,H[r+20>>2]=i.uid,H[r+24>>2]=i.gid,H[r+28>>2]=i.rdev,H[r+32>>2]=0,ht=[i.size>>>0,(ut=i.size,1<=+Math.abs(ut)?0>>0:~~+Math.ceil((ut-+(~~ut>>>0))/4294967296)>>>0:0)],H[r+40>>2]=ht[0],H[r+44>>2]=ht[1],H[r+48>>2]=4096,H[r+52>>2]=i.blocks,H[r+56>>2]=i.atime.getTime()/1e3|0,H[r+60>>2]=0,H[r+64>>2]=i.mtime.getTime()/1e3|0,H[r+68>>2]=0,H[r+72>>2]=i.ctime.getTime()/1e3|0,H[r+76>>2]=0,ht=[i.ino>>>0,(ut=i.ino,1<=+Math.abs(ut)?0>>0:~~+Math.ceil((ut-+(~~ut>>>0))/4294967296)>>>0:0)],H[r+80>>2]=ht[0],H[r+84>>2]=ht[1],0}var Ce,Le=void 0;function Ne(){return Le+=4,H[Le-4>>2]}function Be(t){if(t=Bt[t],!t)throw new Ut(8);return t}Ce=v?function(){var t=i.hrtime();return 1e3*t[0]+t[1]/1e6}:"undefined"!==typeof dateNow?dateNow:function(){return performance.now()};var Pe,je={};function De(){if(!Pe){var t,e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===("undefined"===typeof navigator?"undefined":u(navigator))&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:p||"./this.program"};for(t in je)void 0===je[t]?delete e[t]:e[t]=je[t];var r=[];for(t in e)r.push(t+"="+e[t]);Pe=r}return Pe}function qe(t,e,r,i){t||(t=this),this.parent=t,this.Wa=t.Wa,this.ab=null,this.id=Pt++,this.name=e,this.mode=r,this.Ma={},this.Na={},this.rdev=i}function Ue(t,e){var r=Array(Q(t)+1);return t=J(t,r,0,r.length),e&&(r.length=t),r}Object.defineProperties(qe.prototype,{read:{get:function(){return 365===(365&this.mode)},set:function(t){t?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(146&this.mode)},set:function(t){t?this.mode|=146:this.mode&=-147}}}),Ee(),jt=Array(4096),ae(Ct,"/"),ue("/tmp"),ue("/home"),ue("/home/web_user"),function(){ue("/dev"),oe(259,{read:function(){return 0},write:function(t,e,r,i){return i}}),he("/dev/null",259),$t(1280,It),$t(1536,Ot),he("/dev/tty",1280),he("/dev/tty1",1536);var t=xt();xe("random",t),xe("urandom",t),ue("/dev/shm"),ue("/dev/shm/tmp")}(),function(){ue("/proc");var t=ue("/proc/self");ue("/proc/self/fd"),ae({Wa:function(){var e=Yt(t,"fd",16895,73);return e.Ma={lookup:function(t,e){var r=Bt[+e];if(!r)throw new Ut(8);return t={parent:null,Wa:{yb:"fake"},Ma:{readlink:function(){return r.path}}},t.parent=t}},e}},"/proc/self/fd")}();var Fe={a:function(t,e,r,i){pt("Assertion failed: "+X(t)+", at: "+[e?X(e):"unknown filename",r,i?X(i):"unknown function"])},s:function(t,e){Mt(),t=new Date(1e3*H[t>>2]),H[e>>2]=t.getSeconds(),H[e+4>>2]=t.getMinutes(),H[e+8>>2]=t.getHours(),H[e+12>>2]=t.getDate(),H[e+16>>2]=t.getMonth(),H[e+20>>2]=t.getFullYear()-1900,H[e+24>>2]=t.getDay();var r=new Date(t.getFullYear(),0,1);H[e+28>>2]=(t.getTime()-r.getTime())/864e5|0,H[e+36>>2]=-60*t.getTimezoneOffset();var i=new Date(t.getFullYear(),6,1).getTimezoneOffset();return r=r.getTimezoneOffset(),t=0|(i!=r&&t.getTimezoneOffset()==Math.min(r,i)),H[e+32>>2]=t,t=H[Ye()+(t?4:0)>>2],H[e+40>>2]=t,e},F:function(t,e){try{var r;if(t=X(t),-8&e)var i=-28;else(r=zt(t,{Ya:!0}).node)?(t="",4&e&&(t+="r"),2&e&&(t+="w"),1&e&&(t+="x"),i=t&&Jt(r,t)?-2:0):i=-44;return i}catch(n){return"undefined"!==typeof Te&&n instanceof Ut||pt(n),-n.Pa}},h:function(t,e){try{return t=X(t),me(t,e),0}catch(r){return"undefined"!==typeof Te&&r instanceof Ut||pt(r),-r.Pa}},y:function(t){try{return t=X(t),be(t),0}catch(e){return"undefined"!==typeof Te&&e instanceof Ut||pt(e),-e.Pa}},i:function(t,e){try{var r=Bt[t];if(!r)throw new Ut(8);return me(r.node,e),0}catch(i){return"undefined"!==typeof Te&&i instanceof Ut||pt(i),-i.Pa}},z:function(t){try{var e=Bt[t];if(!e)throw new Ut(8);return be(e.node),0}catch(r){return"undefined"!==typeof Te&&r instanceof Ut||pt(r),-r.Pa}},b:function(t,e,r){Le=r;try{var i=Be(t);switch(e){case 0:var n=Ne();return 0>n?-28:ge(i.path,i.flags,0,n).fd;case 1:case 2:return 0;case 3:return i.flags;case 4:return n=Ne(),i.flags|=n,0;case 12:return n=Ne(),W[n+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return H[Ke()>>2]=28,-1;default:return-28}}catch(o){return"undefined"!==typeof Te&&o instanceof Ut||pt(o),-o.Pa}},j:function(t,e){try{var r=Be(t);return Oe(de,r.path,e)}catch(i){return"undefined"!==typeof Te&&i instanceof Ut||pt(i),-i.Pa}},E:function(t,e,r){try{var i=Bt[t];if(!i)throw new Ut(8);if(0===(2097155&i.flags))throw new Ut(28);return ve(i.node,r),0}catch(n){return"undefined"!==typeof Te&&n instanceof Ut||pt(n),-n.Pa}},C:function(t,e){try{return 0===e?-28:e=r)var i=-28;else{var n=ce(t),o=Math.min(r,Q(n)),a=z[e+o];J(n,K,e,r+1),z[e+o]=a,i=o}return i}catch(s){return"undefined"!==typeof Te&&s instanceof Ut||pt(s),-s.Pa}},u:function(t){try{t=X(t);var e=zt(t,{parent:!0}).node,r=At(t),i=Zt(e,r),n=te(e,r,!0);if(n)throw new Ut(n);if(!e.Ma.rmdir)throw new Ut(63);if(i.ab)throw new Ut(10);try{qt.willDeletePath&&qt.willDeletePath(t)}catch(o){x("FS.trackingDelegate['willDeletePath']('"+t+"') threw an exception: "+o.message)}e.Ma.rmdir(e,r),Ht(i);try{qt.onDeletePath&&qt.onDeletePath(t)}catch(o){x("FS.trackingDelegate['onDeletePath']('"+t+"') threw an exception: "+o.message)}return 0}catch(o){return"undefined"!==typeof Te&&o instanceof Ut||pt(o),-o.Pa}},e:function(t,e){try{return t=X(t),Oe(de,t,e)}catch(r){return"undefined"!==typeof Te&&r instanceof Ut||pt(r),-r.Pa}},w:function(t){try{return t=X(t),le(t),0}catch(e){return"undefined"!==typeof Te&&e instanceof Ut||pt(e),-e.Pa}},l:function(){return 2147483648},n:function(t,e,r){K.copyWithin(t,e,e+r)},c:function(t){var e=K.length;if(t>>>=0,2147483648=r;r*=2){var i=e*(1+.2/r);i=Math.min(i,t+100663296),i=Math.max(t,i),0>>16),et();var n=1;break t}catch(o){}n=void 0}if(n)return!0}return!1},r:function(t){for(var e=Ce();Ce()-e>2]=o,o=0;o>0]=i.charCodeAt(o);z[n>>0]=0,r+=i.length+1})),0}catch(i){return"undefined"!==typeof Te&&i instanceof Ut||pt(i),i.Pa}},q:function(t,e){try{var r=De();H[t>>2]=r.length;var i=0;return r.forEach((function(t){i+=t.length+1})),H[e>>2]=i,0}catch(n){return"undefined"!==typeof Te&&n instanceof Ut||pt(n),n.Pa}},f:function(t){try{var e=Be(t);return ye(e),0}catch(r){return"undefined"!==typeof Te&&r instanceof Ut||pt(r),r.Pa}},o:function(t,e){try{var r=Be(t);return z[e>>0]=r.tty?2:Vt(r.mode)?3:40960===(61440&r.mode)?7:4,0}catch(i){return"undefined"!==typeof Te&&i instanceof Ut||pt(i),i.Pa}},t:function(t,e,r,i){try{t:{for(var n=Be(t),o=t=0;o>2],s=Me(n,z,H[e+8*o>>2],a,void 0);if(0>s){var u=-1;break t}if(t+=s,s>2]=u,0}catch(h){return"undefined"!==typeof Te&&h instanceof Ut||pt(h),h.Pa}},m:function t(e,r,i,n,o){try{var a=Be(e);return e=4294967296*i+(r>>>0),-9007199254740992>=e||9007199254740992<=e?-61:(we(a,e,n),ht=[a.position>>>0,(ut=a.position,1<=+Math.abs(ut)?0>>0:~~+Math.ceil((ut-+(~~ut>>>0))/4294967296)>>>0:0)],H[o>>2]=ht[0],H[o+4>>2]=ht[1],a.ob&&0===e&&0===n&&(a.ob=null),0)}catch(t){return"undefined"!==typeof Te&&t instanceof Ut||pt(t),t.Pa}},D:function(t){try{var e=Be(t);return e.Na&&e.Na.fsync?-e.Na.fsync(e):0}catch(r){return"undefined"!==typeof Te&&r instanceof Ut||pt(r),r.Pa}},v:function(t,e,r,i){try{t:{for(var n=Be(t),o=t=0;o>2],H[e+(8*o+4)>>2],void 0);if(0>a){var s=-1;break t}t+=a}s=t}return H[i>>2]=s,0}catch(u){return"undefined"!==typeof Te&&u instanceof Ut||pt(u),u.Pa}},g:function(t){var e=Date.now();return H[t>>2]=e/1e3|0,H[t+4>>2]=e%1e3*1e3|0,0},K:function(t){var e=Date.now()/1e3|0;return t&&(H[t>>2]=e),e},B:function(t,e){if(e){var r=e+8;e=1e3*H[r>>2],e+=H[r+4>>2]/1e3}else e=Date.now();t=X(t);try{var i=zt(t,{Ya:!0}).node;i.Ma.Ta(i,{timestamp:Math.max(e,e)});var n=0}catch(o){if(!(o instanceof Ut)){t:{if(n=Error(),!n.stack){try{throw Error()}catch(a){n=a}if(!n.stack){n="(no stack trace available)";break t}}n=n.stack.toString()}throw h.extraStackTrace&&(n+="\n"+h.extraStackTrace()),n=wt(n),o+" : "+n}n=o.Pa,H[Ke()>>2]=n,n=-1}return n}};(function(){function t(t){h.asm=t.exports,L=h.asm.L,et(),rt=h.asm.Da,nt.unshift(h.asm.M),lt--,h.monitorRunDependencies&&h.monitorRunDependencies(lt),0==lt&&(null!==ct&&(clearInterval(ct),ct=null),dt&&(t=dt,dt=null,t()))}function e(e){t(e.instance)}function r(t){return gt().then((function(t){return WebAssembly.instantiate(t,i)})).then(t,(function(t){x("failed to asynchronously prepare wasm: "+t),pt(t)}))}var i={a:Fe};if(lt++,h.monitorRunDependencies&&h.monitorRunDependencies(lt),h.instantiateWasm)try{return h.instantiateWasm(i,t)}catch(n){return x("Module.instantiateWasm callback failed with error: "+n),!1}(function(){R||"function"!==typeof WebAssembly.instantiateStreaming||mt()||st.startsWith("file://")||"function"!==typeof fetch?r(e):fetch(st,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,i).then(e,(function(t){return x("wasm streaming compile failed: "+t),x("falling back to ArrayBuffer instantiation"),r(e)}))}))})()})(),h.___wasm_call_ctors=function(){return(h.___wasm_call_ctors=h.asm.M).apply(null,arguments)};var ze=h._memset=function(){return(ze=h._memset=h.asm.N).apply(null,arguments)};h._sqlite3_free=function(){return(h._sqlite3_free=h.asm.O).apply(null,arguments)};var Ke=h.___errno_location=function(){return(Ke=h.___errno_location=h.asm.P).apply(null,arguments)};h._sqlite3_step=function(){return(h._sqlite3_step=h.asm.Q).apply(null,arguments)},h._sqlite3_finalize=function(){return(h._sqlite3_finalize=h.asm.R).apply(null,arguments)},h._sqlite3_prepare_v2=function(){return(h._sqlite3_prepare_v2=h.asm.S).apply(null,arguments)},h._sqlite3_reset=function(){return(h._sqlite3_reset=h.asm.T).apply(null,arguments)},h._sqlite3_clear_bindings=function(){return(h._sqlite3_clear_bindings=h.asm.U).apply(null,arguments)},h._sqlite3_value_blob=function(){return(h._sqlite3_value_blob=h.asm.V).apply(null,arguments)},h._sqlite3_value_text=function(){return(h._sqlite3_value_text=h.asm.W).apply(null,arguments)},h._sqlite3_value_bytes=function(){return(h._sqlite3_value_bytes=h.asm.X).apply(null,arguments)},h._sqlite3_value_double=function(){return(h._sqlite3_value_double=h.asm.Y).apply(null,arguments)},h._sqlite3_value_int=function(){return(h._sqlite3_value_int=h.asm.Z).apply(null,arguments)},h._sqlite3_value_type=function(){return(h._sqlite3_value_type=h.asm._).apply(null,arguments)},h._sqlite3_result_blob=function(){return(h._sqlite3_result_blob=h.asm.$).apply(null,arguments)},h._sqlite3_result_double=function(){return(h._sqlite3_result_double=h.asm.aa).apply(null,arguments)},h._sqlite3_result_error=function(){return(h._sqlite3_result_error=h.asm.ba).apply(null,arguments)},h._sqlite3_result_int=function(){return(h._sqlite3_result_int=h.asm.ca).apply(null,arguments)},h._sqlite3_result_int64=function(){return(h._sqlite3_result_int64=h.asm.da).apply(null,arguments)},h._sqlite3_result_null=function(){return(h._sqlite3_result_null=h.asm.ea).apply(null,arguments)},h._sqlite3_result_text=function(){return(h._sqlite3_result_text=h.asm.fa).apply(null,arguments)},h._sqlite3_column_count=function(){return(h._sqlite3_column_count=h.asm.ga).apply(null,arguments)},h._sqlite3_data_count=function(){return(h._sqlite3_data_count=h.asm.ha).apply(null,arguments)},h._sqlite3_column_blob=function(){return(h._sqlite3_column_blob=h.asm.ia).apply(null,arguments)},h._sqlite3_column_bytes=function(){return(h._sqlite3_column_bytes=h.asm.ja).apply(null,arguments)},h._sqlite3_column_double=function(){return(h._sqlite3_column_double=h.asm.ka).apply(null,arguments)},h._sqlite3_column_text=function(){return(h._sqlite3_column_text=h.asm.la).apply(null,arguments)},h._sqlite3_column_type=function(){return(h._sqlite3_column_type=h.asm.ma).apply(null,arguments)},h._sqlite3_column_name=function(){return(h._sqlite3_column_name=h.asm.na).apply(null,arguments)},h._sqlite3_bind_blob=function(){return(h._sqlite3_bind_blob=h.asm.oa).apply(null,arguments)},h._sqlite3_bind_double=function(){return(h._sqlite3_bind_double=h.asm.pa).apply(null,arguments)},h._sqlite3_bind_int=function(){return(h._sqlite3_bind_int=h.asm.qa).apply(null,arguments)},h._sqlite3_bind_text=function(){return(h._sqlite3_bind_text=h.asm.ra).apply(null,arguments)},h._sqlite3_bind_parameter_index=function(){return(h._sqlite3_bind_parameter_index=h.asm.sa).apply(null,arguments)},h._sqlite3_sql=function(){return(h._sqlite3_sql=h.asm.ta).apply(null,arguments)},h._sqlite3_normalized_sql=function(){return(h._sqlite3_normalized_sql=h.asm.ua).apply(null,arguments)},h._sqlite3_errmsg=function(){return(h._sqlite3_errmsg=h.asm.va).apply(null,arguments)},h._sqlite3_exec=function(){return(h._sqlite3_exec=h.asm.wa).apply(null,arguments)},h._sqlite3_changes=function(){return(h._sqlite3_changes=h.asm.xa).apply(null,arguments)},h._sqlite3_close_v2=function(){return(h._sqlite3_close_v2=h.asm.ya).apply(null,arguments)},h._sqlite3_create_function_v2=function(){return(h._sqlite3_create_function_v2=h.asm.za).apply(null,arguments)},h._sqlite3_open=function(){return(h._sqlite3_open=h.asm.Aa).apply(null,arguments)};var We=h._malloc=function(){return(We=h._malloc=h.asm.Ba).apply(null,arguments)},He=h._free=function(){return(He=h._free=h.asm.Ca).apply(null,arguments)};h._RegisterExtensionFunctions=function(){return(h._RegisterExtensionFunctions=h.asm.Ea).apply(null,arguments)};var Ze,Ye=h.__get_tzname=function(){return(Ye=h.__get_tzname=h.asm.Fa).apply(null,arguments)},Ve=h.__get_daylight=function(){return(Ve=h.__get_daylight=h.asm.Ga).apply(null,arguments)},Ge=h.__get_timezone=function(){return(Ge=h.__get_timezone=h.asm.Ha).apply(null,arguments)},Xe=h.stackSave=function(){return(Xe=h.stackSave=h.asm.Ia).apply(null,arguments)},Je=h.stackRestore=function(){return(Je=h.stackRestore=h.asm.Ja).apply(null,arguments)},Qe=h.stackAlloc=function(){return(Qe=h.stackAlloc=h.asm.Ka).apply(null,arguments)},tr=h._memalign=function(){return(tr=h._memalign=h.asm.La).apply(null,arguments)};function er(){function t(){if(!Ze&&(Ze=!0,h.calledRun=!0,!N)){if(h.noFSInit||ie||(ie=!0,Ee(),h.stdin=h.stdin,h.stdout=h.stdout,h.stderr=h.stderr,h.stdin?xe("stdin",h.stdin):fe("/dev/tty","/dev/stdin"),h.stdout?xe("stdout",null,h.stdout):fe("/dev/tty","/dev/stdout"),h.stderr?xe("stderr",null,h.stderr):fe("/dev/tty1","/dev/stderr"),ge("/dev/stdin",0),ge("/dev/stdout",1),ge("/dev/stderr",1)),Dt=!1,yt(nt),h.onRuntimeInitialized&&h.onRuntimeInitialized(),h.postRun)for("function"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;){var t=h.postRun.shift();ot.unshift(t)}yt(ot)}}if(!(0 */ -var i=r("b639"),n=i.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t,e,r){return n(t,e,r)}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=i:(o(i,e),e.Buffer=a),a.prototype=Object.create(n.prototype),o(n,a),a.from=function(t,e,r){if("number"===typeof t)throw new TypeError("Argument must not be a number");return n(t,e,r)},a.alloc=function(t,e,r){if("number"!==typeof t)throw new TypeError("Argument must be a number");var i=n(t);return void 0!==e?"string"===typeof r?i.fill(e,r):i.fill(e):i.fill(0),i},a.allocUnsafe=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return n(t)},a.allocUnsafeSlow=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return i.SlowBuffer(t)}},"06cf":function(t,e,r){var i=r("83ab"),n=r("d1e7"),o=r("5c6c"),a=r("fc6a"),s=r("c04e"),u=r("5135"),h=r("0cfb"),f=Object.getOwnPropertyDescriptor;e.f=i?f:function(t,e){if(t=a(t),e=s(e,!0),h)try{return f(t,e)}catch(r){}if(u(t,e))return o(!n.f.call(t,e),t[e])}},"0706":function(module,exports){var indexOf=function(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0;r>>27}function f(t){return t<<30|t>>>2}function l(t,e,r,i){return 0===t?e&r|~e&i:2===t?e&r|e&i|r&i:e^r^i}i(u,n),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._a,i=0|this._b,n=0|this._c,o=0|this._d,s=0|this._e,u=0;u<16;++u)e[u]=t.readInt32BE(4*u);for(;u<80;++u)e[u]=e[u-3]^e[u-8]^e[u-14]^e[u-16];for(var c=0;c<80;++c){var d=~~(c/20),p=h(r)+l(d,i,n,o)+s+e[c]+a[d]|0;s=o,o=n,n=f(i),i=r,r=p}this._a=r+this._a|0,this._b=i+this._b|0,this._c=n+this._c|0,this._d=o+this._d|0,this._e=s+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},"0960":function(t,e,r){t.exports=r("b19a")},"09dc":function(t,e,r){"use strict";t.exports=f;var i=r("9d8a").codes,n=i.ERR_METHOD_NOT_IMPLEMENTED,o=i.ERR_MULTIPLE_CALLBACK,a=i.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=i.ERR_TRANSFORM_WITH_LENGTH_0,u=r("e666");function h(t,e){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(null===i)return this.emit("error",new o);r.writechunk=null,r.writecb=null,null!=e&&this.push(e),i(t);var n=this._readableState;n.reading=!1,(n.needReadable||n.length=e.length){o++;break}var a=e.slice(2,n-1);if(("0002"!==i.toString("hex")&&!r||"0001"!==i.toString("hex")&&r)&&o++,a.length<8&&o++,o)throw new Error("decryption error");return e.slice(n)}function d(t,e){t=f.from(t),e=f.from(e);var r=0,i=t.length;t.length!==e.length&&(r++,i=Math.min(t.length,e.length));var n=-1;while(++nd||new a(e).cmp(u.modulus)>=0)throw new Error("decryption error");o=r?h(new a(e),u):s(e,u);var p=f.alloc(d-o.length);if(o=f.concat([p,o],d),4===n)return l(u,o);if(1===n)return c(u,o,r);if(3===n)return o;throw new Error("unknown padding")}},1:function(t,e){},10:function(t,e){},"10d1":function(t,e,r){"use strict";var i,n=r("da84"),o=r("e2cc"),a=r("f183"),s=r("6d61"),u=r("acac"),h=r("861d"),f=r("69f3").enforce,l=r("7f9a"),c=!n.ActiveXObject&&"ActiveXObject"in n,d=Object.isExtensible,p=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},m=t.exports=s("WeakMap",p,u);if(l&&c){i=u.getConstructor(p,"WeakMap",!0),a.REQUIRED=!0;var b=m.prototype,v=b["delete"],g=b.has,y=b.get,w=b.set;o(b,{delete:function(t){if(h(t)&&!d(t)){var e=f(this);return e.frozen||(e.frozen=new i),v.call(this,t)||e.frozen["delete"](t)}return v.call(this,t)},has:function(t){if(h(t)&&!d(t)){var e=f(this);return e.frozen||(e.frozen=new i),g.call(this,t)||e.frozen.has(t)}return g.call(this,t)},get:function(t){if(h(t)&&!d(t)){var e=f(this);return e.frozen||(e.frozen=new i),g.call(this,t)?y.call(this,t):e.frozen.get(t)}return y.call(this,t)},set:function(t,e){if(h(t)&&!d(t)){var r=f(this);r.frozen||(r.frozen=new i),g.call(this,t)?w.call(this,t,e):r.frozen.set(t,e)}else w.call(this,t,e);return this}})}},11:function(t,e){},"116d":function(t,e,r){t.exports=r("b4e8")},"11dc":function(t,e,r){"use strict";(function(e,i){var n=65536,o=4294967295;function a(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}var s=r("8707").Buffer,u=e.crypto||e.msCrypto;function h(t,e){if(t>o)throw new RangeError("requested too many random bytes");var r=s.allocUnsafe(t);if(t>0)if(t>n)for(var a=0;a1||"".split(/.?/).length?function(t,r){var i=String(a(this)),o=void 0===r?m:r>>>0;if(0===o)return[];if(void 0===t)return[i];if(!n(t))return e.call(i,t,o);var s,u,h,f=[],c=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),p=0,b=new RegExp(t.source,c+"g");while(s=l.call(b,i)){if(u=b.lastIndex,u>p&&(f.push(i.slice(p,s.index)),s.length>1&&s.index=o))break;b.lastIndex===s.index&&b.lastIndex++}return p===i.length?!h&&b.test("")||f.push(""):f.push(i.slice(p)),f.length>o?f.slice(0,o):f}:"0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:e.call(this,t,r)}:e,[function(e,r){var n=a(this),o=void 0==e?void 0:e[t];return void 0!==o?o.call(e,n,r):i.call(String(n),e,r)},function(t,n){var a=r(i,t,this,n,i!==e);if(a.done)return a.value;var l=o(t),c=String(this),d=s(l,RegExp),v=l.unicode,g=(l.ignoreCase?"i":"")+(l.multiline?"m":"")+(l.unicode?"u":"")+(b?"y":"g"),y=new d(b?l:"^(?:"+l.source+")",g),w=void 0===n?m:n>>>0;if(0===w)return[];if(0===c.length)return null===f(y,c)?[c]:[];var M=0,_=0,S=[];while(_2?arguments[2]:void 0,l=a((void 0===f?s:n(f,s))-h,s-u),c=1;h0)h in r?r[u]=r[h]:delete r[u],u+=c,h+=c;return r}},"14c3":function(t,e,r){var i=r("c6b6"),n=r("9263");t.exports=function(t,e){var r=t.exec;if("function"===typeof r){var o=r.call(t,e);if("object"!==typeof o)throw TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==i(t))throw TypeError("RegExp#exec called on incompatible receiver");return n.call(t,e)}},1545:function(t,e,r){"use strict";e.utils=r("5ee7"),e.Cipher=r("0184"),e.DES=r("4e2b"),e.CBC=r("0da4"),e.EDE=r("1fec")},"159b":function(t,e,r){var i=r("da84"),n=r("fdbc"),o=r("17c2"),a=r("9112");for(var s in n){var u=i[s],h=u&&u.prototype;if(h&&h.forEach!==o)try{a(h,"forEach",o)}catch(f){h.forEach=o}}},"170b":function(t,e,r){"use strict";var i=r("ebb5"),n=r("50c4"),o=r("23cb"),a=r("4840"),s=i.aTypedArray,u=i.exportTypedArrayMethod;u("subarray",(function(t,e){var r=s(this),i=r.length,u=o(t,i);return new(a(r,r.constructor))(r.buffer,r.byteOffset+u*r.BYTES_PER_ELEMENT,n((void 0===e?i:o(e,i))-u))}))},"17c2":function(t,e,r){"use strict";var i=r("b727").forEach,n=r("a640"),o=r("ae40"),a=n("forEach"),s=o("forEach");t.exports=a&&s?[].forEach:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}},"182d":function(t,e,r){var i=r("f8cd");t.exports=function(t,e){var r=i(t);if(r%e)throw RangeError("Wrong offset");return r}},"19aa":function(t,e){t.exports=function(t,e,r){if(!(t instanceof e))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return t}},"19ea":function(t,e,r){"use strict";(function(e,i){function n(t){var e=this;this.next=null,this.entry=null,this.finish=function(){W(e,t)}}var o;t.exports=R,R.WritableState=k;var a={deprecate:r("b7d1")},s=r("5bbb"),u=r("b639").Buffer,h=e.Uint8Array||function(){};function f(t){return u.from(t)}function l(t){return u.isBuffer(t)||t instanceof h}var c,d=r("493f"),p=r("b9b5"),m=p.getHighWaterMark,b=r("9d8a").codes,v=b.ERR_INVALID_ARG_TYPE,g=b.ERR_METHOD_NOT_IMPLEMENTED,y=b.ERR_MULTIPLE_CALLBACK,w=b.ERR_STREAM_CANNOT_PIPE,M=b.ERR_STREAM_DESTROYED,_=b.ERR_STREAM_NULL_VALUES,S=b.ERR_STREAM_WRITE_AFTER_END,E=b.ERR_UNKNOWN_ENCODING,A=d.errorOrDestroy;function x(){}function k(t,e,i){o=o||r("e666"),t=t||{},"boolean"!==typeof i&&(i=e instanceof o),this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=m(this,t,"writableHighWaterMark",i),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===t.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){B(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function R(t){o=o||r("e666");var e=this instanceof o;if(!e&&!c.call(R,this))return new R(t);this._writableState=new k(t,this,e),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),s.call(this)}function $(t,e){var r=new S;A(t,r),i.nextTick(e,r)}function T(t,e,r,n){var o;return null===r?o=new _:"string"===typeof r||e.objectMode||(o=new v("chunk",["string","Buffer"],r)),!o||(A(t,o),i.nextTick(n,o),!1)}function I(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=u.from(e,r)),e}function O(t,e,r,i,n,o){if(!r){var a=I(e,i,n);i!==a&&(r=!0,n="buffer",i=a)}var s=e.objectMode?1:i.length;e.length+=s;var u=e.length-1))throw new E(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),R.prototype._write=function(t,e,r){r(new g("_write()"))},R.prototype._writev=null,R.prototype.end=function(t,e,r){var i=this._writableState;return"function"===typeof t?(r=t,t=null,e=null):"function"===typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),i.corked&&(i.corked=1,this.uncork()),i.ending||K(this,i,r),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),R.prototype.destroy=d.destroy,R.prototype._undestroy=d.undestroy,R.prototype._destroy=function(t,e){e(t)}}).call(this,r("c8ba"),r("4362"))},"1a2a":function(t,e,r){"use strict";var i=r("3fb5"),n=r("d424"),o=r("6430"),a=r("8707").Buffer,s=r("5a76"),u=r("b5ca"),h=r("69f2"),f=a.alloc(128);function l(t,e){o.call(this,"digest"),"string"===typeof e&&(e=a.from(e));var r="sha512"===t||"sha384"===t?128:64;if(this._alg=t,this._key=e,e.length>r){var i="rmd160"===t?new u:h(t);e=i.update(e).digest()}else e.length=51||!i((function(){var e=[],r=e.constructor={};return r[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},"1e3c":function(t,e,r){var i=r("6430"),n=r("1545"),o=r("3fb5"),a=r("8707").Buffer,s={"des-ede3-cbc":n.CBC.instantiate(n.EDE),"des-ede3":n.EDE,"des-ede-cbc":n.CBC.instantiate(n.EDE),"des-ede":n.EDE,"des-cbc":n.CBC.instantiate(n.DES),"des-ecb":n.DES};function u(t){i.call(this);var e,r=t.mode.toLowerCase(),n=s[r];e=t.decrypt?"decrypt":"encrypt";var o=t.key;a.isBuffer(o)||(o=a.from(o)),"des-ede"!==r&&"des-ede-cbc"!==r||(o=a.concat([o,o.slice(0,8)]));var u=t.iv;a.isBuffer(u)||(u=a.from(u)),this._des=n.create({key:o,iv:u,type:e})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],t.exports=u,o(u,i),u.prototype._update=function(t){return a.from(this._des.update(t))},u.prototype._final=function(){return a.from(this._des.final())}},"1fb5":function(t,e,r){"use strict";e.byteLength=f,e.toByteArray=c,e.fromByteArray=m;for(var i=[],n=[],o="undefined"!==typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");-1===r&&(r=e);var i=r===e?0:4-r%4;return[r,i]}function f(t){var e=h(t),r=e[0],i=e[1];return 3*(r+i)/4-i}function l(t,e,r){return 3*(e+r)/4-r}function c(t){var e,r,i=h(t),a=i[0],s=i[1],u=new o(l(t,a,s)),f=0,c=s>0?a-4:a;for(r=0;r>16&255,u[f++]=e>>8&255,u[f++]=255&e;return 2===s&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[f++]=255&e),1===s&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[f++]=e>>8&255,u[f++]=255&e),u}function d(t){return i[t>>18&63]+i[t>>12&63]+i[t>>6&63]+i[63&t]}function p(t,e,r){for(var i,n=[],o=e;ou?u:s+a));return 1===n?(e=t[r-1],o.push(i[e>>2]+i[e<<4&63]+"==")):2===n&&(e=(t[r-2]<<8)+t[r-1],o.push(i[e>>10]+i[e>>4&63]+i[e<<2&63]+"=")),o.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},"1fec":function(t,e,r){"use strict";var i=r("da3e"),n=r("3fb5"),o=r("0184"),a=r("4e2b");function s(t,e){i.equal(e.length,24,"Invalid key length");var r=e.slice(0,8),n=e.slice(8,16),o=e.slice(16,24);this.ciphers="encrypt"===t?[a.create({type:"encrypt",key:r}),a.create({type:"decrypt",key:n}),a.create({type:"encrypt",key:o})]:[a.create({type:"decrypt",key:o}),a.create({type:"encrypt",key:n}),a.create({type:"decrypt",key:r})]}function u(t){o.call(this,t);var e=new s(this.type,this.options.key);this._edeState=e}n(u,o),t.exports=u,u.create=function(t){return new u(t)},u.prototype._update=function(t,e,r,i){var n=this._edeState;n.ciphers[0]._update(t,e,r,i),n.ciphers[1]._update(r,i,r,i),n.ciphers[2]._update(r,i,r,i)},u.prototype._pad=a.prototype._pad,u.prototype._unpad=a.prototype._unpad},2:function(t,e){},"206d":function(t,e,r){(function(e,i){var n,o=r("8707").Buffer,a=r("7d2a"),s=r("9f9d"),u=r("e07b"),h=r("8be6"),f=e.crypto&&e.crypto.subtle,l={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},c=[];function d(t){if(e.process&&!e.process.browser)return Promise.resolve(!1);if(!f||!f.importKey||!f.deriveBits)return Promise.resolve(!1);if(void 0!==c[t])return c[t];n=n||o.alloc(8);var r=p(n,n,10,128,t).then((function(){return!0})).catch((function(){return!1}));return c[t]=r,r}function p(t,e,r,i,n){return f.importKey("raw",t,{name:"PBKDF2"},!1,["deriveBits"]).then((function(t){return f.deriveBits({name:"PBKDF2",salt:e,iterations:r,hash:{name:n}},t,i<<3)})).then((function(t){return o.from(t)}))}function m(t,e){t.then((function(t){i.nextTick((function(){e(null,t)}))}),(function(t){i.nextTick((function(){e(t)}))}))}t.exports=function(t,r,n,o,f,c){"function"===typeof f&&(c=f,f=void 0),f=f||"sha1";var b=l[f.toLowerCase()];if(!b||"function"!==typeof e.Promise)return i.nextTick((function(){var e;try{e=u(t,r,n,o,f)}catch(i){return c(i)}c(null,e)}));if(a(n,o),t=h(t,s,"Password"),r=h(r,s,"Salt"),"function"!==typeof c)throw new Error("No callback provided to pbkdf2");m(d(b).then((function(e){return e?p(t,r,n,o,b):u(t,r,n,o,f)})),c)}}).call(this,r("c8ba"),r("4362"))},"20f6":function(t,e,r){var i=e;i.der=r("cfbd"),i.pem=r("8df7")},2137:function(t,e,r){"use strict";var i=r("c3c0"),n=r("da3e");function o(t,e,r){if(!(this instanceof o))return new o(t,e,r);this.Hash=t,this.blockSize=t.blockSize/8,this.outSize=t.outSize/8,this.inner=null,this.outer=null,this._init(i.toArray(e,r))}t.exports=o,o.prototype._init=function(t){t.length>this.blockSize&&(t=(new this.Hash).update(t).digest()),n(t.length<=this.blockSize);for(var e=t.length;ep;p++)if(b=f?y(i(g=t[p])[0],g[1]):y(t[p]),b&&b instanceof h)return b;return new h(!1)}c=d.call(t)}v=c.next;while(!(g=v.call(c)).done)if(b=u(c,y,g.value,f),"object"==typeof b&&b&&b instanceof h)return b;return new h(!1)};f.stop=function(t){return new h(!0,t)}},"22ab":function(t,e,r){"use strict";function i(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,i)}return r}function n(t){for(var e=1;e0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";var e=this.head,r=""+e.data;while(e=e.next)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return f.alloc(0);var e=f.allocUnsafe(t>>>0),r=this.head,i=0;while(r)p(r.data,e,i),i+=r.data.length,r=r.next;return e}},{key:"consume",value:function(t,e){var r;return tn.length?n.length:t;if(o===n.length?i+=n:i+=n.slice(0,t),t-=o,0===t){o===n.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=n.slice(o));break}++r}return this.length-=r,i}},{key:"_getBuffer",value:function(t){var e=f.allocUnsafe(t),r=this.head,i=1;r.data.copy(e),t-=r.data.length;while(r=r.next){var n=r.data,o=t>n.length?n.length:t;if(n.copy(e,e.length-t,0,o),t-=o,0===t){o===n.length?(++i,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=n.slice(o));break}++i}return this.length-=i,e}},{key:d,value:function(t,e){return c(this,n({},e,{depth:0,customInspect:!1}))}}]),t}()},"23cb":function(t,e,r){var i=r("a691"),n=Math.max,o=Math.min;t.exports=function(t,e){var r=i(t);return r<0?n(r+e,0):o(r,e)}},"23e7":function(t,e,r){var i=r("da84"),n=r("06cf").f,o=r("9112"),a=r("6eeb"),s=r("ce4e"),u=r("e893"),h=r("94ca");t.exports=function(t,e){var r,f,l,c,d,p,m=t.target,b=t.global,v=t.stat;if(f=b?i:v?i[m]||s(m,{}):(i[m]||{}).prototype,f)for(l in e){if(d=e[l],t.noTargetGet?(p=n(f,l),c=p&&p.value):c=f[l],r=h(b?l:m+(v?".":"#")+l,t.forced),!r&&void 0!==c){if(typeof d===typeof c)continue;u(d,c)}(t.sham||c&&c.sham)&&o(d,"sham",!0),a(f,l,d,t)}}},"241c":function(t,e,r){var i=r("ca84"),n=r("7839"),o=n.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,o)}},2532:function(t,e,r){"use strict";var i=r("23e7"),n=r("5a34"),o=r("1d80"),a=r("ab13");i({target:"String",proto:!0,forced:!a("includes")},{includes:function(t){return!!~String(o(this)).indexOf(n(t),arguments.length>1?arguments[1]:void 0)}})},"25a1":function(t,e,r){"use strict";var i=r("ebb5"),n=r("d58f").right,o=i.aTypedArray,a=i.exportTypedArrayMethod;a("reduceRight",(function(t){return n(o(this),t,arguments.length,arguments.length>1?arguments[1]:void 0)}))},"25f0":function(t,e,r){"use strict";var i=r("6eeb"),n=r("825a"),o=r("d039"),a=r("ad6d"),s="toString",u=RegExp.prototype,h=u[s],f=o((function(){return"/a/b"!=h.call({source:"a",flags:"b"})})),l=h.name!=s;(f||l)&&i(RegExp.prototype,s,(function(){var t=n(this),e=String(t.source),r=t.flags,i=String(void 0===r&&t instanceof RegExp&&!("flags"in u)?a.call(t):r);return"/"+e+"/"+i}),{unsafe:!0})},2626:function(t,e,r){"use strict";var i=r("d066"),n=r("9bf2"),o=r("b622"),a=r("83ab"),s=o("species");t.exports=function(t){var e=i(t),r=n.f;a&&e&&!e[s]&&r(e,s,{configurable:!0,get:function(){return this}})}},"27bf":function(t,e,r){"use strict";t.exports=a;var i=r("b19a"),n=Object.create(r("3a7c"));function o(t,e){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(!i)return this.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!=e&&this.push(e),i(t);var n=this._readableState;n.reading=!1,(n.needReadable||n.length","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^3.0.8","grunt":"^1.0.4","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^9.0.1","istanbul":"^0.4.2","jscs":"^3.0.7","jshint":"^2.10.3","mocha":"^6.2.2"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}')},2954:function(t,e,r){"use strict";var i=r("ebb5"),n=r("4840"),o=r("d039"),a=i.aTypedArray,s=i.aTypedArrayConstructor,u=i.exportTypedArrayMethod,h=[].slice,f=o((function(){new Int8Array(1).slice()}));u("slice",(function(t,e){var r=h.call(a(this),t,e),i=n(this,this.constructor),o=0,u=r.length,f=new(s(i))(u);while(u>o)f[o]=r[o++];return f}),f)},"2aee":function(t,e,r){var i=r("4111"),n=r("d70e"),o=r("4dd0"),a=r("fda6"),s=r("a099"),u=r("8707").Buffer;function h(t){var e;"object"!==typeof t||u.isBuffer(t)||(e=t.passphrase,t=t.key),"string"===typeof t&&(t=u.from(t));var r,n,a=o(t,e),s=a.tag,h=a.data;switch(s){case"CERTIFICATE":n=i.certificate.decode(h,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(n||(n=i.PublicKey.decode(h,"der")),r=n.algorithm.algorithm.join("."),r){case"1.2.840.113549.1.1.1":return i.RSAPublicKey.decode(n.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return n.subjectPrivateKey=n.subjectPublicKey,{type:"ec",data:n};case"1.2.840.10040.4.1":return n.algorithm.params.pub_key=i.DSAparam.decode(n.subjectPublicKey.data,"der"),{type:"dsa",data:n.algorithm.params};default:throw new Error("unknown key id "+r)}throw new Error("unknown key type "+s);case"ENCRYPTED PRIVATE KEY":h=i.EncryptedPrivateKey.decode(h,"der"),h=f(h,e);case"PRIVATE KEY":switch(n=i.PrivateKey.decode(h,"der"),r=n.algorithm.algorithm.join("."),r){case"1.2.840.113549.1.1.1":return i.RSAPrivateKey.decode(n.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:n.algorithm.curve,privateKey:i.ECPrivateKey.decode(n.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return n.algorithm.params.priv_key=i.DSAparam.decode(n.subjectPrivateKey,"der"),{type:"dsa",params:n.algorithm.params};default:throw new Error("unknown key id "+r)}throw new Error("unknown key type "+s);case"RSA PUBLIC KEY":return i.RSAPublicKey.decode(h,"der");case"RSA PRIVATE KEY":return i.RSAPrivateKey.decode(h,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:i.DSAPrivateKey.decode(h,"der")};case"EC PRIVATE KEY":return h=i.ECPrivateKey.decode(h,"der"),{curve:h.parameters.value,privateKey:h.privateKey};default:throw new Error("unknown key type "+s)}}function f(t,e){var r=t.algorithm.decrypt.kde.kdeparams.salt,i=parseInt(t.algorithm.decrypt.kde.kdeparams.iters.toString(),10),o=n[t.algorithm.decrypt.cipher.algo.join(".")],h=t.algorithm.decrypt.cipher.iv,f=t.subjectPrivateKey,l=parseInt(o.split("-")[1],10)/8,c=s.pbkdf2Sync(e,r,i,l,"sha1"),d=a.createDecipheriv(o,c,h),p=[];return p.push(d.update(f)),p.push(d.final()),u.concat(p)}t.exports=h,h.signature=i.signature},"2c63":function(t,e,r){t.exports=r("dc14")},"2ca0":function(t,e,r){"use strict";var i=r("23e7"),n=r("06cf").f,o=r("50c4"),a=r("5a34"),s=r("1d80"),u=r("ab13"),h=r("c430"),f="".startsWith,l=Math.min,c=u("startsWith"),d=!h&&!c&&!!function(){var t=n(String.prototype,"startsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!d&&!c},{startsWith:function(t){var e=String(s(this));a(t);var r=o(l(arguments.length>1?arguments[1]:void 0,e.length)),i=String(t);return f?f.call(e,i,r):e.slice(r,r+i.length)===i}})},"2d00":function(t,e,r){var i,n,o=r("da84"),a=r("342f"),s=o.process,u=s&&s.versions,h=u&&u.v8;h?(i=h.split("."),n=i[0]+i[1]):a&&(i=a.match(/Edge\/(\d+)/),(!i||i[1]>=74)&&(i=a.match(/Chrome\/(\d+)/),i&&(n=i[1]))),t.exports=n&&+n},3:function(t,e){},3280:function(t,e,r){"use strict";var i=r("ebb5"),n=r("e58c"),o=i.aTypedArray,a=i.exportTypedArrayMethod;a("lastIndexOf",(function(t){return n.apply(o(this),arguments)}))},3300:function(t,e,r){"use strict";var i=r("f3a3"),n=r("80af"),o=r("3fb5"),a=r("ea53"),s=i.assert;function u(t){a.call(this,"short",t),this.a=new n(t.a,16).toRed(this.red),this.b=new n(t.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(t),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function h(t,e,r,i){a.BasePoint.call(this,t,"affine"),null===e&&null===r?(this.x=null,this.y=null,this.inf=!0):(this.x=new n(e,16),this.y=new n(r,16),i&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function f(t,e,r,i){a.BasePoint.call(this,t,"jacobian"),null===e&&null===r&&null===i?(this.x=this.curve.one,this.y=this.curve.one,this.z=new n(0)):(this.x=new n(e,16),this.y=new n(r,16),this.z=new n(i,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(u,a),t.exports=u,u.prototype._getEndomorphism=function(t){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var e,r,i;if(t.beta)e=new n(t.beta,16).toRed(this.red);else{var o=this._getEndoRoots(this.p);e=o[0].cmp(o[1])<0?o[0]:o[1],e=e.toRed(this.red)}if(t.lambda)r=new n(t.lambda,16);else{var a=this._getEndoRoots(this.n);0===this.g.mul(a[0]).x.cmp(this.g.x.redMul(e))?r=a[0]:(r=a[1],s(0===this.g.mul(r).x.cmp(this.g.x.redMul(e))))}return i=t.basis?t.basis.map((function(t){return{a:new n(t.a,16),b:new n(t.b,16)}})):this._getEndoBasis(r),{beta:e,lambda:r,basis:i}}},u.prototype._getEndoRoots=function(t){var e=t===this.p?this.red:n.mont(t),r=new n(2).toRed(e).redInvm(),i=r.redNeg(),o=new n(3).toRed(e).redNeg().redSqrt().redMul(r),a=i.redAdd(o).fromRed(),s=i.redSub(o).fromRed();return[a,s]},u.prototype._getEndoBasis=function(t){var e,r,i,o,a,s,u,h,f,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),c=t,d=this.n.clone(),p=new n(1),m=new n(0),b=new n(0),v=new n(1),g=0;while(0!==c.cmpn(0)){var y=d.div(c);h=d.sub(y.mul(c)),f=b.sub(y.mul(p));var w=v.sub(y.mul(m));if(!i&&h.cmp(l)<0)e=u.neg(),r=p,i=h.neg(),o=f;else if(i&&2===++g)break;u=h,d=c,c=h,b=p,p=f,v=m,m=w}a=h.neg(),s=f;var M=i.sqr().add(o.sqr()),_=a.sqr().add(s.sqr());return _.cmp(M)>=0&&(a=e,s=r),i.negative&&(i=i.neg(),o=o.neg()),a.negative&&(a=a.neg(),s=s.neg()),[{a:i,b:o},{a:a,b:s}]},u.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],i=e[1],n=i.b.mul(t).divRound(this.n),o=r.b.neg().mul(t).divRound(this.n),a=n.mul(r.a),s=o.mul(i.a),u=n.mul(r.b),h=o.mul(i.b),f=t.sub(a).sub(s),l=u.add(h).neg();return{k1:f,k2:l}},u.prototype.pointFromX=function(t,e){t=new n(t,16),t.red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),i=r.redSqrt();if(0!==i.redSqr().redSub(r).cmp(this.zero))throw new Error("invalid point");var o=i.fromRed().isOdd();return(e&&!o||!e&&o)&&(i=i.redNeg()),this.point(t,i)},u.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,i=this.a.redMul(e),n=e.redSqr().redMul(e).redIAdd(i).redIAdd(this.b);return 0===r.redSqr().redISub(n).cmpn(0)},u.prototype._endoWnafMulAdd=function(t,e,r){for(var i=this._endoWnafT1,n=this._endoWnafT2,o=0;o":""},h.prototype.isInfinity=function(){return this.inf},h.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),i=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,i)},h.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),i=t.redInvm(),n=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(i),o=n.redSqr().redISub(this.x.redAdd(this.x)),a=n.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,a)},h.prototype.getX=function(){return this.x.fromRed()},h.prototype.getY=function(){return this.y.fromRed()},h.prototype.mul=function(t){return t=new n(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},h.prototype.mulAdd=function(t,e,r){var i=[this,e],n=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(i,n):this.curve._wnafMulAdd(1,i,n,2)},h.prototype.jmulAdd=function(t,e,r){var i=[this,e],n=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(i,n,!0):this.curve._wnafMulAdd(1,i,n,2,!0)},h.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},h.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,i=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(i)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(i)}}}return e},h.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var t=this.curve.jpoint(this.x,this.y,this.curve.one);return t},o(f,a.BasePoint),u.prototype.jpoint=function(t,e,r){return new f(this,t,e,r)},f.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),i=this.y.redMul(e).redMul(t);return this.curve.point(r,i)},f.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},f.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),i=this.x.redMul(e),n=t.x.redMul(r),o=this.y.redMul(e.redMul(t.z)),a=t.y.redMul(r.redMul(this.z)),s=i.redSub(n),u=o.redSub(a);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var h=s.redSqr(),f=h.redMul(s),l=i.redMul(h),c=u.redSqr().redIAdd(f).redISub(l).redISub(l),d=u.redMul(l.redISub(c)).redISub(o.redMul(f)),p=this.z.redMul(t.z).redMul(s);return this.curve.jpoint(c,d,p)},f.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,i=t.x.redMul(e),n=this.y,o=t.y.redMul(e).redMul(this.z),a=r.redSub(i),s=n.redSub(o);if(0===a.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),h=u.redMul(a),f=r.redMul(u),l=s.redSqr().redIAdd(h).redISub(f).redISub(f),c=s.redMul(f.redISub(l)).redISub(n.redMul(h)),d=this.z.redMul(a);return this.curve.jpoint(l,c,d)},f.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var e=this,r=0;r=0)return!1;if(r.redIAdd(n),0===this.x.cmp(r))return!0}},f.prototype.inspect=function(){return this.isInfinity()?"":""},f.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},3337:function(t,e,r){"use strict";var i=e;i.version=r("2801").version,i.utils=r("f3a3"),i.rand=r("fdac"),i.curve=r("4136"),i.curves=r("0cbb"),i.ec=r("b9a8"),i.eddsa=r("945d")},"334a":function(t,e,r){e=t.exports=r("4250"),e.Stream=e,e.Readable=e,e.Writable=r("19ea"),e.Duplex=r("e666"),e.Transform=r("09dc"),e.PassThrough=r("0ae3"),e.finished=r("ee93"),e.pipeline=r("fbd5")},"342f":function(t,e,r){var i=r("d066");t.exports=i("navigator","userAgent")||""},"343e":function(t,e,r){var i=e;i.der=r("3768"),i.pem=r("85b3")},"34d5":function(t,e,r){e=t.exports=r("cf35"),e.Stream=e,e.Readable=e,e.Writable=r("49ce"),e.Duplex=r("5e7d"),e.Transform=r("f1c8"),e.PassThrough=r("9d28"),e.finished=r("42a7"),e.pipeline=r("ac4f")},3505:function(t,e,r){var i=r("8707").Buffer,n=r("8c8a");function o(t,e,r){var o=e.length,a=n(e,t._cache);return t._cache=t._cache.slice(o),t._prev=i.concat([t._prev,r?e:a]),a}e.encrypt=function(t,e,r){var n,a=i.allocUnsafe(0);while(e.length){if(0===t._cache.length&&(t._cache=t._cipher.encryptBlock(t._prev),t._prev=i.allocUnsafe(0)),!(t._cache.length<=e.length)){a=i.concat([a,o(t,e,r)]);break}n=t._cache.length,a=i.concat([a,o(t,e.slice(0,n),r)]),e=e.slice(n)}return a}},"35a1":function(t,e,r){var i=r("f5df"),n=r("3f8c"),o=r("b622"),a=o("iterator");t.exports=function(t){if(void 0!=t)return t[a]||t["@@iterator"]||n[i(t)]}},3768:function(t,e,r){var i=r("3fb5"),n=r("b639").Buffer,o=r("7f7a"),a=o.base,s=o.constants.der;function u(t){this.enc="der",this.name=t.name,this.entity=t,this.tree=new h,this.tree._init(t.body)}function h(t){a.Node.call(this,"der",t)}function f(t){return t<10?"0"+t:t}function l(t,e,r,i){var n;if("seqof"===t?t="seq":"setof"===t&&(t="set"),s.tagByName.hasOwnProperty(t))n=s.tagByName[t];else{if("number"!==typeof t||(0|t)!==t)return i.error("Unknown tag: "+t);n=t}return n>=31?i.error("Multi-octet tag encoding unsupported"):(e||(n|=32),n|=s.tagClassByName[r||"universal"]<<6,n)}t.exports=u,u.prototype.encode=function(t,e){return this.tree._encode(t,e).join()},i(h,a.Node),h.prototype._encodeComposite=function(t,e,r,i){var o=l(t,e,r,this.reporter);if(i.length<128){var a=new n(2);return a[0]=o,a[1]=i.length,this._createEncoderBuffer([a,i])}for(var s=1,u=i.length;u>=256;u>>=8)s++;a=new n(2+s);a[0]=o,a[1]=128|s;u=1+s;for(var h=i.length;h>0;u--,h>>=8)a[u]=255&h;return this._createEncoderBuffer([a,i])},h.prototype._encodeStr=function(t,e){if("bitstr"===e)return this._createEncoderBuffer([0|t.unused,t.data]);if("bmpstr"===e){for(var r=new n(2*t.length),i=0;i=40)return this.reporter.error("Second objid identifier OOB");t.splice(0,2,40*t[0]+t[1])}var o=0;for(i=0;i=128;a>>=7)o++}var s=new n(o),u=s.length-1;for(i=t.length-1;i>=0;i--){a=t[i];s[u--]=127&a;while((a>>=7)>0)s[u--]=128|127&a}return this._createEncoderBuffer(s)},h.prototype._encodeTime=function(t,e){var r,i=new Date(t);return"gentime"===e?r=[f(i.getFullYear()),f(i.getUTCMonth()+1),f(i.getUTCDate()),f(i.getUTCHours()),f(i.getUTCMinutes()),f(i.getUTCSeconds()),"Z"].join(""):"utctime"===e?r=[f(i.getFullYear()%100),f(i.getUTCMonth()+1),f(i.getUTCDate()),f(i.getUTCHours()),f(i.getUTCMinutes()),f(i.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+e+" time is not supported yet"),this._encodeStr(r,"octstr")},h.prototype._encodeNull=function(){return this._createEncoderBuffer("")},h.prototype._encodeInt=function(t,e){if("string"===typeof t){if(!e)return this.reporter.error("String int or enum given, but no values map");if(!e.hasOwnProperty(t))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(t));t=e[t]}if("number"!==typeof t&&!n.isBuffer(t)){var r=t.toArray();!t.sign&&128&r[0]&&r.unshift(0),t=new n(r)}if(n.isBuffer(t)){var i=t.length;0===t.length&&i++;var o=new n(i);return t.copy(o),0===t.length&&(o[0]=0),this._createEncoderBuffer(o)}if(t<128)return this._createEncoderBuffer(t);if(t<256)return this._createEncoderBuffer([0,t]);i=1;for(var a=t;a>=256;a>>=8)i++;for(o=new Array(i),a=o.length-1;a>=0;a--)o[a]=255&t,t>>=8;return 128&o[0]&&o.unshift(0),this._createEncoderBuffer(new n(o))},h.prototype._encodeBool=function(t){return this._createEncoderBuffer(t?255:0)},h.prototype._use=function(t,e){return"function"===typeof t&&(t=t(e)),t._getEncoder("der").tree},h.prototype._skipDefault=function(t,e,r){var i,n=this._baseState;if(null===n["default"])return!1;var o=t.join();if(void 0===n.defaultBuffer&&(n.defaultBuffer=this._encodeValue(n["default"],e,r).join()),o.length!==n.defaultBuffer.length)return!1;for(i=0;i=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return i}function u(t,e,r,i){for(var n=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var n=0;"-"===t[0]&&n++,16===e?this._parseHex(t,n):this._parseBase(t,e,n),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(i("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)n=s(t,r,r+6),this.words[i]|=n<>>26-o&4194303,o+=24,o>=26&&(o-=26,i++);r+6!==e&&(n=s(t,e,r+6),this.words[i]|=n<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=e)i++;i--,n=n/e|0;for(var o=t.length-r,a=o%i,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>n}return e}function d(t,e,r){r.negative=e.negative^t.negative;var i=t.length+e.length|0;r.length=i,i=i-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;n=0|t.words[p],o=0|e.words[d],a=n*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,n+=2,n>=26&&(n-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,i=t):(r=t,i=this);for(var n=0,o=0;o>>26;for(;0!==n&&o>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,i,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=t):(r=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,b=0|a[2],v=8191&b,g=b>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],S=8191&_,E=_>>>13,A=0|a[5],x=8191&A,k=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,L=0|a[8],N=8191&L,B=L>>>13,P=0|a[9],j=8191&P,D=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],K=8191&z,W=z>>>13,H=0|s[2],Z=8191&H,Y=H>>>13,V=0|s[3],G=8191&V,X=V>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,it=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,i=Math.imul(l,U),n=Math.imul(l,F),n=n+Math.imul(c,U)|0,o=Math.imul(c,F);var bt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(p,U),n=Math.imul(p,F),n=n+Math.imul(m,U)|0,o=Math.imul(m,F),i=i+Math.imul(l,K)|0,n=n+Math.imul(l,W)|0,n=n+Math.imul(c,K)|0,o=o+Math.imul(c,W)|0;var vt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,U),n=Math.imul(v,F),n=n+Math.imul(g,U)|0,o=Math.imul(g,F),i=i+Math.imul(p,K)|0,n=n+Math.imul(p,W)|0,n=n+Math.imul(m,K)|0,o=o+Math.imul(m,W)|0,i=i+Math.imul(l,Z)|0,n=n+Math.imul(l,Y)|0,n=n+Math.imul(c,Z)|0,o=o+Math.imul(c,Y)|0;var gt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,i=Math.imul(w,U),n=Math.imul(w,F),n=n+Math.imul(M,U)|0,o=Math.imul(M,F),i=i+Math.imul(v,K)|0,n=n+Math.imul(v,W)|0,n=n+Math.imul(g,K)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(p,Z)|0,n=n+Math.imul(p,Y)|0,n=n+Math.imul(m,Z)|0,o=o+Math.imul(m,Y)|0,i=i+Math.imul(l,G)|0,n=n+Math.imul(l,X)|0,n=n+Math.imul(c,G)|0,o=o+Math.imul(c,X)|0;var yt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(S,U),n=Math.imul(S,F),n=n+Math.imul(E,U)|0,o=Math.imul(E,F),i=i+Math.imul(w,K)|0,n=n+Math.imul(w,W)|0,n=n+Math.imul(M,K)|0,o=o+Math.imul(M,W)|0,i=i+Math.imul(v,Z)|0,n=n+Math.imul(v,Y)|0,n=n+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(p,G)|0,n=n+Math.imul(p,X)|0,n=n+Math.imul(m,G)|0,o=o+Math.imul(m,X)|0,i=i+Math.imul(l,Q)|0,n=n+Math.imul(l,tt)|0,n=n+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(x,U),n=Math.imul(x,F),n=n+Math.imul(k,U)|0,o=Math.imul(k,F),i=i+Math.imul(S,K)|0,n=n+Math.imul(S,W)|0,n=n+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,i=i+Math.imul(w,Z)|0,n=n+Math.imul(w,Y)|0,n=n+Math.imul(M,Z)|0,o=o+Math.imul(M,Y)|0,i=i+Math.imul(v,G)|0,n=n+Math.imul(v,X)|0,n=n+Math.imul(g,G)|0,o=o+Math.imul(g,X)|0,i=i+Math.imul(p,Q)|0,n=n+Math.imul(p,tt)|0,n=n+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,i=i+Math.imul(l,rt)|0,n=n+Math.imul(l,it)|0,n=n+Math.imul(c,rt)|0,o=o+Math.imul(c,it)|0;var Mt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul($,U),n=Math.imul($,F),n=n+Math.imul(T,U)|0,o=Math.imul(T,F),i=i+Math.imul(x,K)|0,n=n+Math.imul(x,W)|0,n=n+Math.imul(k,K)|0,o=o+Math.imul(k,W)|0,i=i+Math.imul(S,Z)|0,n=n+Math.imul(S,Y)|0,n=n+Math.imul(E,Z)|0,o=o+Math.imul(E,Y)|0,i=i+Math.imul(w,G)|0,n=n+Math.imul(w,X)|0,n=n+Math.imul(M,G)|0,o=o+Math.imul(M,X)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(v,tt)|0,n=n+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(p,rt)|0,n=n+Math.imul(p,it)|0,n=n+Math.imul(m,rt)|0,o=o+Math.imul(m,it)|0,i=i+Math.imul(l,ot)|0,n=n+Math.imul(l,at)|0,n=n+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(O,U),n=Math.imul(O,F),n=n+Math.imul(C,U)|0,o=Math.imul(C,F),i=i+Math.imul($,K)|0,n=n+Math.imul($,W)|0,n=n+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,i=i+Math.imul(x,Z)|0,n=n+Math.imul(x,Y)|0,n=n+Math.imul(k,Z)|0,o=o+Math.imul(k,Y)|0,i=i+Math.imul(S,G)|0,n=n+Math.imul(S,X)|0,n=n+Math.imul(E,G)|0,o=o+Math.imul(E,X)|0,i=i+Math.imul(w,Q)|0,n=n+Math.imul(w,tt)|0,n=n+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,i=i+Math.imul(v,rt)|0,n=n+Math.imul(v,it)|0,n=n+Math.imul(g,rt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(p,ot)|0,n=n+Math.imul(p,at)|0,n=n+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,i=i+Math.imul(l,ut)|0,n=n+Math.imul(l,ht)|0,n=n+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var St=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(N,U),n=Math.imul(N,F),n=n+Math.imul(B,U)|0,o=Math.imul(B,F),i=i+Math.imul(O,K)|0,n=n+Math.imul(O,W)|0,n=n+Math.imul(C,K)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul($,Z)|0,n=n+Math.imul($,Y)|0,n=n+Math.imul(T,Z)|0,o=o+Math.imul(T,Y)|0,i=i+Math.imul(x,G)|0,n=n+Math.imul(x,X)|0,n=n+Math.imul(k,G)|0,o=o+Math.imul(k,X)|0,i=i+Math.imul(S,Q)|0,n=n+Math.imul(S,tt)|0,n=n+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,i=i+Math.imul(w,rt)|0,n=n+Math.imul(w,it)|0,n=n+Math.imul(M,rt)|0,o=o+Math.imul(M,it)|0,i=i+Math.imul(v,ot)|0,n=n+Math.imul(v,at)|0,n=n+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(p,ut)|0,n=n+Math.imul(p,ht)|0,n=n+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,i=i+Math.imul(l,lt)|0,n=n+Math.imul(l,ct)|0,n=n+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var Et=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(j,U),n=Math.imul(j,F),n=n+Math.imul(D,U)|0,o=Math.imul(D,F),i=i+Math.imul(N,K)|0,n=n+Math.imul(N,W)|0,n=n+Math.imul(B,K)|0,o=o+Math.imul(B,W)|0,i=i+Math.imul(O,Z)|0,n=n+Math.imul(O,Y)|0,n=n+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul($,G)|0,n=n+Math.imul($,X)|0,n=n+Math.imul(T,G)|0,o=o+Math.imul(T,X)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(x,tt)|0,n=n+Math.imul(k,Q)|0,o=o+Math.imul(k,tt)|0,i=i+Math.imul(S,rt)|0,n=n+Math.imul(S,it)|0,n=n+Math.imul(E,rt)|0,o=o+Math.imul(E,it)|0,i=i+Math.imul(w,ot)|0,n=n+Math.imul(w,at)|0,n=n+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,i=i+Math.imul(v,ut)|0,n=n+Math.imul(v,ht)|0,n=n+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,i=i+Math.imul(p,lt)|0,n=n+Math.imul(p,ct)|0,n=n+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,i=i+Math.imul(l,pt)|0,n=n+Math.imul(l,mt)|0,n=n+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(j,K),n=Math.imul(j,W),n=n+Math.imul(D,K)|0,o=Math.imul(D,W),i=i+Math.imul(N,Z)|0,n=n+Math.imul(N,Y)|0,n=n+Math.imul(B,Z)|0,o=o+Math.imul(B,Y)|0,i=i+Math.imul(O,G)|0,n=n+Math.imul(O,X)|0,n=n+Math.imul(C,G)|0,o=o+Math.imul(C,X)|0,i=i+Math.imul($,Q)|0,n=n+Math.imul($,tt)|0,n=n+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,i=i+Math.imul(x,rt)|0,n=n+Math.imul(x,it)|0,n=n+Math.imul(k,rt)|0,o=o+Math.imul(k,it)|0,i=i+Math.imul(S,ot)|0,n=n+Math.imul(S,at)|0,n=n+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,i=i+Math.imul(w,ut)|0,n=n+Math.imul(w,ht)|0,n=n+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,i=i+Math.imul(v,lt)|0,n=n+Math.imul(v,ct)|0,n=n+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,i=i+Math.imul(p,pt)|0,n=n+Math.imul(p,mt)|0,n=n+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var xt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(j,Z),n=Math.imul(j,Y),n=n+Math.imul(D,Z)|0,o=Math.imul(D,Y),i=i+Math.imul(N,G)|0,n=n+Math.imul(N,X)|0,n=n+Math.imul(B,G)|0,o=o+Math.imul(B,X)|0,i=i+Math.imul(O,Q)|0,n=n+Math.imul(O,tt)|0,n=n+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul($,rt)|0,n=n+Math.imul($,it)|0,n=n+Math.imul(T,rt)|0,o=o+Math.imul(T,it)|0,i=i+Math.imul(x,ot)|0,n=n+Math.imul(x,at)|0,n=n+Math.imul(k,ot)|0,o=o+Math.imul(k,at)|0,i=i+Math.imul(S,ut)|0,n=n+Math.imul(S,ht)|0,n=n+Math.imul(E,ut)|0,o=o+Math.imul(E,ht)|0,i=i+Math.imul(w,lt)|0,n=n+Math.imul(w,ct)|0,n=n+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,i=i+Math.imul(v,pt)|0,n=n+Math.imul(v,mt)|0,n=n+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var kt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(j,G),n=Math.imul(j,X),n=n+Math.imul(D,G)|0,o=Math.imul(D,X),i=i+Math.imul(N,Q)|0,n=n+Math.imul(N,tt)|0,n=n+Math.imul(B,Q)|0,o=o+Math.imul(B,tt)|0,i=i+Math.imul(O,rt)|0,n=n+Math.imul(O,it)|0,n=n+Math.imul(C,rt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul($,ot)|0,n=n+Math.imul($,at)|0,n=n+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,i=i+Math.imul(x,ut)|0,n=n+Math.imul(x,ht)|0,n=n+Math.imul(k,ut)|0,o=o+Math.imul(k,ht)|0,i=i+Math.imul(S,lt)|0,n=n+Math.imul(S,ct)|0,n=n+Math.imul(E,lt)|0,o=o+Math.imul(E,ct)|0,i=i+Math.imul(w,pt)|0,n=n+Math.imul(w,mt)|0,n=n+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,i=Math.imul(j,Q),n=Math.imul(j,tt),n=n+Math.imul(D,Q)|0,o=Math.imul(D,tt),i=i+Math.imul(N,rt)|0,n=n+Math.imul(N,it)|0,n=n+Math.imul(B,rt)|0,o=o+Math.imul(B,it)|0,i=i+Math.imul(O,ot)|0,n=n+Math.imul(O,at)|0,n=n+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul($,ut)|0,n=n+Math.imul($,ht)|0,n=n+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,i=i+Math.imul(x,lt)|0,n=n+Math.imul(x,ct)|0,n=n+Math.imul(k,lt)|0,o=o+Math.imul(k,ct)|0,i=i+Math.imul(S,pt)|0,n=n+Math.imul(S,mt)|0,n=n+Math.imul(E,pt)|0,o=o+Math.imul(E,mt)|0;var $t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+($t>>>26)|0,$t&=67108863,i=Math.imul(j,rt),n=Math.imul(j,it),n=n+Math.imul(D,rt)|0,o=Math.imul(D,it),i=i+Math.imul(N,ot)|0,n=n+Math.imul(N,at)|0,n=n+Math.imul(B,ot)|0,o=o+Math.imul(B,at)|0,i=i+Math.imul(O,ut)|0,n=n+Math.imul(O,ht)|0,n=n+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,i=i+Math.imul($,lt)|0,n=n+Math.imul($,ct)|0,n=n+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,i=i+Math.imul(x,pt)|0,n=n+Math.imul(x,mt)|0,n=n+Math.imul(k,pt)|0,o=o+Math.imul(k,mt)|0;var Tt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(j,ot),n=Math.imul(j,at),n=n+Math.imul(D,ot)|0,o=Math.imul(D,at),i=i+Math.imul(N,ut)|0,n=n+Math.imul(N,ht)|0,n=n+Math.imul(B,ut)|0,o=o+Math.imul(B,ht)|0,i=i+Math.imul(O,lt)|0,n=n+Math.imul(O,ct)|0,n=n+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,i=i+Math.imul($,pt)|0,n=n+Math.imul($,mt)|0,n=n+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(j,ut),n=Math.imul(j,ht),n=n+Math.imul(D,ut)|0,o=Math.imul(D,ht),i=i+Math.imul(N,lt)|0,n=n+Math.imul(N,ct)|0,n=n+Math.imul(B,lt)|0,o=o+Math.imul(B,ct)|0,i=i+Math.imul(O,pt)|0,n=n+Math.imul(O,mt)|0,n=n+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(j,lt),n=Math.imul(j,ct),n=n+Math.imul(D,lt)|0,o=Math.imul(D,ct),i=i+Math.imul(N,pt)|0,n=n+Math.imul(N,mt)|0,n=n+Math.imul(B,pt)|0,o=o+Math.imul(B,mt)|0;var Ct=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(j,pt),n=Math.imul(j,mt),n=n+Math.imul(D,pt)|0,o=Math.imul(D,mt);var Lt=(h+i|0)+((8191&n)<<13)|0;return h=(o+(n>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,u[0]=bt,u[1]=vt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=St,u[8]=Et,u[9]=At,u[10]=xt,u[11]=kt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Lt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var i=0,n=0,o=0;o>>26)|0,n+=a>>>26,a&=67108863}r.words[o]=s,i=a,a=n}return 0!==i?r.words[o]=i:r.length--,r.strip()}function b(t,e,r){var i=new v;return i.mulp(t,e,r)}function v(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,i=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):i<63?d(this,t,e):i<1024?m(this,t,e):b(this,t,e),r},v.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,i=0;i>=1;return i},v.prototype.permute=function(t,e,r,i,n,o){for(var a=0;a>>=1)n++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,i=0;i=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=n);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,i=this.clone(),n=t,a=0|n.words[n.length-1],s=this._countBits(a);r=26-s,0!==r&&(n=n.ushln(r),i.iushln(r),a=0|n.words[n.length-1]);var u,h=i.length-n.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|i.words[n.length+c])+(0|i.words[n.length+c-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(n,d,c);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(n,1,c),i.isZero()||(i.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==r&&i.iushrn(r),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),n=t.andln(1),o=r.cmp(i);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(n.isOdd()||a.isOdd())&&(n.iadd(f),a.isub(l)),n.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),n.isub(s),a.isub(u)):(r.isub(e),s.isub(n),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return n=0===e.cmpn(1)?a:s,n.cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var i=0;e.isEven()&&r.isEven();i++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var n=e.cmp(r);if(n<0){var o=e;e=r,r=o}else if(0===n||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var i=0|this.words[r],n=0|t.words[r];if(i!==n){in&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new E(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){E.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var i=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(w,y),w.prototype.split=function(t,e){for(var r=4194303,i=Math.min(t.length,9),n=0;n>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=n,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return g[t]=e,e},E.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},E.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},E.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},E.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},E.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},E.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},E.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},E.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},E.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},E.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},E.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},E.prototype.isqr=function(t){return this.imul(t,t.clone())},E.prototype.sqr=function(t){return this.mul(t,t)},E.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var n=this.m.subn(1),a=0;while(!n.isZero()&&0===n.andln(1))a++,n.iushrn(1);i(!n.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,n),c=this.pow(t,n.addn(1).iushrn(1)),d=this.pow(t,n),p=a;while(0!==d.cmp(s)){for(var m=d,b=0;0!==m.cmp(s);b++)m=m.redSqr();i(b=0;n--){for(var f=e.words[n],l=h-1;l>=0;l--){var c=f>>l&1;a!==i[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===n&&0===l)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}h=26}return a},E.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},E.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},n(A,E),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},"37e8":function(t,e,r){var i=r("83ab"),n=r("9bf2"),o=r("825a"),a=r("df75");t.exports=i?Object.defineProperties:function(t,e){o(t);var r,i=a(e),s=i.length,u=0;while(s>u)n.f(t,r=i[u++],e[r]);return t}},"380f":function(t,e,r){"use strict";var i=r("f3a3"),n=i.assert,o=i.parseBytes,a=i.cachedProperty;function s(t,e){this.eddsa=t,this._secret=o(e.secret),t.isPoint(e.pub)?this._pub=e.pub:this._pubBytes=o(e.pub)}s.fromPublic=function(t,e){return e instanceof s?e:new s(t,{pub:e})},s.fromSecret=function(t,e){return e instanceof s?e:new s(t,{secret:e})},s.prototype.secret=function(){return this._secret},a(s,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),a(s,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),a(s,"privBytes",(function(){var t=this.eddsa,e=this.hash(),r=t.encodingLength-1,i=e.slice(0,t.encodingLength);return i[0]&=248,i[r]&=127,i[r]|=64,i})),a(s,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),a(s,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),a(s,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(t){return n(this._secret,"KeyPair can only verify"),this.eddsa.sign(t,this)},s.prototype.verify=function(t,e){return this.eddsa.verify(t,e,this)},s.prototype.getSecret=function(t){return n(this._secret,"KeyPair is public only"),i.encode(this.secret(),t)},s.prototype.getPublic=function(t){return i.encode(this.pubBytes(),t)},t.exports=s},"399f":function(t,e,r){(function(t){(function(t,e){"use strict";function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a=r(11).Buffer}catch($){}function s(t,e,r){for(var n=0,o=Math.min(t.length,r),a=0,s=e;s=49&&h<=54?h-49+10:h>=17&&h<=22?h-17+10:h,n|=u,a|=u}return i(!(240&a),"Invalid character in "+t),n}function u(t,e,r,n){for(var o=0,a=0,s=Math.min(t.length,r),u=e;u=49?h-49+10:h>=17?h-17+10:h,i(h>=0&&a"}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var n=0;"-"===t[0]&&n++,16===e?this._parseHex(t,n):this._parseBase(t,e,n),"-"===t[0]&&(this.negative=1),this._strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(i("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this._strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)n=s(t,r,r+6),this.words[i]|=n<>>26-o&4194303,o+=24,o>=26&&(o-=26,i++);r+6!==e&&(n=s(t,e,r+6),this.words[i]|=n<>>26-o&4194303),this._strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=e)i++;i--,n=n/e|0;for(var o=t.length-r,a=o%i,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!==typeof Symbol&&"function"===typeof Symbol.for?o.prototype[Symbol.for("nodejs.util.inspect.custom")]=f:o.prototype.inspect=f;var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],c=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215,r=0!==o||a!==this.length-1?l[6-u.length]+u+r:u+r,n+=2,n>=26&&(n-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var h=c[t],f=d[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modrn(f).toString(t);p=p.idivn(f),r=p.isZero()?m+r:l[h-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16,2)},a&&(o.prototype.toBuffer=function(t,e){return this.toArrayLike(a,t,e)}),o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)};var p=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)};function m(t){for(var e=new Array(t.bitLength()),r=0;r>>n&1}return e}function b(t,e,r){r.negative=e.negative^t.negative;var i=t.length+e.length|0;r.length=i,i=i-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;n=0|t.words[p],o=0|e.words[d],a=n*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r._strip()}o.prototype.toArrayLike=function(t,e,r){this._strip();var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0");var a=p(t,o),s="le"===e?"LE":"BE";return this["_toArrayLike"+s](a,n),a},o.prototype._toArrayLikeLE=function(t,e){for(var r=0,i=0,n=0,o=0;n>8&255),r>16&255),6===o?(r>24&255),i=0,o=0):(i=a>>>24,o+=2)}if(r=0&&(t[r--]=a>>8&255),r>=0&&(t[r--]=a>>16&255),6===o?(r>=0&&(t[r--]=a>>24&255),i=0,o=0):(i=a>>>24,o+=2)}if(r>=0){t[r--]=i;while(r>=0)t[r--]=0}},Math.clz32?o.prototype._countBits=function(t){return 32-Math.clz32(t)}:o.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this._strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,i=t):(r=t,i=this);for(var n=0,o=0;o>>26;for(;0!==n&&o>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,i,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=t):(r=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,b=0|a[2],v=8191&b,g=b>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],S=8191&_,E=_>>>13,A=0|a[5],x=8191&A,k=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,L=0|a[8],N=8191&L,B=L>>>13,P=0|a[9],j=8191&P,D=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],K=8191&z,W=z>>>13,H=0|s[2],Z=8191&H,Y=H>>>13,V=0|s[3],G=8191&V,X=V>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,it=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,i=Math.imul(l,U),n=Math.imul(l,F),n=n+Math.imul(c,U)|0,o=Math.imul(c,F);var bt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(p,U),n=Math.imul(p,F),n=n+Math.imul(m,U)|0,o=Math.imul(m,F),i=i+Math.imul(l,K)|0,n=n+Math.imul(l,W)|0,n=n+Math.imul(c,K)|0,o=o+Math.imul(c,W)|0;var vt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,U),n=Math.imul(v,F),n=n+Math.imul(g,U)|0,o=Math.imul(g,F),i=i+Math.imul(p,K)|0,n=n+Math.imul(p,W)|0,n=n+Math.imul(m,K)|0,o=o+Math.imul(m,W)|0,i=i+Math.imul(l,Z)|0,n=n+Math.imul(l,Y)|0,n=n+Math.imul(c,Z)|0,o=o+Math.imul(c,Y)|0;var gt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,i=Math.imul(w,U),n=Math.imul(w,F),n=n+Math.imul(M,U)|0,o=Math.imul(M,F),i=i+Math.imul(v,K)|0,n=n+Math.imul(v,W)|0,n=n+Math.imul(g,K)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(p,Z)|0,n=n+Math.imul(p,Y)|0,n=n+Math.imul(m,Z)|0,o=o+Math.imul(m,Y)|0,i=i+Math.imul(l,G)|0,n=n+Math.imul(l,X)|0,n=n+Math.imul(c,G)|0,o=o+Math.imul(c,X)|0;var yt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(S,U),n=Math.imul(S,F),n=n+Math.imul(E,U)|0,o=Math.imul(E,F),i=i+Math.imul(w,K)|0,n=n+Math.imul(w,W)|0,n=n+Math.imul(M,K)|0,o=o+Math.imul(M,W)|0,i=i+Math.imul(v,Z)|0,n=n+Math.imul(v,Y)|0,n=n+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(p,G)|0,n=n+Math.imul(p,X)|0,n=n+Math.imul(m,G)|0,o=o+Math.imul(m,X)|0,i=i+Math.imul(l,Q)|0,n=n+Math.imul(l,tt)|0,n=n+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(x,U),n=Math.imul(x,F),n=n+Math.imul(k,U)|0,o=Math.imul(k,F),i=i+Math.imul(S,K)|0,n=n+Math.imul(S,W)|0,n=n+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,i=i+Math.imul(w,Z)|0,n=n+Math.imul(w,Y)|0,n=n+Math.imul(M,Z)|0,o=o+Math.imul(M,Y)|0,i=i+Math.imul(v,G)|0,n=n+Math.imul(v,X)|0,n=n+Math.imul(g,G)|0,o=o+Math.imul(g,X)|0,i=i+Math.imul(p,Q)|0,n=n+Math.imul(p,tt)|0,n=n+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,i=i+Math.imul(l,rt)|0,n=n+Math.imul(l,it)|0,n=n+Math.imul(c,rt)|0,o=o+Math.imul(c,it)|0;var Mt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul($,U),n=Math.imul($,F),n=n+Math.imul(T,U)|0,o=Math.imul(T,F),i=i+Math.imul(x,K)|0,n=n+Math.imul(x,W)|0,n=n+Math.imul(k,K)|0,o=o+Math.imul(k,W)|0,i=i+Math.imul(S,Z)|0,n=n+Math.imul(S,Y)|0,n=n+Math.imul(E,Z)|0,o=o+Math.imul(E,Y)|0,i=i+Math.imul(w,G)|0,n=n+Math.imul(w,X)|0,n=n+Math.imul(M,G)|0,o=o+Math.imul(M,X)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(v,tt)|0,n=n+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(p,rt)|0,n=n+Math.imul(p,it)|0,n=n+Math.imul(m,rt)|0,o=o+Math.imul(m,it)|0,i=i+Math.imul(l,ot)|0,n=n+Math.imul(l,at)|0,n=n+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(O,U),n=Math.imul(O,F),n=n+Math.imul(C,U)|0,o=Math.imul(C,F),i=i+Math.imul($,K)|0,n=n+Math.imul($,W)|0,n=n+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,i=i+Math.imul(x,Z)|0,n=n+Math.imul(x,Y)|0,n=n+Math.imul(k,Z)|0,o=o+Math.imul(k,Y)|0,i=i+Math.imul(S,G)|0,n=n+Math.imul(S,X)|0,n=n+Math.imul(E,G)|0,o=o+Math.imul(E,X)|0,i=i+Math.imul(w,Q)|0,n=n+Math.imul(w,tt)|0,n=n+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,i=i+Math.imul(v,rt)|0,n=n+Math.imul(v,it)|0,n=n+Math.imul(g,rt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(p,ot)|0,n=n+Math.imul(p,at)|0,n=n+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,i=i+Math.imul(l,ut)|0,n=n+Math.imul(l,ht)|0,n=n+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var St=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(N,U),n=Math.imul(N,F),n=n+Math.imul(B,U)|0,o=Math.imul(B,F),i=i+Math.imul(O,K)|0,n=n+Math.imul(O,W)|0,n=n+Math.imul(C,K)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul($,Z)|0,n=n+Math.imul($,Y)|0,n=n+Math.imul(T,Z)|0,o=o+Math.imul(T,Y)|0,i=i+Math.imul(x,G)|0,n=n+Math.imul(x,X)|0,n=n+Math.imul(k,G)|0,o=o+Math.imul(k,X)|0,i=i+Math.imul(S,Q)|0,n=n+Math.imul(S,tt)|0,n=n+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,i=i+Math.imul(w,rt)|0,n=n+Math.imul(w,it)|0,n=n+Math.imul(M,rt)|0,o=o+Math.imul(M,it)|0,i=i+Math.imul(v,ot)|0,n=n+Math.imul(v,at)|0,n=n+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(p,ut)|0,n=n+Math.imul(p,ht)|0,n=n+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,i=i+Math.imul(l,lt)|0,n=n+Math.imul(l,ct)|0,n=n+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var Et=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(j,U),n=Math.imul(j,F),n=n+Math.imul(D,U)|0,o=Math.imul(D,F),i=i+Math.imul(N,K)|0,n=n+Math.imul(N,W)|0,n=n+Math.imul(B,K)|0,o=o+Math.imul(B,W)|0,i=i+Math.imul(O,Z)|0,n=n+Math.imul(O,Y)|0,n=n+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul($,G)|0,n=n+Math.imul($,X)|0,n=n+Math.imul(T,G)|0,o=o+Math.imul(T,X)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(x,tt)|0,n=n+Math.imul(k,Q)|0,o=o+Math.imul(k,tt)|0,i=i+Math.imul(S,rt)|0,n=n+Math.imul(S,it)|0,n=n+Math.imul(E,rt)|0,o=o+Math.imul(E,it)|0,i=i+Math.imul(w,ot)|0,n=n+Math.imul(w,at)|0,n=n+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,i=i+Math.imul(v,ut)|0,n=n+Math.imul(v,ht)|0,n=n+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,i=i+Math.imul(p,lt)|0,n=n+Math.imul(p,ct)|0,n=n+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,i=i+Math.imul(l,pt)|0,n=n+Math.imul(l,mt)|0,n=n+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(j,K),n=Math.imul(j,W),n=n+Math.imul(D,K)|0,o=Math.imul(D,W),i=i+Math.imul(N,Z)|0,n=n+Math.imul(N,Y)|0,n=n+Math.imul(B,Z)|0,o=o+Math.imul(B,Y)|0,i=i+Math.imul(O,G)|0,n=n+Math.imul(O,X)|0,n=n+Math.imul(C,G)|0,o=o+Math.imul(C,X)|0,i=i+Math.imul($,Q)|0,n=n+Math.imul($,tt)|0,n=n+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,i=i+Math.imul(x,rt)|0,n=n+Math.imul(x,it)|0,n=n+Math.imul(k,rt)|0,o=o+Math.imul(k,it)|0,i=i+Math.imul(S,ot)|0,n=n+Math.imul(S,at)|0,n=n+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,i=i+Math.imul(w,ut)|0,n=n+Math.imul(w,ht)|0,n=n+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,i=i+Math.imul(v,lt)|0,n=n+Math.imul(v,ct)|0,n=n+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,i=i+Math.imul(p,pt)|0,n=n+Math.imul(p,mt)|0,n=n+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var xt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(j,Z),n=Math.imul(j,Y),n=n+Math.imul(D,Z)|0,o=Math.imul(D,Y),i=i+Math.imul(N,G)|0,n=n+Math.imul(N,X)|0,n=n+Math.imul(B,G)|0,o=o+Math.imul(B,X)|0,i=i+Math.imul(O,Q)|0,n=n+Math.imul(O,tt)|0,n=n+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul($,rt)|0,n=n+Math.imul($,it)|0,n=n+Math.imul(T,rt)|0,o=o+Math.imul(T,it)|0,i=i+Math.imul(x,ot)|0,n=n+Math.imul(x,at)|0,n=n+Math.imul(k,ot)|0,o=o+Math.imul(k,at)|0,i=i+Math.imul(S,ut)|0,n=n+Math.imul(S,ht)|0,n=n+Math.imul(E,ut)|0,o=o+Math.imul(E,ht)|0,i=i+Math.imul(w,lt)|0,n=n+Math.imul(w,ct)|0,n=n+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,i=i+Math.imul(v,pt)|0,n=n+Math.imul(v,mt)|0,n=n+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var kt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(j,G),n=Math.imul(j,X),n=n+Math.imul(D,G)|0,o=Math.imul(D,X),i=i+Math.imul(N,Q)|0,n=n+Math.imul(N,tt)|0,n=n+Math.imul(B,Q)|0,o=o+Math.imul(B,tt)|0,i=i+Math.imul(O,rt)|0,n=n+Math.imul(O,it)|0,n=n+Math.imul(C,rt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul($,ot)|0,n=n+Math.imul($,at)|0,n=n+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,i=i+Math.imul(x,ut)|0,n=n+Math.imul(x,ht)|0,n=n+Math.imul(k,ut)|0,o=o+Math.imul(k,ht)|0,i=i+Math.imul(S,lt)|0,n=n+Math.imul(S,ct)|0,n=n+Math.imul(E,lt)|0,o=o+Math.imul(E,ct)|0,i=i+Math.imul(w,pt)|0,n=n+Math.imul(w,mt)|0,n=n+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,i=Math.imul(j,Q),n=Math.imul(j,tt),n=n+Math.imul(D,Q)|0,o=Math.imul(D,tt),i=i+Math.imul(N,rt)|0,n=n+Math.imul(N,it)|0,n=n+Math.imul(B,rt)|0,o=o+Math.imul(B,it)|0,i=i+Math.imul(O,ot)|0,n=n+Math.imul(O,at)|0,n=n+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul($,ut)|0,n=n+Math.imul($,ht)|0,n=n+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,i=i+Math.imul(x,lt)|0,n=n+Math.imul(x,ct)|0,n=n+Math.imul(k,lt)|0,o=o+Math.imul(k,ct)|0,i=i+Math.imul(S,pt)|0,n=n+Math.imul(S,mt)|0,n=n+Math.imul(E,pt)|0,o=o+Math.imul(E,mt)|0;var $t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+($t>>>26)|0,$t&=67108863,i=Math.imul(j,rt),n=Math.imul(j,it),n=n+Math.imul(D,rt)|0,o=Math.imul(D,it),i=i+Math.imul(N,ot)|0,n=n+Math.imul(N,at)|0,n=n+Math.imul(B,ot)|0,o=o+Math.imul(B,at)|0,i=i+Math.imul(O,ut)|0,n=n+Math.imul(O,ht)|0,n=n+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,i=i+Math.imul($,lt)|0,n=n+Math.imul($,ct)|0,n=n+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,i=i+Math.imul(x,pt)|0,n=n+Math.imul(x,mt)|0,n=n+Math.imul(k,pt)|0,o=o+Math.imul(k,mt)|0;var Tt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(j,ot),n=Math.imul(j,at),n=n+Math.imul(D,ot)|0,o=Math.imul(D,at),i=i+Math.imul(N,ut)|0,n=n+Math.imul(N,ht)|0,n=n+Math.imul(B,ut)|0,o=o+Math.imul(B,ht)|0,i=i+Math.imul(O,lt)|0,n=n+Math.imul(O,ct)|0,n=n+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,i=i+Math.imul($,pt)|0,n=n+Math.imul($,mt)|0,n=n+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(j,ut),n=Math.imul(j,ht),n=n+Math.imul(D,ut)|0,o=Math.imul(D,ht),i=i+Math.imul(N,lt)|0,n=n+Math.imul(N,ct)|0,n=n+Math.imul(B,lt)|0,o=o+Math.imul(B,ct)|0,i=i+Math.imul(O,pt)|0,n=n+Math.imul(O,mt)|0,n=n+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(j,lt),n=Math.imul(j,ct),n=n+Math.imul(D,lt)|0,o=Math.imul(D,ct),i=i+Math.imul(N,pt)|0,n=n+Math.imul(N,mt)|0,n=n+Math.imul(B,pt)|0,o=o+Math.imul(B,mt)|0;var Ct=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(j,pt),n=Math.imul(j,mt),n=n+Math.imul(D,pt)|0,o=Math.imul(D,mt);var Lt=(h+i|0)+((8191&n)<<13)|0;return h=(o+(n>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,u[0]=bt,u[1]=vt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=St,u[8]=Et,u[9]=At,u[10]=xt,u[11]=kt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Lt,0!==h&&(u[19]=h,r.length++),r};function g(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var i=0,n=0,o=0;o>>26)|0,n+=a>>>26,a&=67108863}r.words[o]=s,i=a,a=n}return 0!==i?r.words[o]=i:r.length--,r._strip()}function y(t,e,r){return g(t,e,r)}function w(t,e){this.x=t,this.y=e}Math.imul||(v=b),o.prototype.mulTo=function(t,e){var r,i=this.length+t.length;return r=10===this.length&&10===t.length?v(this,t,e):i<63?b(this,t,e):i<1024?g(this,t,e):y(this,t,e),r},w.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,i=0;i>=1;return i},w.prototype.permute=function(t,e,r,i,n,o){for(var a=0;a>>=1)n++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,r+=o/67108864|0,r+=a>>>26,this.words[n]=67108863&a}return 0!==r&&(this.words[n]=r,this.length++),e?this.ineg():this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=m(t);if(0===e.length)return new o(1);for(var r=this,i=0;i=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=n);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this._strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this._strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,i=this.clone(),n=t,a=0|n.words[n.length-1],s=this._countBits(a);r=26-s,0!==r&&(n=n.ushln(r),i.iushln(r),a=0|n.words[n.length-1]);var u,h=i.length-n.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|i.words[n.length+c])+(0|i.words[n.length+c-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(n,d,c);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(n,1,c),i.isZero()||(i.negative^=1);u&&(u.words[c]=d)}return u&&u._strip(),i._strip(),"div"!==e&&0!==r&&i.iushrn(r),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modrn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),n=t.andln(1),o=r.cmp(i);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modrn=function(t){var e=t<0;e&&(t=-t),i(t<=67108863);for(var r=(1<<26)%t,n=0,o=this.length-1;o>=0;o--)n=(r*n+(0|this.words[o]))%t;return e?-n:n},o.prototype.modn=function(t){return this.modrn(t)},o.prototype.idivn=function(t){var e=t<0;e&&(t=-t),i(t<=67108863);for(var r=0,n=this.length-1;n>=0;n--){var o=(0|this.words[n])+67108864*r;this.words[n]=o/t|0,r=o%t}return this._strip(),e?this.ineg():this},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(n.isOdd()||a.isOdd())&&(n.iadd(f),a.isub(l)),n.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),n.isub(s),a.isub(u)):(r.isub(e),s.isub(n),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return n=0===e.cmpn(1)?a:s,n.cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var i=0;e.isEven()&&r.isEven();i++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var n=e.cmp(r);if(n<0){var o=e;e=r,r=o}else if(0===n||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var i=0|this.words[r],n=0|t.words[r];if(i!==n){in&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new k(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var M={k256:null,p224:null,p192:null,p25519:null};function _(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function S(){_.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function E(){_.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function A(){_.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function x(){_.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function k(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function R(t){k.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}_.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},_.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var i=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},_.prototype.split=function(t,e){t.iushrn(this.n,0,e)},_.prototype.imulK=function(t){return t.imul(this.k)},n(S,_),S.prototype.split=function(t,e){for(var r=4194303,i=Math.min(t.length,9),n=0;n>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},S.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=n,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(M[t])return M[t];var e;if("k256"===t)e=new S;else if("p224"===t)e=new E;else if("p192"===t)e=new A;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new x}return M[t]=e,e},k.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},k.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},k.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(h(t,t.umod(this.m)._forceRed(this)),t)},k.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},k.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},k.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},k.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},k.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},k.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},k.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},k.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},k.prototype.isqr=function(t){return this.imul(t,t.clone())},k.prototype.sqr=function(t){return this.mul(t,t)},k.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var n=this.m.subn(1),a=0;while(!n.isZero()&&0===n.andln(1))a++,n.iushrn(1);i(!n.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,n),c=this.pow(t,n.addn(1).iushrn(1)),d=this.pow(t,n),p=a;while(0!==d.cmp(s)){for(var m=d,b=0;0!==m.cmp(s);b++)m=m.redSqr();i(b=0;n--){for(var f=e.words[n],l=h-1;l>=0;l--){var c=f>>l&1;a!==i[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===n&&0===l)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}h=26}return a},k.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},k.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new R(t)},n(R,k),R.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},R.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},R.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},R.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},R.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},"39a9":function(t,e,r){ -/*! safe-buffer. MIT License. Feross Aboukhadijeh */ -var i=r("b639"),n=i.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function a(t,e,r){return n(t,e,r)}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=i:(o(i,e),e.Buffer=a),a.prototype=Object.create(n.prototype),o(n,a),a.from=function(t,e,r){if("number"===typeof t)throw new TypeError("Argument must not be a number");return n(t,e,r)},a.alloc=function(t,e,r){if("number"!==typeof t)throw new TypeError("Argument must be a number");var i=n(t);return void 0!==e?"string"===typeof r?i.fill(e,r):i.fill(e):i.fill(0),i},a.allocUnsafe=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return n(t)},a.allocUnsafeSlow=function(t){if("number"!==typeof t)throw new TypeError("Argument must be a number");return i.SlowBuffer(t)}},"39f5":function(t,e,r){var i=r("8707").Buffer;function n(t){i.isBuffer(t)||(t=i.from(t));for(var e=t.length/4|0,r=new Array(e),n=0;n>>24]^f[p>>>16&255]^l[m>>>8&255]^c[255&b]^e[v++],a=h[p>>>24]^f[m>>>16&255]^l[b>>>8&255]^c[255&d]^e[v++],s=h[m>>>24]^f[b>>>16&255]^l[d>>>8&255]^c[255&p]^e[v++],u=h[b>>>24]^f[d>>>16&255]^l[p>>>8&255]^c[255&m]^e[v++],d=o,p=a,m=s,b=u;return o=(i[d>>>24]<<24|i[p>>>16&255]<<16|i[m>>>8&255]<<8|i[255&b])^e[v++],a=(i[p>>>24]<<24|i[m>>>16&255]<<16|i[b>>>8&255]<<8|i[255&d])^e[v++],s=(i[m>>>24]<<24|i[b>>>16&255]<<16|i[d>>>8&255]<<8|i[255&p])^e[v++],u=(i[b>>>24]<<24|i[d>>>16&255]<<16|i[p>>>8&255]<<8|i[255&m])^e[v++],o>>>=0,a>>>=0,s>>>=0,u>>>=0,[o,a,s,u]}var s=[0,1,2,4,8,16,32,64,128,27,54],u=function(){for(var t=new Array(256),e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var r=[],i=[],n=[[],[],[],[]],o=[[],[],[],[]],a=0,s=0,u=0;u<256;++u){var h=s^s<<1^s<<2^s<<3^s<<4;h=h>>>8^255&h^99,r[a]=h,i[h]=a;var f=t[a],l=t[f],c=t[l],d=257*t[h]^16843008*h;n[0][a]=d<<24|d>>>8,n[1][a]=d<<16|d>>>16,n[2][a]=d<<8|d>>>24,n[3][a]=d,d=16843009*c^65537*l^257*f^16843008*a,o[0][h]=d<<24|d>>>8,o[1][h]=d<<16|d>>>16,o[2][h]=d<<8|d>>>24,o[3][h]=d,0===a?a=s=1:(a=f^t[t[t[c^f]]],s^=t[t[s]])}return{SBOX:r,INV_SBOX:i,SUB_MIX:n,INV_SUB_MIX:o}}();function h(t){this._key=n(t),this._reset()}h.blockSize=16,h.keySize=32,h.prototype.blockSize=h.blockSize,h.prototype.keySize=h.keySize,h.prototype._reset=function(){for(var t=this._key,e=t.length,r=e+6,i=4*(r+1),n=[],o=0;o>>24,a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a],a^=s[o/e|0]<<24):e>6&&o%e===4&&(a=u.SBOX[a>>>24]<<24|u.SBOX[a>>>16&255]<<16|u.SBOX[a>>>8&255]<<8|u.SBOX[255&a]),n[o]=n[o-e]^a}for(var h=[],f=0;f>>24]]^u.INV_SUB_MIX[1][u.SBOX[c>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[c>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&c]]}this._nRounds=r,this._keySchedule=n,this._invKeySchedule=h},h.prototype.encryptBlockRaw=function(t){return t=n(t),a(t,this._keySchedule,u.SUB_MIX,u.SBOX,this._nRounds)},h.prototype.encryptBlock=function(t){var e=this.encryptBlockRaw(t),r=i.allocUnsafe(16);return r.writeUInt32BE(e[0],0),r.writeUInt32BE(e[1],4),r.writeUInt32BE(e[2],8),r.writeUInt32BE(e[3],12),r},h.prototype.decryptBlock=function(t){t=n(t);var e=t[1];t[1]=t[3],t[3]=e;var r=a(t,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX,this._nRounds),o=i.allocUnsafe(16);return o.writeUInt32BE(r[0],0),o.writeUInt32BE(r[3],4),o.writeUInt32BE(r[2],8),o.writeUInt32BE(r[1],12),o},h.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},t.exports.AES=h},"3a7b":function(t,e,r){"use strict";var i=r("ebb5"),n=r("b727").findIndex,o=i.aTypedArray,a=i.exportTypedArrayMethod;a("findIndex",(function(t){return n(o(this),t,arguments.length>1?arguments[1]:void 0)}))},"3a7c":function(t,e,r){(function(t){function r(t){return Array.isArray?Array.isArray(t):"[object Array]"===b(t)}function i(t){return"boolean"===typeof t}function n(t){return null===t}function o(t){return null==t}function a(t){return"number"===typeof t}function s(t){return"string"===typeof t}function u(t){return"symbol"===typeof t}function h(t){return void 0===t}function f(t){return"[object RegExp]"===b(t)}function l(t){return"object"===typeof t&&null!==t}function c(t){return"[object Date]"===b(t)}function d(t){return"[object Error]"===b(t)||t instanceof Error}function p(t){return"function"===typeof t}function m(t){return null===t||"boolean"===typeof t||"number"===typeof t||"string"===typeof t||"symbol"===typeof t||"undefined"===typeof t}function b(t){return Object.prototype.toString.call(t)}e.isArray=r,e.isBoolean=i,e.isNull=n,e.isNullOrUndefined=o,e.isNumber=a,e.isString=s,e.isSymbol=u,e.isUndefined=h,e.isRegExp=f,e.isObject=l,e.isDate=c,e.isError=d,e.isFunction=p,e.isPrimitive=m,e.isBuffer=t.isBuffer}).call(this,r("b639").Buffer)},"3bbe":function(t,e,r){var i=r("861d");t.exports=function(t){if(!i(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},"3c5d":function(t,e,r){"use strict";var i=r("ebb5"),n=r("50c4"),o=r("182d"),a=r("7b0b"),s=r("d039"),u=i.aTypedArray,h=i.exportTypedArrayMethod,f=s((function(){new Int8Array(1).set({})}));h("set",(function(t){u(this);var e=o(arguments.length>1?arguments[1]:void 0,1),r=this.length,i=a(t),s=n(i.length),h=0;if(s+e>r)throw RangeError("Wrong length");while(h=r.length?{value:void 0,done:!0}:(t=i(r,n),e.index+=t.length,{value:t,done:!1})}))},"3daf":function(t,e,r){"use strict";var i=r("f3a3"),n=r("80af"),o=r("3fb5"),a=r("ea53"),s=i.assert;function u(t){this.twisted=1!==(0|t.a),this.mOneA=this.twisted&&-1===(0|t.a),this.extended=this.mOneA,a.call(this,"edwards",t),this.a=new n(t.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new n(t.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new n(t.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1===(0|t.c)}function h(t,e,r,i,o){a.BasePoint.call(this,t,"projective"),null===e&&null===r&&null===i?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new n(e,16),this.y=new n(r,16),this.z=i?new n(i,16):this.curve.one,this.t=o&&new n(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(u,a),t.exports=u,u.prototype._mulA=function(t){return this.mOneA?t.redNeg():this.a.redMul(t)},u.prototype._mulC=function(t){return this.oneC?t:this.c.redMul(t)},u.prototype.jpoint=function(t,e,r,i){return this.point(t,e,r,i)},u.prototype.pointFromX=function(t,e){t=new n(t,16),t.red||(t=t.toRed(this.red));var r=t.redSqr(),i=this.c2.redSub(this.a.redMul(r)),o=this.one.redSub(this.c2.redMul(this.d).redMul(r)),a=i.redMul(o.redInvm()),s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");var u=s.fromRed().isOdd();return(e&&!u||!e&&u)&&(s=s.redNeg()),this.point(t,s)},u.prototype.pointFromY=function(t,e){t=new n(t,16),t.red||(t=t.toRed(this.red));var r=t.redSqr(),i=r.redSub(this.c2),o=r.redMul(this.d).redMul(this.c2).redSub(this.a),a=i.redMul(o.redInvm());if(0===a.cmp(this.zero)){if(e)throw new Error("invalid point");return this.point(this.zero,t)}var s=a.redSqrt();if(0!==s.redSqr().redSub(a).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==e&&(s=s.redNeg()),this.point(s,t)},u.prototype.validate=function(t){if(t.isInfinity())return!0;t.normalize();var e=t.x.redSqr(),r=t.y.redSqr(),i=e.redMul(this.a).redAdd(r),n=this.c2.redMul(this.one.redAdd(this.d.redMul(e).redMul(r)));return 0===i.cmp(n)},o(h,a.BasePoint),u.prototype.pointFromJSON=function(t){return h.fromJSON(this,t)},u.prototype.point=function(t,e,r,i){return new h(this,t,e,r,i)},h.fromJSON=function(t,e){return new h(t,e[0],e[1],e[2])},h.prototype.inspect=function(){return this.isInfinity()?"":""},h.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},h.prototype._extDbl=function(){var t=this.x.redSqr(),e=this.y.redSqr(),r=this.z.redSqr();r=r.redIAdd(r);var i=this.curve._mulA(t),n=this.x.redAdd(this.y).redSqr().redISub(t).redISub(e),o=i.redAdd(e),a=o.redSub(r),s=i.redSub(e),u=n.redMul(a),h=o.redMul(s),f=n.redMul(s),l=a.redMul(o);return this.curve.point(u,h,l,f)},h.prototype._projDbl=function(){var t,e,r,i=this.x.redAdd(this.y).redSqr(),n=this.x.redSqr(),o=this.y.redSqr();if(this.curve.twisted){var a=this.curve._mulA(n),s=a.redAdd(o);if(this.zOne)t=i.redSub(n).redSub(o).redMul(s.redSub(this.curve.two)),e=s.redMul(a.redSub(o)),r=s.redSqr().redSub(s).redSub(s);else{var u=this.z.redSqr(),h=s.redSub(u).redISub(u);t=i.redSub(n).redISub(o).redMul(h),e=s.redMul(a.redSub(o)),r=s.redMul(h)}}else{a=n.redAdd(o),u=this.curve._mulC(this.z).redSqr(),h=a.redSub(u).redSub(u);t=this.curve._mulC(i.redISub(a)).redMul(h),e=this.curve._mulC(a).redMul(n.redISub(o)),r=a.redMul(h)}return this.curve.point(t,e,r)},h.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},h.prototype._extAdd=function(t){var e=this.y.redSub(this.x).redMul(t.y.redSub(t.x)),r=this.y.redAdd(this.x).redMul(t.y.redAdd(t.x)),i=this.t.redMul(this.curve.dd).redMul(t.t),n=this.z.redMul(t.z.redAdd(t.z)),o=r.redSub(e),a=n.redSub(i),s=n.redAdd(i),u=r.redAdd(e),h=o.redMul(a),f=s.redMul(u),l=o.redMul(u),c=a.redMul(s);return this.curve.point(h,f,c,l)},h.prototype._projAdd=function(t){var e,r,i=this.z.redMul(t.z),n=i.redSqr(),o=this.x.redMul(t.x),a=this.y.redMul(t.y),s=this.curve.d.redMul(o).redMul(a),u=n.redSub(s),h=n.redAdd(s),f=this.x.redAdd(this.y).redMul(t.x.redAdd(t.y)).redISub(o).redISub(a),l=i.redMul(u).redMul(f);return this.curve.twisted?(e=i.redMul(h).redMul(a.redSub(this.curve._mulA(o))),r=u.redMul(h)):(e=i.redMul(h).redMul(a.redSub(o)),r=this.curve._mulC(u).redMul(h)),this.curve.point(l,e,r)},h.prototype.add=function(t){return this.isInfinity()?t:t.isInfinity()?this:this.curve.extended?this._extAdd(t):this._projAdd(t)},h.prototype.mul=function(t){return this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve._wnafMul(this,t)},h.prototype.mulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!1)},h.prototype.jmulAdd=function(t,e,r){return this.curve._wnafMulAdd(1,[this,e],[t,r],2,!0)},h.prototype.normalize=function(){if(this.zOne)return this;var t=this.z.redInvm();return this.x=this.x.redMul(t),this.y=this.y.redMul(t),this.t&&(this.t=this.t.redMul(t)),this.z=this.curve.one,this.zOne=!0,this},h.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},h.prototype.getX=function(){return this.normalize(),this.x.fromRed()},h.prototype.getY=function(){return this.normalize(),this.y.fromRed()},h.prototype.eq=function(t){return this===t||0===this.getX().cmp(t.getX())&&0===this.getY().cmp(t.getY())},h.prototype.eqXToP=function(t){var e=t.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(e))return!0;for(var r=t.clone(),i=this.curve.redN.redMul(this.z);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(e.redIAdd(i),0===this.x.cmp(e))return!0}},h.prototype.toP=h.prototype.normalize,h.prototype.mixedAdd=h.prototype.add},"3e8f":function(t,e){},"3f62":function(t,e,r){var i=r("8707").Buffer,n=i.alloc(16,0);function o(t){return[t.readUInt32BE(0),t.readUInt32BE(4),t.readUInt32BE(8),t.readUInt32BE(12)]}function a(t){var e=i.allocUnsafe(16);return e.writeUInt32BE(t[0]>>>0,0),e.writeUInt32BE(t[1]>>>0,4),e.writeUInt32BE(t[2]>>>0,8),e.writeUInt32BE(t[3]>>>0,12),e}function s(t){this.h=t,this.state=i.alloc(16,0),this.cache=i.allocUnsafe(0)}s.prototype.ghash=function(t){var e=-1;while(++e0;t--)i[t]=i[t]>>>1|(1&i[t-1])<<31;i[0]=i[0]>>>1,r&&(i[0]=i[0]^225<<24)}this.state=a(n)},s.prototype.update=function(t){var e;this.cache=i.concat([this.cache,t]);while(this.cache.length>=16)e=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(e)},s.prototype.final=function(t,e){return this.cache.length&&this.ghash(i.concat([this.cache,n],16)),this.ghash(a([0,t,0,e])),this.state},t.exports=s},"3f8c":function(t,e){t.exports={}},"3fb5":function(t,e){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},"3fcc":function(t,e,r){"use strict";var i=r("ebb5"),n=r("b727").map,o=r("4840"),a=i.aTypedArray,s=i.aTypedArrayConstructor,u=i.exportTypedArrayMethod;u("map",(function(t){return n(a(this),t,arguments.length>1?arguments[1]:void 0,(function(t,e){return new(s(o(t,t.constructor)))(e)}))}))},4:function(t,e){},"409b":function(t,e){t.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},4111:function(t,e,r){"use strict";var i=r("7f7a");e.certificate=r("56b5");var n=i.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));e.RSAPrivateKey=n;var o=i.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));e.RSAPublicKey=o;var a=i.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}));e.PublicKey=a;var s=i.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),u=i.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())}));e.PrivateKey=u;var h=i.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));e.EncryptedPrivateKey=h;var f=i.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));e.DSAPrivateKey=f,e.DSAparam=i.define("DSAparam",(function(){this.int()}));var l=i.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(c),this.key("publicKey").optional().explicit(1).bitstr())}));e.ECPrivateKey=l;var c=i.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));e.signature=i.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},4136:function(t,e,r){"use strict";var i=e;i.base=r("ea53"),i.short=r("3300"),i.mont=r("676f"),i.edwards=r("3daf")},4186:function(t,e,r){"use strict";(function(e){var i;function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var o=r("ee93"),a=Symbol("lastResolve"),s=Symbol("lastReject"),u=Symbol("error"),h=Symbol("ended"),f=Symbol("lastPromise"),l=Symbol("handlePromise"),c=Symbol("stream");function d(t,e){return{value:t,done:e}}function p(t){var e=t[a];if(null!==e){var r=t[c].read();null!==r&&(t[f]=null,t[a]=null,t[s]=null,e(d(r,!1)))}}function m(t){e.nextTick(p,t)}function b(t,e){return function(r,i){t.then((function(){e[h]?r(d(void 0,!0)):e[l](r,i)}),i)}}var v=Object.getPrototypeOf((function(){})),g=Object.setPrototypeOf((i={get stream(){return this[c]},next:function(){var t=this,r=this[u];if(null!==r)return Promise.reject(r);if(this[h])return Promise.resolve(d(void 0,!0));if(this[c].destroyed)return new Promise((function(r,i){e.nextTick((function(){t[u]?i(t[u]):r(d(void 0,!0))}))}));var i,n=this[f];if(n)i=new Promise(b(n,this));else{var o=this[c].read();if(null!==o)return Promise.resolve(d(o,!1));i=new Promise(this[l])}return this[f]=i,i}},n(i,Symbol.asyncIterator,(function(){return this})),n(i,"return",(function(){var t=this;return new Promise((function(e,r){t[c].destroy(null,(function(t){t?r(t):e(d(void 0,!0))}))}))})),i),v),y=function(t){var e,r=Object.create(g,(e={},n(e,c,{value:t,writable:!0}),n(e,a,{value:null,writable:!0}),n(e,s,{value:null,writable:!0}),n(e,u,{value:null,writable:!0}),n(e,h,{value:t._readableState.endEmitted,writable:!0}),n(e,l,{value:function(t,e){var i=r[c].read();i?(r[f]=null,r[a]=null,r[s]=null,t(d(i,!1))):(r[a]=t,r[s]=e)},writable:!0}),e));return r[f]=null,o(t,(function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[s];return null!==e&&(r[f]=null,r[a]=null,r[s]=null,e(t)),void(r[u]=t)}var i=r[a];null!==i&&(r[f]=null,r[a]=null,r[s]=null,i(d(void 0,!0))),r[h]=!0})),t.on("readable",m.bind(null,r)),r};t.exports=y}).call(this,r("4362"))},"41df":function(t,e,r){var i=e;i.Reporter=r("d1c8").Reporter,i.DecoderBuffer=r("6283").DecoderBuffer,i.EncoderBuffer=r("6283").EncoderBuffer,i.Node=r("8360")},4228:function(t,e,r){var i=r("82f0"),n=r("8707").Buffer,o=r("bac2"),a=r("09f5"),s=r("6430"),u=r("39f5"),h=r("ae84"),f=r("3fb5");function l(t,e,r){s.call(this),this._cache=new c,this._last=void 0,this._cipher=new u.AES(e),this._prev=n.from(r),this._mode=t,this._autopadding=!0}function c(){this.cache=n.allocUnsafe(0)}function d(t){var e=t[15];if(e<1||e>16)throw new Error("unable to decrypt data");var r=-1;while(++r16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e}else if(this.cache.length>=16)return e=this.cache.slice(0,16),this.cache=this.cache.slice(16),e;return null},c.prototype.flush=function(){if(this.cache.length)return this.cache},e.createDecipher=m,e.createDecipheriv=p},4250:function(t,e,r){"use strict";(function(e,i){var n;t.exports=$,$.ReadableState=R;r("faa1").EventEmitter;var o=function(t,e){return t.listeners(e).length},a=r("5bbb"),s=r("b639").Buffer,u=e.Uint8Array||function(){};function h(t){return s.from(t)}function f(t){return s.isBuffer(t)||t instanceof u}var l,c=r(0);l=c&&c.debuglog?c.debuglog("stream"):function(){};var d,p,m,b=r("96a5"),v=r("493f"),g=r("b9b5"),y=g.getHighWaterMark,w=r("9d8a").codes,M=w.ERR_INVALID_ARG_TYPE,_=w.ERR_STREAM_PUSH_AFTER_EOF,S=w.ERR_METHOD_NOT_IMPLEMENTED,E=w.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r("3fb5")($,a);var A=v.errorOrDestroy,x=["error","close","destroy","pause","resume"];function k(t,e,r){if("function"===typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}function R(t,e,i){n=n||r("e666"),t=t||{},"boolean"!==typeof i&&(i=e instanceof n),this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=y(this,t,"readableHighWaterMark",i),this.buffer=new b,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(d||(d=r("7d72").StringDecoder),this.decoder=new d(t.encoding),this.encoding=t.encoding)}function $(t){if(n=n||r("e666"),!(this instanceof $))return new $(t);var e=this instanceof n;this._readableState=new R(t,this,e),this.readable=!0,t&&("function"===typeof t.read&&(this._read=t.read),"function"===typeof t.destroy&&(this._destroy=t.destroy)),a.call(this)}function T(t,e,r,i,n){l("readableAddChunk",e);var o,a=t._readableState;if(null===e)a.reading=!1,B(t,a);else if(n||(o=O(a,e)),o)A(t,o);else if(a.objectMode||e&&e.length>0)if("string"===typeof e||a.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=h(e)),i)a.endEmitted?A(t,new E):I(t,a,e,!0);else if(a.ended)A(t,new _);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?I(t,a,e,!1):D(t,a)):I(t,a,e,!1)}else i||(a.reading=!1,D(t,a));return!a.ended&&(a.length=C?t=C:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function N(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=L(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function B(t,e){if(l("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?P(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,j(t)))}}function P(t){var e=t._readableState;l("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(l("emitReadable",e.flowing),e.emittedReadable=!0,i.nextTick(j,t))}function j(t){var e=t._readableState;l("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,H(t)}function D(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(q,t,e))}function q(t,e){while(!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function z(t){l("readable nexttick read 0"),t.read(0)}function K(t,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(W,t,e))}function W(t,e){l("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),H(t),e.flowing&&!e.reading&&t.read(0)}function H(t){var e=t._readableState;l("flow",e.flowing);while(e.flowing&&null!==t.read());}function Z(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function Y(t){var e=t._readableState;l("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,i.nextTick(V,e,t))}function V(t,e){if(l("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function G(t,e){for(var r=0,i=t.length;r=e.highWaterMark:e.length>0)||e.ended))return l("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?Y(this):P(this),null;if(t=N(t,e),0===t&&e.ended)return 0===e.length&&Y(this),null;var i,n=e.needReadable;return l("need readable",n),(0===e.length||e.length-t0?Z(t,e):null,null===i?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&Y(this)),null!==i&&this.emit("data",i),i},$.prototype._read=function(t){A(this,new S("_read()"))},$.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t);break}n.pipesCount+=1,l("pipe count=%d opts=%j",n.pipesCount,e);var a=(!e||!1!==e.end)&&t!==i.stdout&&t!==i.stderr,s=a?h:g;function u(t,e){l("onunpipe"),t===r&&e&&!1===e.hasUnpiped&&(e.hasUnpiped=!0,d())}function h(){l("onend"),t.end()}n.endEmitted?i.nextTick(s):r.once("end",s),t.on("unpipe",u);var f=U(r);t.on("drain",f);var c=!1;function d(){l("cleanup"),t.removeListener("close",b),t.removeListener("finish",v),t.removeListener("drain",f),t.removeListener("error",m),t.removeListener("unpipe",u),r.removeListener("end",h),r.removeListener("end",g),r.removeListener("data",p),c=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||f()}function p(e){l("ondata");var i=t.write(e);l("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==G(n.pipes,t))&&!c&&(l("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function m(e){l("onerror",e),g(),t.removeListener("error",m),0===o(t,"error")&&A(t,e)}function b(){t.removeListener("finish",v),g()}function v(){l("onfinish"),t.removeListener("close",b),g()}function g(){l("unpipe"),r.unpipe(t)}return r.on("data",p),k(t,"error",m),t.once("close",b),t.once("finish",v),t.emit("pipe",r),n.flowing||(l("pipe resume"),r.resume()),t},$.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,l("on readable",n.length,n.reading),n.length?P(this):n.reading||i.nextTick(z,this))),r},$.prototype.addListener=$.prototype.on,$.prototype.removeListener=function(t,e){var r=a.prototype.removeListener.call(this,t,e);return"readable"===t&&i.nextTick(F,this),r},$.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||i.nextTick(F,this),e},$.prototype.resume=function(){var t=this._readableState;return t.flowing||(l("resume"),t.flowing=!t.readableListening,K(this,t)),t.paused=!1,this},$.prototype.pause=function(){return l("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(l("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},$.prototype.wrap=function(t){var e=this,r=this._readableState,i=!1;for(var n in t.on("end",(function(){if(l("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(n){if(l("wrapped data"),r.decoder&&(n=r.decoder.write(n)),(!r.objectMode||null!==n&&void 0!==n)&&(r.objectMode||n&&n.length)){var o=e.push(n);o||(i=!0,t.pause())}})),t)void 0===this[n]&&"function"===typeof t[n]&&(this[n]=function(e){return function(){return t[e].apply(t,arguments)}}(n));for(var o=0;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return i}function u(t,e,r,i){for(var n=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var n=0;"-"===t[0]&&n++,16===e?this._parseHex(t,n):this._parseBase(t,e,n),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(i("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)n=s(t,r,r+6),this.words[i]|=n<>>26-o&4194303,o+=24,o>=26&&(o-=26,i++);r+6!==e&&(n=s(t,e,r+6),this.words[i]|=n<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=e)i++;i--,n=n/e|0;for(var o=t.length-r,a=o%i,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>n}return e}function d(t,e,r){r.negative=e.negative^t.negative;var i=t.length+e.length|0;r.length=i,i=i-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;n=0|t.words[p],o=0|e.words[d],a=n*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,n+=2,n>=26&&(n-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,i=t):(r=t,i=this);for(var n=0,o=0;o>>26;for(;0!==n&&o>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,i,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=t):(r=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,b=0|a[2],v=8191&b,g=b>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],S=8191&_,E=_>>>13,A=0|a[5],x=8191&A,k=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,L=0|a[8],N=8191&L,B=L>>>13,P=0|a[9],j=8191&P,D=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],K=8191&z,W=z>>>13,H=0|s[2],Z=8191&H,Y=H>>>13,V=0|s[3],G=8191&V,X=V>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,it=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,i=Math.imul(l,U),n=Math.imul(l,F),n=n+Math.imul(c,U)|0,o=Math.imul(c,F);var bt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(p,U),n=Math.imul(p,F),n=n+Math.imul(m,U)|0,o=Math.imul(m,F),i=i+Math.imul(l,K)|0,n=n+Math.imul(l,W)|0,n=n+Math.imul(c,K)|0,o=o+Math.imul(c,W)|0;var vt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,U),n=Math.imul(v,F),n=n+Math.imul(g,U)|0,o=Math.imul(g,F),i=i+Math.imul(p,K)|0,n=n+Math.imul(p,W)|0,n=n+Math.imul(m,K)|0,o=o+Math.imul(m,W)|0,i=i+Math.imul(l,Z)|0,n=n+Math.imul(l,Y)|0,n=n+Math.imul(c,Z)|0,o=o+Math.imul(c,Y)|0;var gt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,i=Math.imul(w,U),n=Math.imul(w,F),n=n+Math.imul(M,U)|0,o=Math.imul(M,F),i=i+Math.imul(v,K)|0,n=n+Math.imul(v,W)|0,n=n+Math.imul(g,K)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(p,Z)|0,n=n+Math.imul(p,Y)|0,n=n+Math.imul(m,Z)|0,o=o+Math.imul(m,Y)|0,i=i+Math.imul(l,G)|0,n=n+Math.imul(l,X)|0,n=n+Math.imul(c,G)|0,o=o+Math.imul(c,X)|0;var yt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(S,U),n=Math.imul(S,F),n=n+Math.imul(E,U)|0,o=Math.imul(E,F),i=i+Math.imul(w,K)|0,n=n+Math.imul(w,W)|0,n=n+Math.imul(M,K)|0,o=o+Math.imul(M,W)|0,i=i+Math.imul(v,Z)|0,n=n+Math.imul(v,Y)|0,n=n+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(p,G)|0,n=n+Math.imul(p,X)|0,n=n+Math.imul(m,G)|0,o=o+Math.imul(m,X)|0,i=i+Math.imul(l,Q)|0,n=n+Math.imul(l,tt)|0,n=n+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(x,U),n=Math.imul(x,F),n=n+Math.imul(k,U)|0,o=Math.imul(k,F),i=i+Math.imul(S,K)|0,n=n+Math.imul(S,W)|0,n=n+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,i=i+Math.imul(w,Z)|0,n=n+Math.imul(w,Y)|0,n=n+Math.imul(M,Z)|0,o=o+Math.imul(M,Y)|0,i=i+Math.imul(v,G)|0,n=n+Math.imul(v,X)|0,n=n+Math.imul(g,G)|0,o=o+Math.imul(g,X)|0,i=i+Math.imul(p,Q)|0,n=n+Math.imul(p,tt)|0,n=n+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,i=i+Math.imul(l,rt)|0,n=n+Math.imul(l,it)|0,n=n+Math.imul(c,rt)|0,o=o+Math.imul(c,it)|0;var Mt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul($,U),n=Math.imul($,F),n=n+Math.imul(T,U)|0,o=Math.imul(T,F),i=i+Math.imul(x,K)|0,n=n+Math.imul(x,W)|0,n=n+Math.imul(k,K)|0,o=o+Math.imul(k,W)|0,i=i+Math.imul(S,Z)|0,n=n+Math.imul(S,Y)|0,n=n+Math.imul(E,Z)|0,o=o+Math.imul(E,Y)|0,i=i+Math.imul(w,G)|0,n=n+Math.imul(w,X)|0,n=n+Math.imul(M,G)|0,o=o+Math.imul(M,X)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(v,tt)|0,n=n+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(p,rt)|0,n=n+Math.imul(p,it)|0,n=n+Math.imul(m,rt)|0,o=o+Math.imul(m,it)|0,i=i+Math.imul(l,ot)|0,n=n+Math.imul(l,at)|0,n=n+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(O,U),n=Math.imul(O,F),n=n+Math.imul(C,U)|0,o=Math.imul(C,F),i=i+Math.imul($,K)|0,n=n+Math.imul($,W)|0,n=n+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,i=i+Math.imul(x,Z)|0,n=n+Math.imul(x,Y)|0,n=n+Math.imul(k,Z)|0,o=o+Math.imul(k,Y)|0,i=i+Math.imul(S,G)|0,n=n+Math.imul(S,X)|0,n=n+Math.imul(E,G)|0,o=o+Math.imul(E,X)|0,i=i+Math.imul(w,Q)|0,n=n+Math.imul(w,tt)|0,n=n+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,i=i+Math.imul(v,rt)|0,n=n+Math.imul(v,it)|0,n=n+Math.imul(g,rt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(p,ot)|0,n=n+Math.imul(p,at)|0,n=n+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,i=i+Math.imul(l,ut)|0,n=n+Math.imul(l,ht)|0,n=n+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var St=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(N,U),n=Math.imul(N,F),n=n+Math.imul(B,U)|0,o=Math.imul(B,F),i=i+Math.imul(O,K)|0,n=n+Math.imul(O,W)|0,n=n+Math.imul(C,K)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul($,Z)|0,n=n+Math.imul($,Y)|0,n=n+Math.imul(T,Z)|0,o=o+Math.imul(T,Y)|0,i=i+Math.imul(x,G)|0,n=n+Math.imul(x,X)|0,n=n+Math.imul(k,G)|0,o=o+Math.imul(k,X)|0,i=i+Math.imul(S,Q)|0,n=n+Math.imul(S,tt)|0,n=n+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,i=i+Math.imul(w,rt)|0,n=n+Math.imul(w,it)|0,n=n+Math.imul(M,rt)|0,o=o+Math.imul(M,it)|0,i=i+Math.imul(v,ot)|0,n=n+Math.imul(v,at)|0,n=n+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(p,ut)|0,n=n+Math.imul(p,ht)|0,n=n+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,i=i+Math.imul(l,lt)|0,n=n+Math.imul(l,ct)|0,n=n+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var Et=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(j,U),n=Math.imul(j,F),n=n+Math.imul(D,U)|0,o=Math.imul(D,F),i=i+Math.imul(N,K)|0,n=n+Math.imul(N,W)|0,n=n+Math.imul(B,K)|0,o=o+Math.imul(B,W)|0,i=i+Math.imul(O,Z)|0,n=n+Math.imul(O,Y)|0,n=n+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul($,G)|0,n=n+Math.imul($,X)|0,n=n+Math.imul(T,G)|0,o=o+Math.imul(T,X)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(x,tt)|0,n=n+Math.imul(k,Q)|0,o=o+Math.imul(k,tt)|0,i=i+Math.imul(S,rt)|0,n=n+Math.imul(S,it)|0,n=n+Math.imul(E,rt)|0,o=o+Math.imul(E,it)|0,i=i+Math.imul(w,ot)|0,n=n+Math.imul(w,at)|0,n=n+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,i=i+Math.imul(v,ut)|0,n=n+Math.imul(v,ht)|0,n=n+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,i=i+Math.imul(p,lt)|0,n=n+Math.imul(p,ct)|0,n=n+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,i=i+Math.imul(l,pt)|0,n=n+Math.imul(l,mt)|0,n=n+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(j,K),n=Math.imul(j,W),n=n+Math.imul(D,K)|0,o=Math.imul(D,W),i=i+Math.imul(N,Z)|0,n=n+Math.imul(N,Y)|0,n=n+Math.imul(B,Z)|0,o=o+Math.imul(B,Y)|0,i=i+Math.imul(O,G)|0,n=n+Math.imul(O,X)|0,n=n+Math.imul(C,G)|0,o=o+Math.imul(C,X)|0,i=i+Math.imul($,Q)|0,n=n+Math.imul($,tt)|0,n=n+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,i=i+Math.imul(x,rt)|0,n=n+Math.imul(x,it)|0,n=n+Math.imul(k,rt)|0,o=o+Math.imul(k,it)|0,i=i+Math.imul(S,ot)|0,n=n+Math.imul(S,at)|0,n=n+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,i=i+Math.imul(w,ut)|0,n=n+Math.imul(w,ht)|0,n=n+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,i=i+Math.imul(v,lt)|0,n=n+Math.imul(v,ct)|0,n=n+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,i=i+Math.imul(p,pt)|0,n=n+Math.imul(p,mt)|0,n=n+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var xt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(j,Z),n=Math.imul(j,Y),n=n+Math.imul(D,Z)|0,o=Math.imul(D,Y),i=i+Math.imul(N,G)|0,n=n+Math.imul(N,X)|0,n=n+Math.imul(B,G)|0,o=o+Math.imul(B,X)|0,i=i+Math.imul(O,Q)|0,n=n+Math.imul(O,tt)|0,n=n+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul($,rt)|0,n=n+Math.imul($,it)|0,n=n+Math.imul(T,rt)|0,o=o+Math.imul(T,it)|0,i=i+Math.imul(x,ot)|0,n=n+Math.imul(x,at)|0,n=n+Math.imul(k,ot)|0,o=o+Math.imul(k,at)|0,i=i+Math.imul(S,ut)|0,n=n+Math.imul(S,ht)|0,n=n+Math.imul(E,ut)|0,o=o+Math.imul(E,ht)|0,i=i+Math.imul(w,lt)|0,n=n+Math.imul(w,ct)|0,n=n+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,i=i+Math.imul(v,pt)|0,n=n+Math.imul(v,mt)|0,n=n+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var kt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(j,G),n=Math.imul(j,X),n=n+Math.imul(D,G)|0,o=Math.imul(D,X),i=i+Math.imul(N,Q)|0,n=n+Math.imul(N,tt)|0,n=n+Math.imul(B,Q)|0,o=o+Math.imul(B,tt)|0,i=i+Math.imul(O,rt)|0,n=n+Math.imul(O,it)|0,n=n+Math.imul(C,rt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul($,ot)|0,n=n+Math.imul($,at)|0,n=n+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,i=i+Math.imul(x,ut)|0,n=n+Math.imul(x,ht)|0,n=n+Math.imul(k,ut)|0,o=o+Math.imul(k,ht)|0,i=i+Math.imul(S,lt)|0,n=n+Math.imul(S,ct)|0,n=n+Math.imul(E,lt)|0,o=o+Math.imul(E,ct)|0,i=i+Math.imul(w,pt)|0,n=n+Math.imul(w,mt)|0,n=n+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,i=Math.imul(j,Q),n=Math.imul(j,tt),n=n+Math.imul(D,Q)|0,o=Math.imul(D,tt),i=i+Math.imul(N,rt)|0,n=n+Math.imul(N,it)|0,n=n+Math.imul(B,rt)|0,o=o+Math.imul(B,it)|0,i=i+Math.imul(O,ot)|0,n=n+Math.imul(O,at)|0,n=n+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul($,ut)|0,n=n+Math.imul($,ht)|0,n=n+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,i=i+Math.imul(x,lt)|0,n=n+Math.imul(x,ct)|0,n=n+Math.imul(k,lt)|0,o=o+Math.imul(k,ct)|0,i=i+Math.imul(S,pt)|0,n=n+Math.imul(S,mt)|0,n=n+Math.imul(E,pt)|0,o=o+Math.imul(E,mt)|0;var $t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+($t>>>26)|0,$t&=67108863,i=Math.imul(j,rt),n=Math.imul(j,it),n=n+Math.imul(D,rt)|0,o=Math.imul(D,it),i=i+Math.imul(N,ot)|0,n=n+Math.imul(N,at)|0,n=n+Math.imul(B,ot)|0,o=o+Math.imul(B,at)|0,i=i+Math.imul(O,ut)|0,n=n+Math.imul(O,ht)|0,n=n+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,i=i+Math.imul($,lt)|0,n=n+Math.imul($,ct)|0,n=n+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,i=i+Math.imul(x,pt)|0,n=n+Math.imul(x,mt)|0,n=n+Math.imul(k,pt)|0,o=o+Math.imul(k,mt)|0;var Tt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(j,ot),n=Math.imul(j,at),n=n+Math.imul(D,ot)|0,o=Math.imul(D,at),i=i+Math.imul(N,ut)|0,n=n+Math.imul(N,ht)|0,n=n+Math.imul(B,ut)|0,o=o+Math.imul(B,ht)|0,i=i+Math.imul(O,lt)|0,n=n+Math.imul(O,ct)|0,n=n+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,i=i+Math.imul($,pt)|0,n=n+Math.imul($,mt)|0,n=n+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(j,ut),n=Math.imul(j,ht),n=n+Math.imul(D,ut)|0,o=Math.imul(D,ht),i=i+Math.imul(N,lt)|0,n=n+Math.imul(N,ct)|0,n=n+Math.imul(B,lt)|0,o=o+Math.imul(B,ct)|0,i=i+Math.imul(O,pt)|0,n=n+Math.imul(O,mt)|0,n=n+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(j,lt),n=Math.imul(j,ct),n=n+Math.imul(D,lt)|0,o=Math.imul(D,ct),i=i+Math.imul(N,pt)|0,n=n+Math.imul(N,mt)|0,n=n+Math.imul(B,pt)|0,o=o+Math.imul(B,mt)|0;var Ct=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(j,pt),n=Math.imul(j,mt),n=n+Math.imul(D,pt)|0,o=Math.imul(D,mt);var Lt=(h+i|0)+((8191&n)<<13)|0;return h=(o+(n>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,u[0]=bt,u[1]=vt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=St,u[8]=Et,u[9]=At,u[10]=xt,u[11]=kt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Lt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var i=0,n=0,o=0;o>>26)|0,n+=a>>>26,a&=67108863}r.words[o]=s,i=a,a=n}return 0!==i?r.words[o]=i:r.length--,r.strip()}function b(t,e,r){var i=new v;return i.mulp(t,e,r)}function v(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,i=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):i<63?d(this,t,e):i<1024?m(this,t,e):b(this,t,e),r},v.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,i=0;i>=1;return i},v.prototype.permute=function(t,e,r,i,n,o){for(var a=0;a>>=1)n++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,i=0;i=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=n);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,i=this.clone(),n=t,a=0|n.words[n.length-1],s=this._countBits(a);r=26-s,0!==r&&(n=n.ushln(r),i.iushln(r),a=0|n.words[n.length-1]);var u,h=i.length-n.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|i.words[n.length+c])+(0|i.words[n.length+c-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(n,d,c);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(n,1,c),i.isZero()||(i.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==r&&i.iushrn(r),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),n=t.andln(1),o=r.cmp(i);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(n.isOdd()||a.isOdd())&&(n.iadd(f),a.isub(l)),n.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),n.isub(s),a.isub(u)):(r.isub(e),s.isub(n),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return n=0===e.cmpn(1)?a:s,n.cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var i=0;e.isEven()&&r.isEven();i++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var n=e.cmp(r);if(n<0){var o=e;e=r,r=o}else if(0===n||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var i=0|this.words[r],n=0|t.words[r];if(i!==n){in&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new E(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){E.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var i=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(w,y),w.prototype.split=function(t,e){for(var r=4194303,i=Math.min(t.length,9),n=0;n>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=n,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return g[t]=e,e},E.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},E.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},E.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},E.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},E.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},E.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},E.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},E.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},E.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},E.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},E.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},E.prototype.isqr=function(t){return this.imul(t,t.clone())},E.prototype.sqr=function(t){return this.mul(t,t)},E.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var n=this.m.subn(1),a=0;while(!n.isZero()&&0===n.andln(1))a++,n.iushrn(1);i(!n.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,n),c=this.pow(t,n.addn(1).iushrn(1)),d=this.pow(t,n),p=a;while(0!==d.cmp(s)){for(var m=d,b=0;0!==m.cmp(s);b++)m=m.redSqr();i(b=0;n--){for(var f=e.words[n],l=h-1;l>=0;l--){var c=f>>l&1;a!==i[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===n&&0===l)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}h=26}return a},E.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},E.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},n(A,E),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},4930:function(t,e,r){var i=r("d039");t.exports=!!Object.getOwnPropertySymbols&&!i((function(){return!String(Symbol())}))},"493f":function(t,e,r){"use strict";(function(e){function r(t,r){var o=this,s=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return s||u?(r?r(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,e.nextTick(a,this,t)):e.nextTick(a,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!r&&t?o._writableState?o._writableState.errorEmitted?e.nextTick(n,o):(o._writableState.errorEmitted=!0,e.nextTick(i,o,t)):e.nextTick(i,o,t):r?(e.nextTick(n,o),r(t)):e.nextTick(n,o)})),this)}function i(t,e){a(t,e),n(t)}function n(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function o(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function a(t,e){t.emit("error",e)}function s(t,e){var r=t._readableState,i=t._writableState;r&&r.autoDestroy||i&&i.autoDestroy?t.destroy(e):t.emit("error",e)}t.exports={destroy:r,undestroy:o,errorOrDestroy:s}}).call(this,r("4362"))},"49ce":function(t,e,r){"use strict";(function(e,i){function n(t){var e=this;this.next=null,this.entry=null,this.finish=function(){W(e,t)}}var o;t.exports=R,R.WritableState=k;var a={deprecate:r("b7d1")},s=r("f12a"),u=r("b639").Buffer,h=e.Uint8Array||function(){};function f(t){return u.from(t)}function l(t){return u.isBuffer(t)||t instanceof h}var c,d=r("9019"),p=r("05f0"),m=p.getHighWaterMark,b=r("d113").codes,v=b.ERR_INVALID_ARG_TYPE,g=b.ERR_METHOD_NOT_IMPLEMENTED,y=b.ERR_MULTIPLE_CALLBACK,w=b.ERR_STREAM_CANNOT_PIPE,M=b.ERR_STREAM_DESTROYED,_=b.ERR_STREAM_NULL_VALUES,S=b.ERR_STREAM_WRITE_AFTER_END,E=b.ERR_UNKNOWN_ENCODING,A=d.errorOrDestroy;function x(){}function k(t,e,i){o=o||r("5e7d"),t=t||{},"boolean"!==typeof i&&(i=e instanceof o),this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=m(this,t,"writableHighWaterMark",i),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===t.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){B(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==t.emitClose,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function R(t){o=o||r("5e7d");var e=this instanceof o;if(!e&&!c.call(R,this))return new R(t);this._writableState=new k(t,this,e),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),s.call(this)}function $(t,e){var r=new S;A(t,r),i.nextTick(e,r)}function T(t,e,r,n){var o;return null===r?o=new _:"string"===typeof r||e.objectMode||(o=new v("chunk",["string","Buffer"],r)),!o||(A(t,o),i.nextTick(n,o),!1)}function I(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=u.from(e,r)),e}function O(t,e,r,i,n,o){if(!r){var a=I(e,i,n);i!==a&&(r=!0,n="buffer",i=a)}var s=e.objectMode?1:i.length;e.length+=s;var u=e.length-1))throw new E(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),R.prototype._write=function(t,e,r){r(new g("_write()"))},R.prototype._writev=null,R.prototype.end=function(t,e,r){var i=this._writableState;return"function"===typeof t?(r=t,t=null,e=null):"function"===typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),i.corked&&(i.corked=1,this.uncork()),i.ending||K(this,i,r),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),R.prototype.destroy=d.destroy,R.prototype._undestroy=d.undestroy,R.prototype._destroy=function(t,e){e(t)}}).call(this,r("c8ba"),r("4362"))},"4a9b":function(t,e,r){var i=r("74e8");i("Float64",(function(t){return function(e,r,i){return t(this,e,r,i)}}))},"4d64":function(t,e,r){var i=r("fc6a"),n=r("50c4"),o=r("23cb"),a=function(t){return function(e,r,a){var s,u=i(e),h=n(u.length),f=o(a,h);if(t&&r!=r){while(h>f)if(s=u[f++],s!=s)return!0}else for(;h>f;f++)if((t||f in u)&&u[f]===r)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},"4dd0":function(t,e,r){var i=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r\+\/\=]+)[\n\r]+/m,n=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,o=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r\+\/\=]+)-----END \1-----$/m,a=r("ae84"),s=r("fda6"),u=r("8707").Buffer;t.exports=function(t,e){var r,h=t.toString(),f=h.match(i);if(f){var l="aes"+f[1],c=u.from(f[2],"hex"),d=u.from(f[3].replace(/[\r\n]/g,""),"base64"),p=a(e,c.slice(0,8),parseInt(f[1],10)).key,m=[],b=s.createDecipheriv(l,p,c);m.push(b.update(d)),m.push(b.final()),r=u.concat(m)}else{var v=h.match(o);r=new u(v[2].replace(/[\r\n]/g,""),"base64")}var g=h.match(n)[1];return{tag:g,data:r}}},"4de4":function(t,e,r){"use strict";var i=r("23e7"),n=r("b727").filter,o=r("1dde"),a=r("ae40"),s=o("filter"),u=a("filter");i({target:"Array",proto:!0,forced:!s||!u},{filter:function(t){return n(this,t,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(t,e,r){"use strict";var i=r("0366"),n=r("7b0b"),o=r("9bdd"),a=r("e95a"),s=r("50c4"),u=r("8418"),h=r("35a1");t.exports=function(t){var e,r,f,l,c,d,p=n(t),m="function"==typeof this?this:Array,b=arguments.length,v=b>1?arguments[1]:void 0,g=void 0!==v,y=h(p),w=0;if(g&&(v=i(v,b>2?arguments[2]:void 0,2)),void 0==y||m==Array&&a(y))for(e=s(p.length),r=new m(e);e>w;w++)d=g?v(p[w],w):p[w],u(r,w,d);else for(l=y.call(p),c=l.next,r=new m;!(f=c.call(l)).done;w++)d=g?o(l,v,[f.value,w],!0):f.value,u(r,w,d);return r.length=w,r}},"4e2b":function(t,e,r){"use strict";var i=r("da3e"),n=r("3fb5"),o=r("5ee7"),a=r("0184");function s(){this.tmp=new Array(2),this.keys=null}function u(t){a.call(this,t);var e=new s;this._desState=e,this.deriveKeys(e,t.key)}n(u,a),t.exports=u,u.create=function(t){return new u(t)};var h=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];u.prototype.deriveKeys=function(t,e){t.keys=new Array(32),i.equal(e.length,this.blockSize,"Invalid key length");var r=o.readUInt32BE(e,0),n=o.readUInt32BE(e,4);o.pc1(r,n,t.tmp,0),r=t.tmp[0],n=t.tmp[1];for(var a=0;a>>1];r=o.r28shl(r,s),n=o.r28shl(n,s),o.pc2(r,n,t.keys,a)}},u.prototype._update=function(t,e,r,i){var n=this._desState,a=o.readUInt32BE(t,e),s=o.readUInt32BE(t,e+4);o.ip(a,s,n.tmp,0),a=n.tmp[0],s=n.tmp[1],"encrypt"===this.type?this._encrypt(n,a,s,n.tmp,0):this._decrypt(n,a,s,n.tmp,0),a=n.tmp[0],s=n.tmp[1],o.writeUInt32BE(r,a,i),o.writeUInt32BE(r,s,i+4)},u.prototype._pad=function(t,e){for(var r=t.length-e,i=e;i>>0,a=d}o.rip(s,a,i,n)},u.prototype._decrypt=function(t,e,r,i,n){for(var a=r,s=e,u=t.keys.length-2;u>=0;u-=2){var h=t.keys[u],f=t.keys[u+1];o.expand(a,t.tmp,0),h^=t.tmp[0],f^=t.tmp[1];var l=o.substitute(h,f),c=o.permute(l),d=a;a=(s^c)>>>0,s=d}o.rip(a,s,i,n)}},"4ef2":function(t,e,r){"use strict";r.r(e);var i=r("a692"),n=r.n(i);r("a4d3"),r("e01a"),r("d3b7"),r("d28b"),r("3ca3"),r("ddb0"),r("fb6a"),r("b0c0"),r("a630");function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,i=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return s=t.done,t},e:function(t){u=!0,o=t},f:function(){try{s||null==r["return"]||r["return"]()}finally{if(u)throw o}}}}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function h(t,e){for(var r=0;r4&&void 0!==arguments[4]?arguments[4]:1500;null===this.db&&this.createDb();var o=Object.keys(e),a=e[o[0]].length;this.db.exec(w.getCreateStatement(t,e));var u=w.generateChunks(e,n),h=Math.ceil(a/n),f=0,l=w.getInsertStmt(t,o),c=this.db.prepare(l);i({progress:0,id:r});var d,p=s(u);try{for(p.s();!(d=p.n()).done;){var m=d.value;this.db.exec("BEGIN");var b,v=s(m);try{for(v.s();!(b=v.n()).done;){var g=b.value;c.run(g)}}catch(y){v.e(y)}finally{v.f()}this.db.exec("COMMIT"),f++,i({progress:f/h*100,id:r})}}catch(y){p.e(y)}finally{p.f()}return{finish:!0}}},{key:"export",value:function(){return this.db.export()}},{key:"close",value:function(){return this.db&&this.db.close(),{finished:!0}}}],[{key:"build",value:function(){return _.then((function(){return new t}))}}]),t}();const A=E.build();function x(t){const e=this;switch(e&&e.action){case"open":return t.open(e.buffer);case"reopen":return t.open(t.export());case"exec":return t.exec(e.sql,e.params);case"import":return t.import(e.tabName,e.data,e.progressCounterId,postMessage);case"export":return t.export();case"close":return t.close();default:throw new Error("Invalid action : "+(e&&e.action))}}function k(t){return{error:t.message}}n()(t=>A.then(x.bind(t)).catch(k))},"4fd1":function(t,e,r){var i=r("3fb5"),n=r("b672"),o=r("8707").Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,n.call(this,128,112)}function h(t,e,r){return r^t&(e^r)}function f(t,e,r){return t&e|r&(t|e)}function l(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function c(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function d(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function p(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function m(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function b(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function v(t,e){return t>>>0>>0?1:0}i(u,n),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._ah,i=0|this._bh,n=0|this._ch,o=0|this._dh,s=0|this._eh,u=0|this._fh,g=0|this._gh,y=0|this._hh,w=0|this._al,M=0|this._bl,_=0|this._cl,S=0|this._dl,E=0|this._el,A=0|this._fl,x=0|this._gl,k=0|this._hl,R=0;R<32;R+=2)e[R]=t.readInt32BE(4*R),e[R+1]=t.readInt32BE(4*R+4);for(;R<160;R+=2){var $=e[R-30],T=e[R-30+1],I=d($,T),O=p(T,$);$=e[R-4],T=e[R-4+1];var C=m($,T),L=b(T,$),N=e[R-14],B=e[R-14+1],P=e[R-32],j=e[R-32+1],D=O+B|0,q=I+N+v(D,O)|0;D=D+L|0,q=q+C+v(D,L)|0,D=D+j|0,q=q+P+v(D,j)|0,e[R]=q,e[R+1]=D}for(var U=0;U<160;U+=2){q=e[U],D=e[U+1];var F=f(r,i,n),z=f(w,M,_),K=l(r,w),W=l(w,r),H=c(s,E),Z=c(E,s),Y=a[U],V=a[U+1],G=h(s,u,g),X=h(E,A,x),J=k+Z|0,Q=y+H+v(J,k)|0;J=J+X|0,Q=Q+G+v(J,X)|0,J=J+V|0,Q=Q+Y+v(J,V)|0,J=J+D|0,Q=Q+q+v(J,D)|0;var tt=W+z|0,et=K+F+v(tt,W)|0;y=g,k=x,g=u,x=A,u=s,A=E,E=S+J|0,s=o+Q+v(E,S)|0,o=n,S=_,n=i,_=M,i=r,M=w,w=J+tt|0,r=Q+et+v(w,J)|0}this._al=this._al+w|0,this._bl=this._bl+M|0,this._cl=this._cl+_|0,this._dl=this._dl+S|0,this._el=this._el+E|0,this._fl=this._fl+A|0,this._gl=this._gl+x|0,this._hl=this._hl+k|0,this._ah=this._ah+r+v(this._al,w)|0,this._bh=this._bh+i+v(this._bl,M)|0,this._ch=this._ch+n+v(this._cl,_)|0,this._dh=this._dh+o+v(this._dl,S)|0,this._eh=this._eh+s+v(this._el,E)|0,this._fh=this._fh+u+v(this._fl,A)|0,this._gh=this._gh+g+v(this._gl,x)|0,this._hh=this._hh+y+v(this._hl,k)|0},u.prototype._hash=function(){var t=o.allocUnsafe(64);function e(e,r,i){t.writeInt32BE(e,i),t.writeInt32BE(r,i+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=u},5:function(t,e){},"50c4":function(t,e,r){var i=r("a691"),n=Math.min;t.exports=function(t){return t>0?n(i(t),9007199254740991):0}},5135:function(t,e){var r={}.hasOwnProperty;t.exports=function(t,e){return r.call(t,e)}},5165:function(t,e,r){(function(t){var i=r("8c8a");function n(t){return t._prev=t._cipher.encryptBlock(t._prev),t._prev}e.encrypt=function(e,r){while(e._cache.length>s%8,t._prev=o(t._prev,r?n:a);return h}function o(t,e){var r=t.length,n=-1,o=i.allocUnsafe(t.length);t=i.concat([t,i.from([e])]);while(++n>7;return o}e.encrypt=function(t,e,r){var o=e.length,a=i.allocUnsafe(o),s=-1;while(++s]*>)/g,m=/\$([$&'`]|\d\d?)/g,b=function(t){return void 0===t?t:String(t)};i("replace",2,(function(t,e,r,i){var v=i.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,g=i.REPLACE_KEEPS_$0,y=v?"$":"$0";return[function(r,i){var n=u(this),o=void 0==r?void 0:r[t];return void 0!==o?o.call(r,n,i):e.call(String(n),r,i)},function(t,i){if(!v&&g||"string"===typeof i&&-1===i.indexOf(y)){var o=r(e,t,this,i);if(o.done)return o.value}var u=n(t),d=String(this),p="function"===typeof i;p||(i=String(i));var m=u.global;if(m){var M=u.unicode;u.lastIndex=0}var _=[];while(1){var S=f(u,d);if(null===S)break;if(_.push(S),!m)break;var E=String(S[0]);""===E&&(u.lastIndex=h(d,a(u.lastIndex),M))}for(var A="",x=0,k=0;k<_.length;k++){S=_[k];for(var R=String(S[0]),$=l(c(s(S.index),d.length),0),T=[],I=1;I=x&&(A+=d.slice(x,$)+L,x=$+R.length)}return A+d.slice(x)}];function w(t,r,i,n,a,s){var u=i+t.length,h=n.length,f=m;return void 0!==a&&(a=o(a),f=p),e.call(s,f,(function(e,o){var s;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return r.slice(0,i);case"'":return r.slice(u);case"<":s=a[o.slice(1,-1)];break;default:var f=+o;if(0===f)return e;if(f>h){var l=d(f/10);return 0===l?e:l<=h?void 0===n[l-1]?o.charAt(1):n[l-1]+o.charAt(1):e}s=n[f-1]}return void 0===s?"":s}))}}))},5377:function(t,e,r){var i=r("83ab"),n=r("9bf2"),o=r("ad6d"),a=r("9f7f").UNSUPPORTED_Y;i&&("g"!=/./g.flags||a)&&n.f(RegExp.prototype,"flags",{configurable:!0,get:o})},"561d":function(t,e,r){(function(e){var i=r("48e6"),n=r("7a10"),o=new n,a=new i(24),s=new i(11),u=new i(10),h=new i(3),f=new i(7),l=r("58a2"),c=r("11dc");function d(t,r){return r=r||"utf8",e.isBuffer(t)||(t=new e(t,r)),this._pub=new i(t),this}function p(t,r){return r=r||"utf8",e.isBuffer(t)||(t=new e(t,r)),this._priv=new i(t),this}t.exports=v;var m={};function b(t,e){var r=e.toString("hex"),i=[r,t.toString(16)].join("_");if(i in m)return m[i];var n,c=0;if(t.isEven()||!l.simpleSieve||!l.fermatTest(t)||!o.test(t))return c+=1,c+="02"===r||"05"===r?8:4,m[i]=c,c;switch(o.test(t.shrn(1))||(c+=2),r){case"02":t.mod(a).cmp(s)&&(c+=8);break;case"05":n=t.mod(u),n.cmp(h)&&n.cmp(f)&&(c+=8);break;default:c+=4}return m[i]=c,c}function v(t,e,r){this.setGenerator(e),this.__prime=new i(t),this._prime=i.mont(this.__prime),this._primeLen=t.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,r?(this.setPublicKey=d,this.setPrivateKey=p):this._primeCode=8}function g(t,r){var i=new e(t.toArray());return r?i.toString(r):i}Object.defineProperty(v.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!==typeof this._primeCode&&(this._primeCode=b(this.__prime,this.__gen)),this._primeCode}}),v.prototype.generateKeys=function(){return this._priv||(this._priv=new i(c(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},v.prototype.computeSecret=function(t){t=new i(t),t=t.toRed(this._prime);var r=t.redPow(this._priv).fromRed(),n=new e(r.toArray()),o=this.getPrime();if(n.lengtht)r.ishrn(1);if(r.isEven()&&r.iadd(u),r.testn(1)||r.iadd(h),e.cmp(h)){if(!e.cmp(f))while(r.mod(l).cmp(c))r.iadd(p)}else while(r.mod(o).cmp(d))r.iadd(p);if(a=r.shrn(1),v(a)&&v(r)&&g(a)&&g(r)&&s.test(a)&&s.test(r))return r}}},"58a8":function(t,e,r){var i=r("1d80"),n=r("5899"),o="["+n+"]",a=RegExp("^"+o+o+"*"),s=RegExp(o+o+"*$"),u=function(t){return function(e){var r=String(i(e));return 1&t&&(r=r.replace(a,"")),2&t&&(r=r.replace(s,"")),r}};t.exports={start:u(1),end:u(2),trim:u(3)}},5919:function(t,e,r){"use strict";e.sha1=r("13e2"),e.sha224=r("07f2"),e.sha256=r("6eed"),e.sha384=r("8b95"),e.sha512=r("b525")},"5a34":function(t,e,r){var i=r("44e7");t.exports=function(t){if(i(t))throw TypeError("The method doesn't accept regular expressions");return t}},"5a76":function(t,e,r){var i=r("f576");t.exports=function(t){return(new i).update(t).digest()}},"5bbb":function(t,e,r){t.exports=r("faa1").EventEmitter},"5c6c":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"5cc6":function(t,e,r){var i=r("74e8");i("Uint8",(function(t){return function(e,r,i){return t(this,e,r,i)}}))},"5e1a":function(t,e,r){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var n=r("8707").Buffer,o=r(3);function a(t,e,r){t.copy(e,r)}t.exports=function(){function t(){i(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return"";var e=this.head,r=""+e.data;while(e=e.next)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return n.alloc(0);if(1===this.length)return this.head.data;var e=n.allocUnsafe(t>>>0),r=this.head,i=0;while(r)a(r.data,e,i),i+=r.data.length,r=r.next;return e},t}(),o&&o.inspect&&o.inspect.custom&&(t.exports.prototype[o.inspect.custom]=function(){var t=o.inspect({length:this.length});return this.constructor.name+" "+t})},"5e7d":function(t,e,r){"use strict";(function(e){var i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=h;var n=r("cf35"),o=r("49ce");r("3fb5")(h,n);for(var a=i(o.prototype),s=0;s>>0},e.writeUInt32BE=function(t,e,r){t[0+r]=e>>>24,t[1+r]=e>>>16&255,t[2+r]=e>>>8&255,t[3+r]=255&e},e.ip=function(t,e,r,i){for(var n=0,o=0,a=6;a>=0;a-=2){for(var s=0;s<=24;s+=8)n<<=1,n|=e>>>s+a&1;for(s=0;s<=24;s+=8)n<<=1,n|=t>>>s+a&1}for(a=6;a>=0;a-=2){for(s=1;s<=25;s+=8)o<<=1,o|=e>>>s+a&1;for(s=1;s<=25;s+=8)o<<=1,o|=t>>>s+a&1}r[i+0]=n>>>0,r[i+1]=o>>>0},e.rip=function(t,e,r,i){for(var n=0,o=0,a=0;a<4;a++)for(var s=24;s>=0;s-=8)n<<=1,n|=e>>>s+a&1,n<<=1,n|=t>>>s+a&1;for(a=4;a<8;a++)for(s=24;s>=0;s-=8)o<<=1,o|=e>>>s+a&1,o<<=1,o|=t>>>s+a&1;r[i+0]=n>>>0,r[i+1]=o>>>0},e.pc1=function(t,e,r,i){for(var n=0,o=0,a=7;a>=5;a--){for(var s=0;s<=24;s+=8)n<<=1,n|=e>>s+a&1;for(s=0;s<=24;s+=8)n<<=1,n|=t>>s+a&1}for(s=0;s<=24;s+=8)n<<=1,n|=e>>s+a&1;for(a=1;a<=3;a++){for(s=0;s<=24;s+=8)o<<=1,o|=e>>s+a&1;for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1}for(s=0;s<=24;s+=8)o<<=1,o|=t>>s+a&1;r[i+0]=n>>>0,r[i+1]=o>>>0},e.r28shl=function(t,e){return t<>>28-e};var i=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];e.pc2=function(t,e,r,n){for(var o=0,a=0,s=i.length>>>1,u=0;u>>i[u]&1;for(u=s;u>>i[u]&1;r[n+0]=o>>>0,r[n+1]=a>>>0},e.expand=function(t,e,r){var i=0,n=0;i=(1&t)<<5|t>>>27;for(var o=23;o>=15;o-=4)i<<=6,i|=t>>>o&63;for(o=11;o>=3;o-=4)n|=t>>>o&63,n<<=6;n|=(31&t)<<1|t>>>31,e[r+0]=i>>>0,e[r+1]=n>>>0};var n=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];e.substitute=function(t,e){for(var r=0,i=0;i<4;i++){var o=t>>>18-6*i&63,a=n[64*i+o];r<<=4,r|=a}for(i=0;i<4;i++){o=e>>>18-6*i&63,a=n[256+64*i+o];r<<=4,r|=a}return r>>>0};var o=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];e.permute=function(t){for(var e=0,r=0;r>>o[r]&1;return e>>>0},e.padSplit=function(t,e,r){var i=t.toString(2);while(i.length>8&255]},j=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},D=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},q=function(t){return L(t,23,4)},U=function(t){return L(t,52,8)},F=function(t,e){v(t[A],e,{get:function(){return M(this)[e]}})},z=function(t,e,r,i){var n=c(r),o=M(t);if(n+e>o.byteLength)throw C(k);var a=M(o.buffer).bytes,s=n+o.byteOffset,u=a.slice(s,s+e);return i?u:u.reverse()},K=function(t,e,r,i,n,o){var a=c(r),s=M(t);if(a+e>s.byteLength)throw C(k);for(var u=M(s.buffer).bytes,h=a+s.byteOffset,f=i(+n),l=0;lY;)(W=Z[Y++])in $||a($,W,R[W]);H.constructor=$}m&&p(I)!==O&&m(I,O);var V=new T(new $(2)),G=I.setInt8;V.setInt8(0,2147483648),V.setInt8(1,2147483649),!V.getInt8(0)&&V.getInt8(1)||s(I,{setInt8:function(t,e){G.call(this,t,e<<24>>24)},setUint8:function(t,e){G.call(this,t,e<<24>>24)}},{unsafe:!0})}else $=function(t){h(this,$,S);var e=c(t);_(this,{bytes:g.call(new Array(e),0),byteLength:e}),n||(this.byteLength=e)},T=function(t,e,r){h(this,T,E),h(t,$,E);var i=M(t).byteLength,o=f(e);if(o<0||o>i)throw C("Wrong offset");if(r=void 0===r?i-o:l(r),o+r>i)throw C(x);_(this,{buffer:t,byteLength:r,byteOffset:o}),n||(this.buffer=t,this.byteLength=r,this.byteOffset=o)},n&&(F($,"byteLength"),F(T,"buffer"),F(T,"byteLength"),F(T,"byteOffset")),s(T[A],{getInt8:function(t){return z(this,1,t)[0]<<24>>24},getUint8:function(t){return z(this,1,t)[0]},getInt16:function(t){var e=z(this,2,t,arguments.length>1?arguments[1]:void 0);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=z(this,2,t,arguments.length>1?arguments[1]:void 0);return e[1]<<8|e[0]},getInt32:function(t){return D(z(this,4,t,arguments.length>1?arguments[1]:void 0))},getUint32:function(t){return D(z(this,4,t,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(t){return N(z(this,4,t,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(t){return N(z(this,8,t,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(t,e){K(this,1,t,B,e)},setUint8:function(t,e){K(this,1,t,B,e)},setInt16:function(t,e){K(this,2,t,P,e,arguments.length>2?arguments[2]:void 0)},setUint16:function(t,e){K(this,2,t,P,e,arguments.length>2?arguments[2]:void 0)},setInt32:function(t,e){K(this,4,t,j,e,arguments.length>2?arguments[2]:void 0)},setUint32:function(t,e){K(this,4,t,j,e,arguments.length>2?arguments[2]:void 0)},setFloat32:function(t,e){K(this,4,t,q,e,arguments.length>2?arguments[2]:void 0)},setFloat64:function(t,e){K(this,8,t,U,e,arguments.length>2?arguments[2]:void 0)}});y($,S),y(T,E),t.exports={ArrayBuffer:$,DataView:T}},6283:function(t,e,r){var i=r("3fb5"),n=r("41df").Reporter,o=r("b639").Buffer;function a(t,e){n.call(this,e),o.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error("Input not Buffer")}function s(t,e){if(Array.isArray(t))this.length=0,this.value=t.map((function(t){return t instanceof s||(t=new s(t,e)),this.length+=t.length,t}),this);else if("number"===typeof t){if(!(0<=t&&t<=255))return e.error("non-byte EncoderBuffer value");this.value=t,this.length=1}else if("string"===typeof t)this.value=t,this.length=o.byteLength(t);else{if(!o.isBuffer(t))return e.error("Unsupported type: "+typeof t);this.value=t,this.length=t.length}}i(a,n),e.DecoderBuffer=a,a.prototype.save=function(){return{offset:this.offset,reporter:n.prototype.save.call(this)}},a.prototype.restore=function(t){var e=new a(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,n.prototype.restore.call(this,t.reporter),e},a.prototype.isEmpty=function(){return this.offset===this.length},a.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")},a.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||"DecoderBuffer overrun");var r=new a(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+t,this.offset+=t,r},a.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},e.EncoderBuffer=s,s.prototype.join=function(t,e){return t||(t=new o(this.length)),e||(e=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(t,e),e+=r.length})):("number"===typeof this.value?t[e]=this.value:"string"===typeof this.value?t.write(this.value,e):o.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length)),t}},62831:function(t,e,r){var i; -/*! - * sqlite-parser - v1.0.1 - * @copyright 2015-2017 Code School (http://codeschool.com) - * @author Nick Wronski - */ -(function(e){t.exports=e()})((function(){return function t(e,r,n){function o(s,u){if(!r[s]){if(!e[s]){var h="function"==typeof i&&i;if(!u&&h)return i(s,!0);if(a)return a(s,!0);var f=new Error("Cannot find module '"+s+"'");throw f.code="MODULE_NOT_FOUND",f}var l=r[s]={exports:{}};e[s][0].call(l.exports,(function(t){var r=e[s][1][t];return o(r||t)}),l,l.exports,t,e,r,n)}return r[s].exports}for(var a="function"==typeof i&&i,s=0;s0},function(t,e){return{args:Object.assign(e,t)}},function(t){return{filter:q(t)}},E("Error Message"),function(t){return t},E("Statement"),function(t,e){return Object.assign(e,t)},E("QUERY PLAN"),function(t,e){return{explain:O(t)}},E("QUERY PLAN Keyword"),function(t,e){return N([t,e])},E("END Transaction Statement"),function(t,e){return{type:"statement",variant:"transaction",action:"commit"}},E("BEGIN Transaction Statement"),function(t,e,r,i){return Object.assign({type:"statement",variant:"transaction",action:"begin"},e,i)},function(t){return t},function(t){return{defer:q(t)}},E("ROLLBACK Statement"),function(t,e){return Object.assign({type:"statement",variant:"transaction",action:"rollback"},e)},E("TO Clause"),function(t){return{savepoint:t}},function(t){return q(t)},E("SAVEPOINT Statement"),function(t,e){return{type:"statement",variant:t,target:e}},E("RELEASE Statement"),function(t,e,r){return{type:"statement",variant:q(t),target:r}},E("ALTER TABLE Statement"),function(t,e,r){return Object.assign({type:"statement",variant:q(t),target:e},r)},E("ALTER TABLE Keyword"),function(t,e){return N([t,e])},E("RENAME TO Keyword"),function(t,e){return{action:q(t),name:e}},E("ADD COLUMN Keyword"),function(t,e){return{action:q(t),definition:e}},function(t,e){return Object.assign(e,t)},E("WITH Clause"),function(t,e,r){var i={variant:O(e)?"recursive":"common"};return U(r)&&(r=r.map((function(t){return Object.assign(t,i)}))),{with:r}},function(t,e){return B([t,e])},E("Common Table Expression"),function(t,e){return Object.assign({type:"expression",format:"table",variant:"common",target:t},e)},function(t){return{expression:t}},function(t,e){return Object.assign(e,t)},E("ATTACH Statement"),function(t,e,r,i){return{type:"statement",variant:q(t),target:i,attach:r}},E("DETACH Statement"),function(t,e,r){return{type:"statement",variant:q(t),target:r}},E("VACUUM Statement"),function(t,e){return Object.assign({type:"statement",variant:"vacuum"},e)},function(t){return{target:t}},E("ANALYZE Statement"),function(t,e){return Object.assign({type:"statement",variant:q(t)},e)},function(t){return{target:t["name"]}},E("REINDEX Statement"),function(t){return{target:t["name"]}},E("PRAGMA Statement"),function(t,e,r){return{type:"statement",variant:q(t),target:e,args:{type:"expression",variant:"list",expression:r}}},function(t){return t},function(t){return/^(yes|no|on|off|false|true|0|1)$/i.test(t)},function(t){return{type:"literal",variant:"boolean",normalized:/^(yes|on|true|1)$/i.test(t)?"1":"0",value:t}},function(t){return q(t)},function(t){return{type:"identifier",variant:"name",name:t}},E("SELECT Statement"),function(t,e,r){return Object.assign(t,e,r)},E("ORDER BY Clause"),function(t){return{order:t["result"]}},E("LIMIT Clause"),function(t,e,r){return{limit:Object.assign({type:"expression",variant:"limit",start:e},r)}},E("OFFSET Clause"),function(t,e){return{offset:e}},function(t,e){return U(e)?{type:"statement",variant:"compound",statement:t,compound:e}:t},E("Union Operation"),function(t,e){return{type:"compound",variant:t,statement:e}},function(t,e,r,i){return Object.assign({type:"statement",variant:"select"},t,e,r,i)},E("SELECT Results Clause"),function(t,e){return Object.assign({result:e},t)},E("SELECT Results Modifier"),function(t){return{distinct:!0}},function(t){return{}},E("FROM Clause"),function(t,e){return{from:e}},E("WHERE Clause"),function(t,e){return{where:I(e)}},E("GROUP BY Clause"),function(t,e,r){return Object.assign({group:e},r)},E("HAVING Clause"),function(t,e){return{having:e}},function(t,e){return{type:"identifier",variant:"star",name:L([t,e])}},function(t,e){return L([t,e])},function(t,e){return Object.assign(t,e)},function(t,e){return U(e)?{type:"map",variant:"join",source:t,map:e}:t},function(t,e){return Object.assign(t,e)},E("CROSS JOIN Operation"),function(t){return{type:"join",variant:"cross join",source:t}},E("JOIN Operation"),function(t,e){return{type:"join",variant:q(t),source:e}},function(t,e,r){return Object.assign({type:"function",variant:"table",name:t,args:e},r)},E("Qualified Table"),function(t,e){return Object.assign(t,e)},E("Qualified Table Identifier"),function(t,e){return Object.assign(t,e)},E("Qualfied Table Index"),function(t,e){return{index:e}},function(t,e){return{index:N([t,e])}},E("SELECT Source"),function(t,e){return Object.assign(t,e)},E("Subquery"),function(t,e){return Object.assign(t,e)},E("Alias"),function(t,e){return{alias:e}},E("JOIN Operator"),function(t,e,r){return N([t,e,r])},function(t,e){return N([t,e])},function(t){return q(t)},E("JOIN Constraint"),function(t){return{constraint:Object.assign({type:"constraint",variant:"join"},t)}},E("Join ON Clause"),function(t,e){return{format:q(t),on:e}},E("Join USING Clause"),function(t,e){return{format:q(t),using:e}},E("VALUES Clause"),function(t,e){return{type:"statement",variant:"select",result:e}},function(t,e){return{result:B([t,e])}},function(t){return t},E("Ordering Expression"),function(t,e){return O(e)?Object.assign({type:"expression",variant:"order",expression:t},e):t},E("Star"),E("Fallback Type"),E("INSERT Statement"),function(t,e){return Object.assign({type:"statement",variant:"insert"},t,e)},E("INSERT Keyword"),function(t,e){return Object.assign({action:q(t)},e)},E("REPLACE Keyword"),function(t){return{action:q(t)}},E("INSERT OR Modifier"),function(t,e){return{or:q(e)}},function(t,e){return Object.assign({into:t},e)},E("INTO Clause"),function(t,e){return e},E("INTO Keyword"),function(t){return{result:t}},E("Column List"),function(t,e){return{columns:B([t,e])}},function(t){return t},E("Column Name"),function(t){return{type:"identifier",variant:"column",name:t}},function(t,e){return e},E("VALUES Keyword"),function(t,e){return B([t,e])},E("Wrapped Expression List"),function(t){return t},E("DEFAULT VALUES Clause"),function(t,e){return{type:"values",variant:"default"}},E("Compound Operator"),E("UNION Operator"),function(t,e){return N([t,e])},function(t){return t},E("UPDATE Statement"),function(t,e,r,i,n,o,a){return Object.assign({type:"statement",variant:t,into:r},e,i,n,o,a)},E("UPDATE Keyword"),E("UPDATE OR Modifier"),function(t){return{or:q(t)}},E("SET Clause"),function(t){return{set:t}},E("Column Assignment"),function(t,e){return{type:"assignment",target:t,value:e}},E("DELETE Statement"),function(t,e,r,i,n){return Object.assign({type:"statement",variant:t,from:e},r,i,n)},E("DELETE Keyword"),E("CREATE Statement"),E("CREATE TABLE Statement"),function(t,e,r,i){return Object.assign({type:"statement",name:r},t,i,e)},function(t,e,r){return Object.assign({variant:t,format:q(r)},e)},function(t){return{temporary:O(t)}},E("IF NOT EXISTS Modifier"),function(t,e,r){return{condition:I({type:"condition",variant:q(t),condition:{type:"expression",variant:q(r),operator:N([e,r])}})}},E("Table Definition"),function(t,e,r){return Object.assign({definition:B([t,e])},r)},function(t,e){return{optimization:[{type:"optimization",value:N([t,e])}]}},function(t){return t},E("Column Definition"),function(t,e,r){return Object.assign({type:"definition",variant:"column",name:t,definition:O(r)?r:[]},e)},E("Column Datatype"),function(t){return{datatype:t}},E("Column Constraint"),function(t,e,r){return Object.assign(e,t)},function(t){return t[t.length-1]},E("CONSTRAINT Name"),function(t){return{name:t}},E("FOREIGN KEY Column Constraint"),function(t){return Object.assign({variant:"foreign key"},t)},E("PRIMARY KEY Column Constraint"),function(t,e,r,i){return Object.assign(t,r,e,i)},E("PRIMARY KEY Keyword"),function(t,e){return{type:"constraint",variant:N([t,e])}},E("AUTOINCREMENT Keyword"),function(t){return{autoIncrement:!0}},function(t,e){return Object.assign({type:"constraint",variant:t},e)},E("UNIQUE Column Constraint"),E("NULL Column Constraint"),function(t,e){return N([t,e])},E("CHECK Column Constraint"),E("DEFAULT Column Constraint"),function(t,e){return{type:"constraint",variant:q(t),value:e}},E("COLLATE Column Constraint"),function(t){return{type:"constraint",variant:"collate",collate:t}},E("Table Constraint"),function(t,e,r){return Object.assign({type:"definition",variant:"constraint"},e,t)},E("CHECK Table Constraint"),function(t){return{definition:I(t)}},E("PRIMARY KEY Table Constraint"),function(t,e,r){return{definition:I(Object.assign(t,r,e[1])),columns:e[0]}},function(t){return{type:"constraint",variant:q(t)}},function(t,e){return N([t,e])},E("UNIQUE Keyword"),function(t){return q(t)},function(t,e){return[t].concat(e)},function(t){return t.map((function(t){var e=i(t,1),r=e[0];return r}))},function(t){var e=t.find((function(t){var e=i(t,2),r=(e[0],e[1]);return O(r)}));return[t.map((function(t){var e=i(t,2),r=e[0];e[1];return r})),e?e[1]:null]},E("Indexed Column"),function(t,e,r){var i=t;return O(e)&&(i=Object.assign({type:"expression",variant:"order",expression:t},e)),[i,r]},E("Collation"),function(t){return{collate:I(t)}},E("Column Direction"),function(t){return{direction:q(t)}},function(t,e){return{conflict:q(e)}},E("ON CONFLICT Keyword"),function(t,e){return N([t,e])},function(t,e){return{type:"constraint",variant:q(t),expression:e}},E("FOREIGN KEY Table Constraint"),function(t,e,r){return Object.assign({definition:I(Object.assign(t,r))},e)},E("FOREIGN KEY Keyword"),function(t,e){return{type:"constraint",variant:N([t,e])}},function(t,e,r){return Object.assign({type:"constraint"},t,e,r)},E("REFERENCES Clause"),function(t,e){return{references:e}},function(t,e){return{action:B([t,e])}},E("FOREIGN KEY Action Clause"),function(t,e,r){return{type:"action",variant:q(t),action:q(r)}},E("FOREIGN KEY Action"),function(t,e){return N([t,e])},function(t){return q(t)},function(t,e){return N([t,e])},function(t,e){return{type:"action",variant:q(t),action:e}},E("DEFERRABLE Clause"),function(t,e,r){return{defer:N([t,e,r])}},function(t,e){return N([t,e])},function(t){return{definition:I(t)}},E("CREATE INDEX Statement"),function(t,e,r,i,n){return Object.assign({type:"statement",target:r,on:i},t,e,n)},function(t,e,r){return Object.assign({variant:q(t),format:q(r)},e)},function(t){return{unique:!0}},E("ON Clause"),function(t,e,r){return{type:"identifier",variant:"expression",format:"table",name:e["name"],columns:r}},E("CREATE TRIGGER Statement"),function(t,e,r,i,n,o,a,s){return Object.assign({type:"statement",target:r,on:n,event:i,by:O(o)?o:"row",action:I(s)},t,e,a)},function(t,e,r){return Object.assign({variant:q(t),format:q(r)},e)},E("Conditional Clause"),function(t,e){return Object.assign({type:"event"},t,e)},function(t){return{occurs:q(t)}},function(t,e){return N([t,e])},E("Conditional Action"),function(t){return{event:q(t)}},function(t,e){return{event:q(t),of:e}},function(t,e){return e},"statement",w("STATEMENT",!0),function(t,e,r){return q(r)},function(t,e){return{when:e}},E("Actions Clause"),function(t,e,r){return e},function(t){return t},E("CREATE VIEW Statement"),function(t,e,r,i){return Object.assign({type:"statement",target:r,result:i},t,e)},function(t,e){return Object.assign({type:"identifier",variant:"expression",format:"view",name:t["name"],columns:[]},e)},function(t,e,r){return Object.assign({variant:q(t),format:q(r)},e)},E("CREATE VIRTUAL TABLE Statement"),function(t,e,r,i){return Object.assign({type:"statement",target:r,result:i},t,e)},function(t,e,r){return{variant:q(t),format:q(e)}},function(t,e){return Object.assign({type:"module",variant:"virtual",name:t},e)},E("Module Arguments"),function(t){return{args:{type:"expression",variant:"list",expression:O(t)?t:[]}}},function(t,e){return B([t,e]).filter((function(t){return O(t)}))},function(t){return t},E("DROP Statement"),function(t,e){return Object.assign({type:"statement",target:Object.assign(e,{variant:t["format"]})},t)},E("DROP Keyword"),function(t,e,r){return Object.assign({variant:q(t),format:e,condition:[]},r)},E("DROP Type"),E("IF EXISTS Keyword"),function(t,e){return{condition:[{type:"condition",variant:q(t),condition:{type:"expression",variant:q(e),operator:q(e)}}]}},E("Or"),E("Add"),E("Subtract"),E("Multiply"),E("Divide"),E("Modulo"),E("Shift Left"),E("Shift Right"),E("Logical AND"),E("Logical OR"),E("Less Than"),E("Greater Than"),E("Less Than Or Equal"),E("Greater Than Or Equal"),E("Equal"),E("Not Equal"),E("IS"),function(t,e){return N([t,e])},E("Identifier"),E("Database Identifier"),function(t){return{type:"identifier",variant:"database",name:t}},E("Function Identifier"),function(t,e){return{type:"identifier",variant:"function",name:L([t,e])}},E("Table Identifier"),function(t,e){return{type:"identifier",variant:"table",name:L([t,e])}},function(t,e){return L([t,e])},E("Column Identifier"),function(t,e){return{type:"identifier",variant:"column",name:L([t,e])}},function(){return""},function(t,e){return L([t,e])},E("Collation Identifier"),function(t){return{type:"identifier",variant:"collation",name:t}},E("Savepoint Identifier"),function(t){return{type:"identifier",variant:"savepoint",name:t}},E("Index Identifier"),function(t,e){return{type:"identifier",variant:"index",name:L([t,e])}},E("Trigger Identifier"),function(t,e){return{type:"identifier",variant:"trigger",name:L([t,e])}},E("View Identifier"),function(t,e){return{type:"identifier",variant:"view",name:L([t,e])}},E("Pragma Identifier"),function(t,e){return{type:"identifier",variant:"pragma",name:L([t,e])}},E("CTE Identifier"),function(t){return t},function(t,e){return Object.assign({type:"identifier",variant:"expression",format:"table",name:t["name"],columns:[]},e)},E("Table Constraint Identifier"),function(t){return{type:"identifier",variant:"constraint",format:"table",name:t}},E("Column Constraint Identifier"),function(t){return{type:"identifier",variant:"constraint",format:"column",name:t}},E("Datatype Name"),function(t){return[t,"text"]},function(t){return[t,"real"]},function(t){return[t,"numeric"]},function(t){return[t,"integer"]},function(t){return[t,"none"]},E("TEXT Datatype Name"),"n",w("N",!0),"var",w("VAR",!0),"char",w("CHAR",!0),"tiny",w("TINY",!0),"medium",w("MEDIUM",!0),"long",w("LONG",!0),"text",w("TEXT",!0),"clob",w("CLOB",!0),E("REAL Datatype Name"),"float",w("FLOAT",!0),"real",w("REAL",!0),E("DOUBLE Datatype Name"),"double",w("DOUBLE",!0),"precision",w("PRECISION",!0),function(t,e){return L([t,e])},E("NUMERIC Datatype Name"),"numeric",w("NUMERIC",!0),"decimal",w("DECIMAL",!0),"boolean",w("BOOLEAN",!0),"date",w("DATE",!0),"time",w("TIME",!0),"stamp",w("STAMP",!0),"string",w("STRING",!0),E("INTEGER Datatype Name"),"int",w("INT",!0),"2",w("2",!1),"4",w("4",!1),"8",w("8",!1),"eger",w("EGER",!0),"big",w("BIG",!0),"small",w("SMALL",!0),"floating",w("FLOATING",!0),"point",w("POINT",!0),function(t,e){return L([t,e])},E("BLOB Datatype Name"),"blob",w("BLOB",!0),/^[a-z0-9$_]/i,M([["a","z"],["0","9"],"$","_"],!1,!0),"\\u",w("\\u",!1),/^[a-f0-9]/i,M([["a","f"],["0","9"]],!1,!0),function(t,e){return L([t,e]).toLowerCase()},function(t){return q(t)},_(),function(t){return D(t)},/^[ \t]/,M([" ","\t"],!1,!1),'"',w('"',!1),'""',w('""',!1),/^[^"]/,M(['"'],!0,!1),function(t){return P(t,'"')},"'",w("'",!1),function(t){return P(t,"'")},"`",w("`",!1),"``",w("``",!1),/^[^`]/,M(["`"],!0,!1),function(t){return P(t,"`")},E("Open Bracket"),"[",w("[",!1),E("Close Bracket"),"]",w("]",!1),E("Open Parenthesis"),"(",w("(",!1),E("Close Parenthesis"),")",w(")",!1),E("Comma"),",",w(",",!1),E("Period"),".",w(".",!1),E("Asterisk"),"*",w("*",!1),E("Question Mark"),"?",w("?",!1),E("Single Quote"),E("Double Quote"),E("Backtick"),E("Tilde"),"~",w("~",!1),E("Plus"),"+",w("+",!1),E("Minus"),"-",w("-",!1),"=",w("=",!1),E("Ampersand"),"&",w("&",!1),E("Pipe"),"|",w("|",!1),"%",w("%",!1),"<",w("<",!1),">",w(">",!1),E("Exclamation"),"!",w("!",!1),E("Semicolon"),";",w(";",!1),E("Colon"),E("Forward Slash"),"/",w("/",!1),E("Backslash"),"\\",w("\\",!1),"abort",w("ABORT",!0),"action",w("ACTION",!0),"add",w("ADD",!0),"after",w("AFTER",!0),"all",w("ALL",!0),"alter",w("ALTER",!0),"analyze",w("ANALYZE",!0),"and",w("AND",!0),"as",w("AS",!0),"asc",w("ASC",!0),"attach",w("ATTACH",!0),"autoincrement",w("AUTOINCREMENT",!0),"before",w("BEFORE",!0),"begin",w("BEGIN",!0),"between",w("BETWEEN",!0),"by",w("BY",!0),"cascade",w("CASCADE",!0),"case",w("CASE",!0),"cast",w("CAST",!0),"check",w("CHECK",!0),"collate",w("COLLATE",!0),"column",w("COLUMN",!0),"commit",w("COMMIT",!0),"conflict",w("CONFLICT",!0),"constraint",w("CONSTRAINT",!0),"create",w("CREATE",!0),"cross",w("CROSS",!0),"current_date",w("CURRENT_DATE",!0),"current_time",w("CURRENT_TIME",!0),"current_timestamp",w("CURRENT_TIMESTAMP",!0),"database",w("DATABASE",!0),"default",w("DEFAULT",!0),"deferrable",w("DEFERRABLE",!0),"deferred",w("DEFERRED",!0),"delete",w("DELETE",!0),"desc",w("DESC",!0),"detach",w("DETACH",!0),"distinct",w("DISTINCT",!0),"drop",w("DROP",!0),"each",w("EACH",!0),"else",w("ELSE",!0),"end",w("END",!0),"escape",w("ESCAPE",!0),"except",w("EXCEPT",!0),"exclusive",w("EXCLUSIVE",!0),"exists",w("EXISTS",!0),"explain",w("EXPLAIN",!0),"fail",w("FAIL",!0),"for",w("FOR",!0),"foreign",w("FOREIGN",!0),"from",w("FROM",!0),"full",w("FULL",!0),"glob",w("GLOB",!0),"group",w("GROUP",!0),"having",w("HAVING",!0),"if",w("IF",!0),"ignore",w("IGNORE",!0),"immediate",w("IMMEDIATE",!0),"in",w("IN",!0),"index",w("INDEX",!0),"indexed",w("INDEXED",!0),"initially",w("INITIALLY",!0),"inner",w("INNER",!0),"insert",w("INSERT",!0),"instead",w("INSTEAD",!0),"intersect",w("INTERSECT",!0),"into",w("INTO",!0),"is",w("IS",!0),"isnull",w("ISNULL",!0),"join",w("JOIN",!0),"key",w("KEY",!0),"left",w("LEFT",!0),"like",w("LIKE",!0),"limit",w("LIMIT",!0),"match",w("MATCH",!0),"natural",w("NATURAL",!0),"no",w("NO",!0),"not",w("NOT",!0),"notnull",w("NOTNULL",!0),"of",w("OF",!0),"offset",w("OFFSET",!0),"on",w("ON",!0),"or",w("OR",!0),"order",w("ORDER",!0),"outer",w("OUTER",!0),"plan",w("PLAN",!0),"pragma",w("PRAGMA",!0),"primary",w("PRIMARY",!0),"query",w("QUERY",!0),"raise",w("RAISE",!0),"recursive",w("RECURSIVE",!0),"references",w("REFERENCES",!0),"regexp",w("REGEXP",!0),"reindex",w("REINDEX",!0),"release",w("RELEASE",!0),"rename",w("RENAME",!0),"replace",w("REPLACE",!0),"restrict",w("RESTRICT",!0),"right",w("RIGHT",!0),"rollback",w("ROLLBACK",!0),"row",w("ROW",!0),"rowid",w("ROWID",!0),"savepoint",w("SAVEPOINT",!0),"select",w("SELECT",!0),"set",w("SET",!0),"table",w("TABLE",!0),"temp",w("TEMP",!0),"temporary",w("TEMPORARY",!0),"then",w("THEN",!0),"to",w("TO",!0),"transaction",w("TRANSACTION",!0),"trigger",w("TRIGGER",!0),"union",w("UNION",!0),"unique",w("UNIQUE",!0),"update",w("UPDATE",!0),"using",w("USING",!0),"vacuum",w("VACUUM",!0),"values",w("VALUES",!0),"view",w("VIEW",!0),"virtual",w("VIRTUAL",!0),"when",w("WHEN",!0),"where",w("WHERE",!0),"with",w("WITH",!0),"without",w("WITHOUT",!0),function(t){return q(t)},function(){return null},E("Line Comment"),"--",w("--",!1),/^[\n\v\f\r]/,M(["\n","\v","\f","\r"],!1,!1),E("Block Comment"),"/*",w("/*",!1),"*/",w("*/",!1),/^[\n\v\f\r\t ]/,M(["\n","\v","\f","\r","\t"," "],!1,!1),E("Whitespace"),"__TODO__",w("__TODO__",!1)],f=[$("%;ȿ/H#;#/?$;\".\" &\"/1$;#/($8$: $!!)($'#(#'#(\"'#&'#"),$("%;ȿ/C#;#/:$;x/1$;#/($8$: $!!)($'#(#'#(\"'#&'#"),$("%;x/B#;ȿ/9$$;%0#*;%&/)$8#:!#\"\" )(#'#(\"'#&'#"),$("$;Ƴ0#*;Ƴ&"),$("$;Ƴ/�#*;Ƴ&&&#"),$("%;$/:#;x/1$;ȿ/($8#:\"#!!)(#'#(\"'#&'#"),$('<%;\'.# &;(/@#;ȿ/7$;*." &"/)$8#:$#"" )(#\'#("\'#&\'#=." 7#'),$("%;Ƌ/' 8!:%!! )"),$('<%;ƕ/9#$;)0#*;)&/)$8":\'""! )("\'#&\'#=." 7&'),$('%4(""5!7)/1#;Ɨ/($8":*"! )("\'#&\'#'),$("<%;Ơ/R#;5/I$;ȿ/@$;+.\" &\"/2$;ơ/)$8%:,%\"#!)(%'#($'#(#'#(\"'#&'#=.\" 7+"),$("%;Ƣ/C#;ȿ/:$;5/1$;ȿ/($8$:-$!!)($'#(#'#(\"'#&'#"),$(";5.; &;6.5 &;2./ &;-.) &;..# &;/"),$('<%;Ȇ/1#;ȿ/($8":/"!!)("\'#&\'#=." 7.'),$('<%;ǒ.) &;ǔ.# &;Ǔ/1#;ȿ/($8":1"!!)("\'#&\'#=." 70'),$('<%;4." &"/2#;0/)$8":3""! )("\'#&\'#=." 72'),$("<%;Ʀ/A#$;10#*;1&/1$;Ʀ/($8#:5#!!)(#'#(\"'#&'#=.\" 74"),$('26""6677.) &48""5!79'),$('<%4;""5!7!! )"),$('<%;ƪ.# &;ƫ/\' 8!:"!! )=." 7?'),$('%;4." &"/2#;6/)$8":@""! )("\'#&\'#'),$(";<.# &;7"),$('%;8/7#;;." &"/)$8":A""! )("\'#&\'#'),$('<;9.# &;:=." 7B'),$('%$;>/�#*;>&&&#/7#;:." &"/)$8":C""! )("\'#&\'#'),$('%;ƣ/9#$;>0#*;>&/)$8":D""! )("\'#&\'#'),$('<%3F""5!7G/T#4H""5!7I." &"/@$$;>/�#*;>&&&#/*$8#:J##"! )(#\'#("\'#&\'#=." 7E'),$('<%3L""5"7M/?#$;=/�#*;=&&&#/)$8":N""! )("\'#&\'#=." 7K'),$('4O""5!7P'),$('4Q""5!7R'),$("<%;@.) &;B.# &;C/' 8!:T!! )=.\" 7S"),$('<%;ƥ/@#;A." &"/2$;ȿ/)$8#:V#""!)(#\'#("\'#&\'#=." 7U'),$('%4W""5!7X/9#$;>0#*;>&/)$8":Y""! )("\'#&\'#'),$('<%4[""5!7\\/H#$;Ɠ/�#*;Ɠ&&&#/2$;ȿ/)$8#:]#""!)(#\'#("\'#&\'#=." 7Z'),$('<%2_""6_7`/o#$;Ɠ.) &2a""6a7b/2#0/*;Ɠ.) &2a""6a7b&&&#/A$;ȿ/8$;D." &"/*$8$:c$##" )($\'#(#\'#("\'#&\'#=." 7^'),$('%;ƛ/1#;ȿ/($8":d"!!)("\'#&\'#'),$('<%;F." &"/;#;ȿ/2$;”/)$8#:f#"" )(#\'#("\'#&\'#=." 7e'),$('<%;k." &"/;#;Ǥ/2$;ȿ/)$8#:h#""!)(#\'#("\'#&\'#=." 7g'),$("<%;ȑ/_#;ȿ/V$;Ơ/M$;ȿ/D$;H/;$;ȿ/2$;ơ/)$8':j'\"&\")(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7i"),$("<%;I.# &;J/' 8!:l!! )=.\" 7k"),$("<%;ǯ/' 8!:n!! )=.\" 7m"),$("%;ț.) &;Ʒ.# &;Ǧ/M#;ȿ/D$;Ƣ/;$;ȿ/2$;w/)$8%:o%\"$ )(%'#($'#(#'#(\"'#&'#"),$(";?./ &;t.) &;,.# &;Ž"),$("%;Ơ/L#;ȿ/C$;p/:$;ȿ/1$;ơ/($8%:p%!\")(%'#($'#(#'#(\"'#&'#"),$(";L.; &;E.5 &;_./ &;a.) &;G.# &;K"),$("%;M/;#;ȿ/2$;Q/)$8#:q#\"\" )(#'#(\"'#&'#.# &;M"),$("%;P/A#;ȿ/8$;N.# &;p/)$8#:r#\"\" )(#'#(\"'#&'#.# &;N"),$(";Ʃ.U &;ƫ.O &;ƪ.I &%%;k/8#%<;Ǥ=.##&&!&'#/#$+\")(\"'#&'#/\"!&,)"),$("<%;ĭ/' 8!:t!! )=.\" 7s"),$("%;O/ƒ#$%;ȿ/>#;Ŧ/5$;ȿ/,$;O/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;Ŧ/5$;ȿ/,$;O/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$("%;R/ƒ#$%;ȿ/>#;T/5$;ȿ/,$;R/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;T/5$;ȿ/,$;R/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$(";ũ.) &;Ū.# &;ū"),$("%;S/ƒ#$%;ȿ/>#;V/5$;ȿ/,$;S/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;V/5$;ȿ/,$;S/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$(";ŧ.# &;Ũ"),$("%;U/ƒ#$%;ȿ/>#;X/5$;ȿ/,$;U/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;X/5$;ȿ/,$;U/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$(";Ŭ.U &;ŭ.O &;Ů.I &%%;ů/8#%<;ů=.##&&!&'#/#$+\")(\"'#&'#/\"!&,)"),$("%;W/ƒ#$%;ȿ/>#;Z/5$;ȿ/,$;W/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;Z/5$;ȿ/,$;W/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$(";Ų.{ &;ų.u &%%;Ű/8#%<;X=.##&&!&'#/#$+\")(\"'#&'#/\"!&,).I &%%;ű/8#%<;X=.##&&!&'#/#$+\")(\"'#&'#/\"!&,)"),$('%;Y/9#$;\\0#*;\\&/)$8":u""! )("\'#&\'#'),$("%;ȿ/1#;]/($8\":v\"! )(\"'#&'#.H &%;ȿ/>#;^/5$;ȿ/,$;Y/#$+$)($'#(#'#(\"'#&'#"),$('%3w""5$7x/?#;ȿ/6$3y""5$7z/\'$8#:{# )(#\'#("\'#&\'#.? &%;ǻ/& 8!:|! ).. &%;ȅ/& 8!:{! )'),$(";ŷ./ &;ŵ.) &;Ŷ.# &;Ŵ"),$("<%;lj/i#;ȿ/`$;Ơ/W$;p/N$;ȿ/E$;`/<$;ȿ/3$;ơ/*$8(:~(#'$\")(('#(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7}"),$("<%;ƿ/:#;ȿ/1$;&/($8#:€#! )(#'#(\"'#&'#=.\" 7"),$("<%;Lj/“#;ȿ/Š$;b.\" &\"/|$;ȿ/s$$;c/�#*;c&&&#/]$;ȿ/T$;d.\" &\"/F$;ȿ/=$;Ǡ/4$;ȿ/+$8*:‚*$)'%#)(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7"),$("%%<;Ȱ=.##&&!&'#/1#;p/($8\":ƒ\"! )(\"'#&'#"),$("<%;Ȱ/i#;ȿ/`$;p/W$;ȿ/N$;Ȥ/E$;ȿ/<$;p/3$;ȿ/*$8(:…(#'%!)(('#(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7„"),$("<%;ǟ/D#;ȿ/;$;p/2$;ȿ/)$8$:‡$\"#!)($'#(#'#(\"'#&'#=.\" 7†"),$("%;[/;#;ȿ/2$;f/)$8#:ˆ#\"\" )(#'#(\"'#&'#.# &;["),$(";l.) &;i.# &;g"),$('<%;k." &"/o#;ǿ./ &;ǫ.) &;Ȕ.# &;ȁ/T$;ȿ/K$;p/B$;ȿ/9$;h." &"/+$8&:Š&$%$" )(&\'#(%\'#($\'#(#\'#("\'#&\'#=." 7‰'),$("<%;ǡ/D#;ȿ/;$;p/2$;ȿ/)$8$:Œ$\"#!)($'#(#'#(\"'#&'#=.\" 7‹"),$('<%;k." &"/E#;Dž/<$;ȿ/3$;j/*$8$:Ž$##" )($\'#(#\'#("\'#&\'#=." 7'),$("%;e/W#%;ȿ/>#;ƾ/5$;ȿ/,$;e/#$+$)($'#(#'#(\"'#&'#/)$8\":\"\"! )(\"'#&'#"),$('%;Ȅ/1#;ȿ/($8":"!!)("\'#&\'#'),$('<%;k." &"/E#;DZ/<$;ȿ/3$;m/*$8$:’$##" )($\'#(#\'#("\'#&\'#=." 7‘'),$(";n.# &;Ż"),$("%;Ơ/I#;•.# &;q/:$;ȿ/1$;ơ/($8$:“$!\")($'#(#'#(\"'#&'#"),$("%;e/ƒ#$%;ȿ/>#;ƾ/5$;ȿ/,$;e/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;ƾ/5$;ȿ/,$;e/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$("%;o/ƒ#$%;ȿ/>#;Ȋ/5$;ȿ/,$;o/#$+$)($'#(#'#(\"'#&'#0H*%;ȿ/>#;Ȋ/5$;ȿ/,$;o/#$+$)($'#(#'#(\"'#&'#&/)$8\":u\"\"! )(\"'#&'#"),$('<%;r." &"/1#;ȿ/($8":•"!!)("\'#&\'#=." 7”'),$("%;p/B#;ȿ/9$$;s0#*;s&/)$8#:–#\"\" )(#'#(\"'#&'#"),$("%;Ƣ/:#;p/1$;ȿ/($8#:“#!!)(#'#(\"'#&'#"),$("<%;ź/[#;ȿ/R$;Ơ/I$;u.\" &\"/;$;ȿ/2$;ơ/)$8&:˜&\"%\")(&'#(%'#($'#(#'#(\"'#&'#=.\" 7—"),$('<%;Û/\' 8!:š!! ).V &%;v." &"/G#;q/>$9:› "! -""&!&#/)$8#:œ#""!)(#\'#("\'#&\'#=." 7™'),$('%;ǜ.# &;ƻ/1#;ȿ/($8":"!!)("\'#&\'#'),$("<%;//' 8!:Ÿ!! )=.\" 7ž"),$('<%;y." &"/;#;{/2$;ȿ/)$8#:¡#""!)(#\'#("\'#&\'#=." 7 '),$('<%;ǥ/@#;ȿ/7$;z." &"/)$8#:£#"" )(#\'#("\'#&\'#=." 7¢'),$("<%;Ȑ/D#;ȿ/;$;ȍ/2$;ȿ/)$8$:¥$\"#!)($'#(#'#(\"'#&'#=.\" 7¤"),$(";Œ.S &;û.M &;Ţ.G &;}.A &;|.; &;†.5 &;€./ &;„.) &;….# &;–"),$('<%;Ǎ.# &;Ǡ/@#;ȿ/7$;~." &"/)$8#:§#"" )(#\'#("\'#&\'#=." 7¦'),$('<%;DŽ/^#;ȿ/U$;." &"/G$;~." &"/9$;‚." &"/+$8%:©%$$"! )(%\'#($\'#(#\'#("\'#&\'#=." 7¨'),$('%;Ȧ/1#;ȿ/($8":ª"!!)("\'#&\'#'),$('%;ǘ.) &;ǰ.# &;ǣ/1#;ȿ/($8":«"!!)("\'#&\'#'),$('<%;ț/N#;ȿ/E$;~." &"/7$;." &"/)$8$:­$"# )($\'#(#\'#("\'#&\'#=." 7¬'),$('<%%;ȥ/,#;ȿ/#$+")("\'#&\'#." &"/?#;ƒ." &"/1$;‚/($8#:p#! )(#\'#("\'#&\'#=." 7®'),$('%;Ƃ/1#;ȿ/($8":¯"!!)("\'#&\'#'),$('%;Ȟ/1#;ȿ/($8":°"!!)("\'#&\'#'),$('<%;ƒ/2#;‚/)$8":²""! )("\'#&\'#=." 7±'),$("<%;Ȗ/J#;ȿ/A$;ƒ.\" &\"/3$;‚/*$8$:´$##! )($'#(#'#(\"'#&'#=.\" 7³"),$("<%;‡/N#;Ż/E$;ȿ/<$;ˆ/3$;ȿ/*$8%:¶%#$#!)(%'#($'#(#'#(\"'#&'#=.\" 7µ"),$("<%;Ƽ/D#;ȿ/;$;ȡ/2$;ȿ/)$8$:¸$\"#!)($'#(#'#(\"'#&'#=.\" 7·"),$(";‰.# &;Š"),$("<%;ȗ/M#;ȿ/D$;ȥ/;$;ȿ/2$;Ż/)$8%:º%\"$ )(%'#($'#(#'#(\"'#&'#=.\" 7¹"),$('<%;ƹ/I#;ȿ/@$;‹." &"/2$;Č/)$8$:¼$"# )($\'#(#\'#("\'#&\'#=." 7»'),$('%;nj/1#;ȿ/($8":°"!!)("\'#&\'#'),$('%;/2#;§/)$8":½""! )("\'#&\'#'),$('<%;Ž." &"/1#;ȿ/($8":*"!!)("\'#&\'#=." 7¾'),$("%;Ȳ/J#;ȿ/A$;.\" &\"/3$;/*$8$:¿$##! )($'#(#'#(\"'#&'#"),$('%;Ȓ/1#;ȿ/($8":°"!!)("\'#&\'#'),$("%;’/B#;ȿ/9$$;‘0#*;‘&/)$8#:À#\"\" )(#'#(\"'#&'#"),$("%;Ƣ/:#;’/1$;ȿ/($8#:“#!!)(#'#(\"'#&'#"),$('<%;Ƈ/2#;“/)$8":Â""! )("\'#&\'#=." 7Á'),$("%;ƿ/:#;ȿ/1$;”/($8#:Ã#! )(#'#(\"'#&'#"),$("%;Ơ/C#;•/:$;ȿ/1$;ơ/($8$: $!\")($'#(#'#(\"'#&'#"),$('%;/2#;¨/)$8":Ä""! )("\'#&\'#'),$(";—.; &;™.5 &;š./ &;œ.) &;ž.# &; "),$("<%;ǁ/‹#;ȿ/‚$%;Ǖ/,#;ȿ/#$+\")(\"'#&'#.\" &\"/a$;p/X$;ȿ/O$;ƿ/F$;ȿ/=$;˜/4$;ȿ/+$8):Æ)$(&%!)()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7Å"),$(";Ź.) &;-.# &;?"),$("<%;Ǜ/f#;ȿ/]$%;Ǖ/,#;ȿ/#$+\")(\"'#&'#.\" &\"/<$;˜/3$;ȿ/*$8%:È%#$\"!)(%'#($'#(#'#(\"'#&'#=.\" 7Ç"),$('<%;Ȭ/@#;ȿ/7$;›." &"/)$8#:Ê#"" )(#\'#("\'#&\'#=." 7É'),$('%;Ź/1#;ȿ/($8":Ë"!!)("\'#&\'#'),$('<%;ƽ/@#;ȿ/7$;." &"/)$8#:Í#"" )(#\'#("\'#&\'#=." 7Ì'),$('%;Ż.) &;ƃ.# &;Ź/1#;ȿ/($8":Î"!!)("\'#&\'#'),$('<%;ȕ/I#;ȿ/@$;Ÿ." &"/2$;ȿ/)$8$:Í$"#!)($\'#(#\'#("\'#&\'#=." 7Ï'),$('%;Ż.) &;ƃ.# &;Ɓ/1#;ȿ/($8":Ð"!!)("\'#&\'#'),$("<%;Ȏ/S#;ȿ/J$;Ɔ/A$;ȿ/8$;¡.\" &\"/*$8%:Ò%#$\" )(%'#($'#(#'#(\"'#&'#=.\" 7Ñ"),$("%;Ơ/C#;¢/:$;ȿ/1$;ơ/($8$:Ó$!\")($'#(#'#(\"'#&'#.D &%;Ƭ/:#;¢/1$;ȿ/($8#:Ó#!!)(#'#(\"'#&'#"),$(";¤.) &;£.# &;¦"),$(";5.) &;/.# &;3"),$('%;¥/<#9:Ô ! -""&!&#/($8":Õ"!!)("\'#&\'#'),$("%$;Ɠ/�#*;Ɠ&&&#/' 8!:Ö!! )"),$("%;¥/' 8!:×!! )"),$(";¨./ &;Ý.) &;ò.# &;ù"),$('<%;®/X#;ȿ/O$;©." &"/A$;ȿ/8$;ª." &"/*$8%:Ù%#$" )(%\'#($\'#(#\'#("\'#&\'#=." 7Ø'),$("<%;ȋ/L#;ȿ/C$;dž/:$;ȿ/1$;Ø/($8%:Û%! )(%'#($'#(#'#(\"'#&'#=.\" 7Ú"),$("<%;Ȁ/S#;ȿ/J$;p/A$;ȿ/8$;«.\" &\"/*$8%:Ý%#$\" )(%'#($'#(#'#(\"'#&'#=.\" 7Ü"),$('<%;¬/2#;p/)$8":ß""! )("\'#&\'#=." 7Þ'),$(";­.# &;Ƣ"),$('%;Ȉ/1#;ȿ/($8":°"!!)("\'#&\'#'),$("%;°/B#;ȿ/9$$;¯0#*;¯&/)$8#:à#\"\" )(#'#(\"'#&'#"),$("<%;ï/D#;ȿ/;$;°/2$;ȿ/)$8$:â$\"#!)($'#(#'#(\"'#&'#=.\" 7á"),$(";±.# &;×"),$('%;²/U#;¸." &"/G$;¹." &"/9$;º." &"/+$8$:ã$$#"! )($\'#(#\'#("\'#&\'#'),$('<%;ȟ/R#;ȿ/I$;³." &"/;$;ȿ/2$;¶/)$8%:å%"" )(%\'#($\'#(#\'#("\'#&\'#=." 7ä'),$('<;´.# &;µ=." 7æ'),$('%;ǜ/1#;ȿ/($8":ç"!!)("\'#&\'#'),$('%;ƻ/1#;ȿ/($8":è"!!)("\'#&\'#'),$("%;¼/B#;ȿ/9$$;·0#*;·&/)$8#:À#\"\" )(#'#(\"'#&'#"),$("%;Ƣ/:#;¼/1$;ȿ/($8#:-#!!)(#'#(\"'#&'#"),$("<%;ǩ/D#;ȿ/;$;À/2$;ȿ/)$8$:ê$\"#!)($'#(#'#(\"'#&'#=.\" 7é"),$("<%;ȱ/D#;ȿ/;$;p/2$;ȿ/)$8$:ì$\"#!)($'#(#'#(\"'#&'#=.\" 7ë"),$("<%;Ǭ/e#;ȿ/\\$;dž/S$;ȿ/J$;q/A$;ȿ/8$;».\" &\"/*$8':î'#&\" )(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7í"),$("<%;ǭ/D#;ȿ/;$;p/2$;ȿ/)$8$:ð$\"#!)($'#(#'#(\"'#&'#=.\" 7ï"),$(";½.# &;¿"),$('%;¾." &"/2#;Û/)$8":ñ""! )("\'#&\'#'),$('%;ƕ/2#;ƣ/)$8":ò""! )("\'#&\'#'),$('%;p/@#;ȿ/7$;Í." &"/)$8#:ó#"" )(#\'#("\'#&\'#'),$("%;Ä/B#;ȿ/9$$;Á0#*;Á&/)$8#:ô#\"\" )(#'#(\"'#&'#"),$('%;Â.# &;Ã/7#;Ô." &"/)$8":õ""! )("\'#&\'#'),$("<%;Ƣ/:#;Ä/1$;ȿ/($8#:÷#!!)(#'#(\"'#&'#=.\" 7ö"),$("<%;Î/D#;ȿ/;$;Ä/2$;ȿ/)$8$:ù$\"#!)($'#(#'#(\"'#&'#=.\" 7ø"),$(";Ë.5 &;?./ &;Å.) &;Æ.# &;Ì"),$("%;ź/S#;ȿ/J$;í/A$;ȿ/8$;Í.\" &\"/*$8%:ú%#$\" )(%'#($'#(#'#(\"'#&'#"),$('<%;Ç/@#;ȿ/7$;È." &"/)$8#:ü#"" )(#\'#("\'#&\'#=." 7û'),$('<%;Ż/@#;ȿ/7$;Í." &"/)$8#:þ#"" )(#\'#("\'#&\'#=." 7ý'),$('<;É.# &;Ê=." 7ÿ'),$("%;dz/V#;ȿ/M$;dž/D$;ȿ/;$;ƃ/2$;ȿ/)$8&:Ā&\"%!)(&'#(%'#($'#(#'#(\"'#&'#"),$("%;k/;#;dz/2$;ȿ/)$8#:ā#\"\"!)(#'#(\"'#&'#"),$("<%;Ơ/R#;À/I$;ȿ/@$;ơ/7$;Í.\" &\"/)$8%:ă%\"# )(%'#($'#(#'#(\"'#&'#=.\" 7Ă"),$('<%;”/7#;Í." &"/)$8":ą""! )("\'#&\'#=." 7Ą'),$('<%%;ƿ/Q#%%<;Ɠ.# &;ȶ=.##&&!&\'#/,#;ȿ/#$+")("\'#&\'#/#$+")("\'#&\'#." &"/;#;ƕ/2$;ȿ/)$8#:ć#""!)(#\'#("\'#&\'#=." 7Ć'),$('<%;Ï." &"/J#;ȿ/A$;Ð." &"/3$;Ǽ/*$8$:ĉ$##! )($\'#(#\'#("\'#&\'#=." 7Ĉ'),$('%;Ȃ/1#;ȿ/($8":"!!)("\'#&\'#'),$(";Ñ.# &;Ó"),$('%;Ǿ.) &;Ț.# &;Ǫ/@#;ȿ/7$;Ò." &"/)$8#:Ċ#"" )(#\'#("\'#&\'#'),$('%;Ȍ/1#;ȿ/($8":ċ"!!)("\'#&\'#'),$('%;ǵ.# &;Ǒ/1#;ȿ/($8":ċ"!!)("\'#&\'#'),$('<%;Õ.# &;Ö/1#;ȿ/($8":č"!!)("\'#&\'#=." 7Č'),$('<%;ȉ/;#;ȿ/2$;p/)$8#:ď#"" )(#\'#("\'#&\'#=." 7Ď'),$('<%;ȫ/;#;ȿ/2$;æ/)$8#:đ#"" )(#\'#("\'#&\'#=." 7Đ'),$('<%;ȭ/;#;ȿ/2$;ë/)$8#:ē#"" )(#\'#("\'#&\'#=." 7Ē'),$("%;Ú/B#;ȿ/9$$;Ù0#*;Ù&/)$8#:Ĕ#\"\" )(#'#(\"'#&'#"),$("%;Ƣ/:#;Ú/1$;ȿ/($8#:ĕ#!!)(#'#(\"'#&'#"),$('<%;p/@#;ȿ/7$;į." &"/)$8#:ė#"" )(#\'#("\'#&\'#=." 7Ė'),$('<;Ƥ=." 7Ę'),$('<;Ș.5 &;ț./ &;Ʒ.) &;Ǧ.# &;ǯ=." 7ę'),$('<%;Þ/;#;ȿ/2$;â/)$8#:ě#"" )(#\'#("\'#&\'#=." 7Ě'),$(";ß.# &;à"),$('<%;Ƕ/@#;ȿ/7$;á." &"/)$8#:ĝ#"" )(#\'#("\'#&\'#=." 7Ĝ'),$('<%;Ș/1#;ȿ/($8":ğ"!!)("\'#&\'#=." 7Ğ'),$('<%;Ȋ/;#;ȿ/2$;Ü/)$8#:ġ#"" )(#\'#("\'#&\'#=." 7Ġ'),$('%;ã/2#;å/)$8":Ģ""! )("\'#&\'#'),$('<%;ä/2#;Ƈ/)$8":Ĥ""! )("\'#&\'#=." 7ģ'),$('<%;ǹ/,#;ȿ/#$+")("\'#&\'#=." 7ĥ'),$('<%;é.) &;•.# &;î/1#;ȿ/($8":Ħ"!!)("\'#&\'#=." 7Ē'),$("<%;Ơ/T#;è/K$;ȿ/B$$;ç0#*;ç&/2$;ơ/)$8%:Ĩ%\"#!)(%'#($'#(#'#(\"'#&'#=.\" 7ħ"),$("%;Ƣ/:#;è/1$;ȿ/($8#:ĩ#!!)(#'#(\"'#&'#"),$("<%;Ÿ/' 8!:ī!! )=.\" 7Ī"),$('<%;ê/2#;ë/)$8":Ĭ""! )("\'#&\'#=." 7Ē'),$('<%;ȭ/1#;ȿ/($8":°"!!)("\'#&\'#=." 7ĭ'),$("%;í/B#;ȿ/9$$;ì0#*;ì&/)$8#:Į#\"\" )(#'#(\"'#&'#"),$("%;Ƣ/:#;í/1$;ȿ/($8#:“#!!)(#'#(\"'#&'#"),$("<%;Ơ/C#;q/:$;ȿ/1$;ơ/($8$:İ$!\")($'#(#'#(\"'#&'#=.\" 7į"),$('<%;ǖ/;#;ȿ/2$;ȭ/)$8#:IJ#"" )(#\'#("\'#&\'#=." 7ı'),$("<%;ð.) &;Ǹ.# &;Ǣ/' 8!:°!! )=.\" 7ij"),$('<%;Ȩ/@#;ȿ/7$;ñ." &"/)$8#:ĵ#"" )(#\'#("\'#&\'#=." 7Ĵ'),$('%;ƻ/1#;ȿ/($8":Ķ"!!)("\'#&\'#'),$("<%;ó/Š#;ô.\" &\"/|$;Æ/s$;ȿ/j$;õ/a$;¹.\" &\"/S$;©.\" &\"/E$;ȿ/<$;ª.\" &\"/.$8):ĸ)'('&$#\" )()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7ķ"),$('<%;Ȫ/1#;ȿ/($8":°"!!)("\'#&\'#=." 7Ĺ'),$("<%;Ȋ/C#;ȿ/:$;Ü/1$;ȿ/($8$:Ļ$!!)($'#(#'#(\"'#&'#=.\" 7ĺ"),$("<%;Ƞ/C#;ȿ/:$;ö/1$;ȿ/($8$:Ľ$!!)($'#(#'#(\"'#&'#=.\" 7ļ"),$('%;ø/9#$;÷0#*;÷&/)$8":Į""! )("\'#&\'#'),$("%;ȿ/:#;Ƣ/1$;ø/($8#:ĩ#! )(#'#(\"'#&'#"),$("<%;Ž/M#;ȿ/D$;Ƭ/;$;p/2$;ȿ/)$8%:Ŀ%\"$!)(%'#($'#(#'#(\"'#&'#=.\" 7ľ"),$('<%;ú/h#;Æ/_$;ȿ/V$;¹." &"/H$;©." &"/:$;ª." &"/,$8&:Ł&%%$"! )(&\'#(%\'#($\'#(#\'#("\'#&\'#=." 7ŀ'),$("<%;Ǚ/C#;ȿ/:$;ǩ/1$;ȿ/($8$:°$!#)($'#(#'#(\"'#&'#=.\" 7ł"),$('<;ý.5 &;þ./ &;ÿ.) &;Ā.# &;ā=." 7Ń'),$('%;ǐ/1#;ȿ/($8":°"!!)("\'#&\'#'),$("%%<%;ü/>#;Dz./ &;ȧ.) &;Ȯ.# &;ȯ/#$+\")(\"'#&'#=.##&&!&'#/1#;Ă/($8\":ĩ\"! )(\"'#&'#"),$("%%<%;ü/>#;ȡ./ &;ȧ.) &;Ȯ.# &;ȯ/#$+\")(\"'#&'#=.##&&!&'#/1#;Ń/($8\":ĩ\"! )(\"'#&'#"),$("%%<%;ü/>#;ȡ./ &;Dz.) &;Ȯ.# &;ȯ/#$+\")(\"'#&'#=.##&&!&'#/1#;Ň/($8\":ĩ\"! )(\"'#&'#"),$("%%<%;ü/>#;ȡ./ &;Dz.) &;ȧ.# &;ȯ/#$+\")(\"'#&'#=.##&&!&'#/1#;Ŗ/($8\":ĩ\"! )(\"'#&'#"),$("%%<%;ü/>#;ȡ./ &;Dz.) &;ȧ.# &;Ȯ/#$+\")(\"'#&'#=.##&&!&'#/1#;Ś/($8\":ĩ\"! )(\"'#&'#"),$("<%;ă/T#;ą.\" &\"/F$;Ż/=$;ȿ/4$;Ć/+$8%:Ņ%$$#\" )(%'#($'#(#'#(\"'#&'#=.\" 7ń"),$("%;ü/J#;Ą.\" &\"/<$;ȡ/3$;ȿ/*$8$:ņ$##\"!)($'#(#'#(\"'#&'#"),$('%;ȣ.# &;Ȣ/1#;ȿ/($8":Ň"!!)("\'#&\'#'),$("<%;Ǯ/N#;ȿ/E$;k/<$;Ǥ/3$;ȿ/*$8%:ʼn%#$\"!)(%'#($'#(#'#(\"'#&'#=.\" 7ň"),$(";ć.# &;ł"),$("<%;Ơ/Z#;ĉ/Q$$;ċ0#*;ċ&/A$;ơ/8$;Ĉ.\" &\"/*$8%:ŋ%##\" )(%'#($'#(#'#(\"'#&'#=.\" 7Ŋ"),$("%;ȳ/D#;ȿ/;$;ȝ/2$;ȿ/)$8$:Ō$\"#!)($'#(#'#(\"'#&'#"),$("%;Č/B#;ȿ/9$$;Ċ0#*;Ċ&/)$8#:Į#\"\" )(#'#(\"'#&'#"),$("%;Ƣ/:#;Č/1$;ȿ/($8#:ª#!!)(#'#(\"'#&'#"),$('%;Ƣ." &"/1#;Ġ/($8":ō"! )("\'#&\'#'),$('<%;č/O#;ȿ/F$;Ď." &"/8$;ď." &"/*$8$:ŏ$##! )($\'#(#\'#("\'#&\'#=." 7Ŏ'),$("%;ƕ/=#%<;ȿ=/##&'!&&#/($8\":p\"!!)(\"'#&'#.\\ &%%<;Ď.) &;đ.# &;Ġ=.##&&!&'#/:#;ȿ/1$;Ƙ/($8#:p#! )(#'#(\"'#&'#"),$('<%;&/1#;ȿ/($8":ő"!!)("\'#&\'#=." 7Ő'),$("%;đ/B#$;Đ0#*;Đ&/2$;ȿ/)$8#:Į#\"\"!)(#'#(\"'#&'#"),$('%;ȿ/1#;đ/($8":ĩ"! )("\'#&\'#'),$('<%;Ē." &"/A#;Ĕ/8$;Ē." &"/*$8#:œ##"! )(#\'#("\'#&\'#=." 7Œ'),$("%$;ē/�#*;ē&&&#/' 8!:Ŕ!! )"),$("<%;Ǐ/C#;ȿ/:$;ƕ/1$;ȿ/($8$:Ŗ$!!)($'#(#'#(\"'#&'#=.\" 7ŕ"),$(";Ė.; &;ę.5 &;Ĝ./ &;ĝ.) &;ğ.# &;ĕ"),$("<%;ĵ/' 8!:Ř!! )=.\" 7ŗ"),$('<%;ė/U#;į." &"/G$;İ." &"/9$;Ę." &"/+$8$:Ś$$#"! )($\'#(#\'#("\'#&\'#=." 7ř'),$("<%;ȏ.# &;Ȏ/D#;ȿ/;$;ǽ/2$;ȿ/)$8$:Ŝ$\"#!)($'#(#'#(\"'#&'#=.\" 7ś"),$('<%;ǂ/1#;ȿ/($8":Ş"!!)("\'#&\'#=." 7ŝ'),$('%;Ě/@#;İ." &"/2$;ȿ/)$8#:ş#""!)(#\'#("\'#&\'#'),$('<%;ě.# &;ȩ/1#;ȿ/($8":ċ"!!)("\'#&\'#=." 7Š'),$('<%;k." &"/2#;Ȇ/)$8":Ţ""! )("\'#&\'#=." 7š'),$('<;IJ=." 7ţ'),$("<%;ǖ/D#;ȿ/;$;Ğ/2$;ȿ/)$8$:ť$\"#!)($'#(#'#(\"'#&'#=.\" 7Ť"),$(";L./ &;5.) &;,.# &;3"),$("<%;ĭ/' 8!:ŧ!! )=.\" 7Ŧ"),$('<%;Ē." &"/J#;ġ/A$;ȿ/8$;Ē." &"/*$8$:ũ$##" )($\'#(#\'#("\'#&\'#=." 7Ũ'),$(";ij.) &;ģ.# &;Ģ"),$("<%;IJ/' 8!:ū!! )=.\" 7Ū"),$("<%;Ĥ/J#;ȿ/A$;ĩ/8$;İ.\" &\"/*$8$:ŭ$##! )($'#(#'#(\"'#&'#=.\" 7Ŭ"),$('%;ĥ.# &;Ħ/1#;ȿ/($8":Ů"!!)("\'#&\'#'),$('<%;ȏ/;#;ȿ/2$;ǽ/)$8#:ů#"" )(#\'#("\'#&\'#=." 7ś'),$("<%;ȩ/' 8!:ű!! )=.\" 7Ű"),$("%;Ơ/T#;ī/K$;ȿ/B$$;Ī0#*;Ī&/2$;ơ/)$8%:Ų%\"#!)(%'#($'#(#'#(\"'#&'#"),$("%;ħ/' 8!:ų!! )"),$("%;ħ/' 8!:Ŵ!! )"),$("%;Ƣ/:#;ī/1$;ȿ/($8#:ĩ#!!)(#'#(\"'#&'#"),$('<%;Ĭ/O#;ȿ/F$;į." &"/8$;Ę." &"/*$8$:Ŷ$##! )($\'#(#\'#("\'#&\'#=." 7ŵ'),$("%;è/\\#%<%;ȿ/8#;Ƴ.) &;ơ.# &;į/#$+\")(\"'#&'#=/##&'!&&#/($8\":p\"!!)(\"'#&'#.# &;p"),$("<%$;Į/�#*;Į&&&#/' 8!:Ÿ!! )=.\" 7ŷ"),$("%;Nj/C#;ȿ/:$;Ɓ/1$;ȿ/($8$:p$!!)($'#(#'#(\"'#&'#"),$('<%;ǀ.# &;ǚ/1#;ȿ/($8":ź"!!)("\'#&\'#=." 7Ź'),$("%;ı/;#;Ü/2$;ȿ/)$8#:Ż#\"\"!)(#'#(\"'#&'#"),$("<%;ȉ/D#;ȿ/;$;ǎ/2$;ȿ/)$8$:Ž$\"#!)($'#(#'#(\"'#&'#=.\" 7ż"),$("%;NJ/;#;ȿ/2$;L/)$8#:ž#\"\" )(#'#(\"'#&'#"),$("<%;Ĵ/E#;æ/<$;ĵ/3$;ȿ/*$8$:ƀ$##\"!)($'#(#'#(\"'#&'#=.\" 7ſ"),$("<%;Ǩ/D#;ȿ/;$;ǽ/2$;ȿ/)$8$:Ƃ$\"#!)($'#(#'#(\"'#&'#=.\" 7Ɓ"),$('%;Ķ/F#;ķ." &"/8$;ŀ." &"/*$8#:ƃ##"! )(#\'#("\'#&\'#'),$("<%;ȓ/D#;ȿ/;$;Ƈ/2$;ȿ/)$8$:ƅ$\"#!)($'#(#'#(\"'#&'#=.\" 7Ƅ"),$("%;Ĺ/B#;ȿ/9$$;ĸ0#*;ĸ&/)$8#:Ɔ#\"\" )(#'#(\"'#&'#"),$('%;Ĺ/1#;ȿ/($8":Ķ"!!)("\'#&\'#'),$('<;ĺ.# &;Ŀ=." 7Ƈ'),$("%;ȉ/T#;ȿ/K$;Ǚ.# &;Ȫ/<$;ȿ/3$;Ļ/*$8%:ƈ%#$\" )(%'#($'#(#'#(\"'#&'#"),$('<;ļ.) &;Ľ.# &;ľ=." 7Ɖ'),$("%;Ƞ/J#;ȿ/A$;Ȇ.# &;ǖ/2$;ȿ/)$8$:Ɗ$\"#!)($'#(#'#(\"'#&'#"),$('%;LJ.# &;ș/1#;ȿ/($8":Ƌ"!!)("\'#&\'#'),$("%;ȃ/D#;ȿ/;$;Ƹ/2$;ȿ/)$8$:ƌ$\"#!)($'#(#'#(\"'#&'#"),$("%;ȁ/D#;ȿ/;$;ƕ/2$;ȿ/)$8$:ƍ$\"#!)($'#(#'#(\"'#&'#"),$('<%;k." &"/J#;Ǘ/A$;ȿ/8$;Ł." &"/*$8$:Ə$##" )($\'#(#\'#("\'#&\'#=." 7Ǝ'),$("%;Ǵ/J#;ȿ/A$;ǘ.# &;ǰ/2$;ȿ/)$8$:Ɛ$\"#!)($'#(#'#(\"'#&'#"),$("%;ř/' 8!:Ƒ!! )"),$("<%;ń/c#;ą.\" &\"/U$;ƃ/L$;ȿ/C$;ņ/:$;¹.\" &\"/,$8&:Ɠ&%%$#! )(&'#(%'#($'#(#'#(\"'#&'#=.\" 7ƒ"),$("%;ü/J#;Ņ.\" &\"/<$;Dz/3$;ȿ/*$8$:Ɣ$##\"!)($'#(#'#(\"'#&'#"),$('%;ȩ/1#;ȿ/($8":ƕ"!!)("\'#&\'#'),$("<%;ȉ/N#;ȿ/E$;Ż/<$;ȿ/3$;Ĩ/*$8%:Ɨ%#$\" )(%'#($'#(#'#(\"'#&'#=.\" 7Ɩ"),$("<%;ň/¦#;ą.\" &\"/˜$;Ƅ.\" &\"/Š$;ȿ/$;ʼn/x$;ȉ/o$;ȿ/f$;Ż/]$;ȿ/T$;ő.\" &\"/F$;Œ.\" &\"/8$;œ//$8,:ƙ,(+*)'$\"! )(,'#(+'#(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7Ƙ"),$("%;ü/J#;Ą.\" &\"/<$;ȧ/3$;ȿ/*$8$:ƚ$##\"!)($'#(#'#(\"'#&'#"),$('<%;Ŋ." &"/2#;Ō/)$8":Ɯ""! )("\'#&\'#=." 7ƛ'),$('%;ǃ.) &;ƺ.# &;ŋ/1#;ȿ/($8":Ɲ"!!)("\'#&\'#'),$("%;Ƿ/;#;ȿ/2$;ȇ/)$8#:ƞ#\"\" )(#'#(\"'#&'#"),$('<;ō.# &;Ŏ=." 7Ɵ'),$('%;Ǚ.# &;Ƕ/1#;ȿ/($8":Ơ"!!)("\'#&\'#'),$('%;Ȫ/@#;ȿ/7$;ŏ." &"/)$8#:ơ#"" )(#\'#("\'#&\'#'),$("%;ȇ/;#;ȿ/2$;Ő/)$8#:Ƣ#\"\" )(#'#(\"'#&'#"),$("%;è/B#;ȿ/9$$;ç0#*;ç&/)$8#:Į#\"\" )(#'#(\"'#&'#"),$("%;ǧ/c#;ȿ/Z$;Ǟ/Q$;ȿ/H$;Ȝ.) &3ƣ\"\"5)7Ƥ/3$;ȿ/*$8&:ƥ&#%#!)(&'#(%'#($'#(#'#(\"'#&'#"),$("<%;Ȱ/D#;ȿ/;$;p/2$;ȿ/)$8$:Ʀ$\"#!)($'#(#'#(\"'#&'#=.\" 7„"),$("<%;DŽ/W#;ȿ/N$;Ŕ/E$;ȿ/<$;Ǡ/3$;ȿ/*$8&:ƨ&#%#!)(&'#(%'#($'#(#'#(\"'#&'#=.\" 7Ƨ"),$("%$;ŕ/�#*;ŕ&&&#/' 8!:Ʃ!! )"),$("%;Œ/:#;ȿ/1$;$/($8#:\"#!\")(#'#(\"'#&'#"),$("<%;Ř/T#;ą.\" &\"/F$;ŗ/=$;ȿ/4$;ř/+$8%:ƫ%$$#\" )(%'#($'#(#'#(\"'#&'#=.\" 7ƪ"),$("%;ƅ/;#;ȿ/2$;æ/)$8#:Ƭ#\"\" )(#'#(\"'#&'#.# &;ƅ"),$("%;ü/J#;Ą.\" &\"/<$;Ȯ/3$;ȿ/*$8$:ƭ$##\"!)($'#(#'#(\"'#&'#"),$("%;ƿ/D#;ȿ/;$;¨/2$;ȿ/)$8$:Ĭ$\"#!)($'#(#'#(\"'#&'#"),$("<%;ś/f#;ą.\" &\"/X$;Ż/O$;ȿ/F$;ȫ/=$;ȿ/4$;Ŝ/+$8':Ư'$&%$ )(''#(&'#(%'#($'#(#'#(\"'#&'#=.\" 7Ʈ"),$("%;ü/N#;ȯ/E$;ȿ/<$;ȡ/3$;ȿ/*$8%:ư%#$#!)(%'#($'#(#'#(\"'#&'#"),$('%;Ɨ/@#;ȿ/7$;ŝ." &"/)$8#:Ʊ#"" )(#\'#("\'#&\'#'),$("<%;Ơ/Z#;ȿ/Q$;Ş.\" &\"/C$;ȿ/:$;ơ/1$;ȿ/($8&:Ƴ&!#)(&'#(%'#($'#(#'#(\"'#&'#=.\" 7Ʋ"),$('%;Š/9#$;ş0#*;ş&/)$8":ƴ""! )("\'#&\'#'),$("%;ȿ/H#;Ƣ/?$;ȿ/6$;Š.\" &\"/($8$:Ƶ$! )($'#(#'#(\"'#&'#"),$("%%<%;ƕ/;#;ȿ/2$;&.# &;đ/#$+#)(#'#(\"'#&'#=.##&&!&'#/:#;p/1$;ȿ/($8#:İ#!!)(#'#(\"'#&'#.x &%;š/n#%%<;Ɠ=.##&&!&'#/,#;ȿ/#$+\")(\"'#&'#/F$;Ď.\" &\"/8$;ď.\" &\"/*$8$:ŏ$##! )($'#(#'#(\"'#&'#"),$(";ƕ.# &;Ƙ"),$('<%;ţ/;#;Ż/2$;ȿ/)$8#:Ʒ#""!)(#\'#("\'#&\'#=." 7ƶ'),$("<%;ǝ/J#;ȿ/A$;Ť/8$;ť.\" &\"/*$8$:ƹ$##! )($'#(#'#(\"'#&'#=.\" 7Ƹ"),$('<%;ȡ./ &;Dz.) &;ȧ.# &;Ȯ/1#;ȿ/($8":ċ"!!)("\'#&\'#=." 7ƺ'),$("<%;Ǯ/D#;ȿ/;$;Ǥ/2$;ȿ/)$8$:Ƽ$\"#!)($'#(#'#(\"'#&'#=.\" 7ƻ"),$('<%;Ʈ/,#;Ʈ/#$+")("\'#&\'#=." 7ƽ'),$('<;ƪ=." 7ƾ'),$('<;ƫ=." 7ƿ'),$('<;Ƥ=." 7ǀ'),$('<;Ƶ=." 7ǁ'),$('<;Ư=." 7ǂ'),$('<%;ư/,#;ư/#$+")("\'#&\'#=." 7ǃ'),$('<%;Ʊ/,#;Ʊ/#$+")("\'#&\'#=." 7DŽ'),$('<;ƭ=." 7Dž'),$('<;Ʈ=." 7dž'),$('<;ư=." 7LJ'),$('<;Ʊ=." 7Lj'),$('<%;ư/,#;Ƭ/#$+")("\'#&\'#=." 7lj'),$('<%;Ʊ/,#;Ƭ/#$+")("\'#&\'#=." 7NJ'),$('<%;Ƭ/1#;Ƭ." &"/#$+")("\'#&\'#=." 7Nj'),$('<%;Ʋ/,#;Ƭ/#$+")("\'#&\'#=." 7nj'),$('<%;ư/,#;Ʊ/#$+")("\'#&\'#=." 7nj'),$('<%;Ǻ/@#;ȿ/7$;k." &"/)$8#:ǎ#"" )(#\'#("\'#&\'#=." 7Ǎ'),$('<;ƕ.# &;Ƙ=." 7Ǐ'),$("<%;Ÿ/' 8!:Ǒ!! )=.\" 7ǐ"),$('<%;ż." &"/2#;Ÿ/)$8":Ǔ""! )("\'#&\'#=." 7ǒ'),$('<%;ż." &"/2#;Ÿ/)$8":Ǖ""! )("\'#&\'#=." 7ǔ'),$('%;Ÿ/2#;ƣ/)$8":ǖ""! )("\'#&\'#'),$('<%;ſ.) &;ƀ.# &;ž/2#;Ÿ/)$8":ǘ""! )("\'#&\'#=." 7Ǘ'),$("%;ȿ/& 8!:Ǚ! )"),$('%;ż/2#;ƀ/)$8":ǚ""! )("\'#&\'#'),$('%;Ÿ/2#;ƣ/)$8":D""! )("\'#&\'#'),$("<%;Ÿ/' 8!:ǜ!! )=.\" 7Ǜ"),$("<%;Ÿ/' 8!:Ǟ!! )=.\" 7ǝ"),$('<%;ż." &"/2#;Ÿ/)$8":Ǡ""! )("\'#&\'#=." 7ǟ'),$('<%;ż." &"/2#;Ÿ/)$8":Ǣ""! )("\'#&\'#=." 7ǡ'),$('<%;ż." &"/2#;Ÿ/)$8":Ǥ""! )("\'#&\'#=." 7ǣ'),$('<%;ż." &"/2#;Ÿ/)$8":Ǧ""! )("\'#&\'#=." 7ǥ'),$('<%;ƈ.# &;Ż/1#;ȿ/($8":Ǩ"!!)("\'#&\'#=." 7ǧ'),$("%;Ż/;#;ȿ/2$;æ/)$8#:ǩ#\"\" )(#'#(\"'#&'#"),$("<%;Ÿ/' 8!:ǫ!! )=.\" 7Ǫ"),$("<%;Ÿ/' 8!:ǭ!! )=.\" 7Ǭ"),$('<%;ƌ/=#%<;Ɠ=.##&&!&\'#/($8":ǯ"!!)("\'#&\'#.Å &%;ƍ/=#%<;Ɠ=.##&&!&\'#/($8":ǰ"!!)("\'#&\'#.› &%;Ə/=#%<;Ɠ=.##&&!&\'#/($8":DZ"!!)("\'#&\'#.q &%;Ɛ/=#%<;Ɠ=.##&&!&\'#/($8":Dz"!!)("\'#&\'#.G &%;ƒ/=#%<;Ɠ=.##&&!&\'#/($8":dz"!!)("\'#&\'#=." 7Ǯ'),$('<%%3ǵ""5!7Ƕ." &"/F#3Ƿ""5#7Ǹ." &"/2$3ǹ""5$7Ǻ/#$+#)(#\'#("\'#&\'#.k &%3ǻ""5$7Ǽ.5 &3ǽ""5&7Ǿ.) &3ǿ""5$7Ȁ." &"/2#3ȁ""5$7Ȃ/#$+")("\'#&\'#.) &3ȃ""5$7Ȅ/\' 8!:ċ!! )=." 7Ǵ'),$('<%;Ǝ.5 &3Ȇ""5%7ȇ.) &3Ȉ""5$7ȉ/\' 8!:ċ!! )=." 7ȅ'),$('<%3ȋ""5&7Ȍ/i#%$4(""5!7)/,#0)*4(""5!7)&&&#/2#3ȍ""5)7Ȏ/#$+")("\'#&\'#." &"/)$8":ȏ""! )("\'#&\'#=." 7Ȋ'),$('<%3ȑ""5\'7Ȓ.• &3ȓ""5\'7Ȕ.‰ &3ȕ""5\'7Ȗ.} &%3ȗ""5$7Ș/7#3ș""5$7Ț." &"/#$+")("\'#&\'#.S &%3ș""5$7Ț/7#3ț""5%7Ȝ." &"/#$+")("\'#&\'#.) &3ȝ""5&7Ȟ/\' 8!:ċ!! )=." 7Ȑ'),$('<%%3Ƞ""5#7ȡ/V#2Ȣ""6Ȣ7ȣ.A &2Ȥ""6Ȥ7ȥ.5 &2Ȧ""6Ȧ7ȧ.) &3Ȩ""5$7ȩ/#$+")("\'#&\'#.q &%3Ȫ""5#7ȫ.A &3ǽ""5&7Ǿ.5 &3Ȭ""5%7ȭ.) &3ǻ""5$7Ǽ." &"/2#3Ƞ""5#7ȡ/#$+")("\'#&\'#.# &;Ƒ/\' 8!:ċ!! )=." 7ȟ'),$('%3Ȯ""5(7ȯ/d#%$4(""5!7)/,#0)*4(""5!7)&&&#/2#3Ȱ""5%7ȱ/#$+")("\'#&\'#/)$8":Ȳ""! )("\'#&\'#'),$('<%3ȴ""5$7ȵ/\' 8!:ċ!! )=." 7ȳ'),$('4ȶ""5!7ȷ'),$('%2ȸ""6ȸ7ȹ/K#$4Ⱥ""5!7Ȼ/,#0)*4Ⱥ""5!7Ȼ&&&#/)$8":ȼ""! )("\'#&\'#'),$(";Ɩ.# &;Ɨ"),$(";ƙ./ &;Ɲ.) &;ƛ.# &;Ɯ"),$("%%<;ȴ.# &;>=.##&&!&'#/J#$;Ɣ.# &;Ɠ/,#0)*;Ɣ.# &;Ɠ&&&#/($8\":Ö\"! )(\"'#&'#"),$("%%<;ȶ.# &;>=.##&&!&'#/J#$;Ɣ.# &;Ɠ/,#0)*;Ɣ.# &;Ɠ&&&#/($8\":Ƚ\"! )(\"'#&'#"),$("%;ƞ/™#;ȿ/$%$%%<;ƚ=.##&&!&'#/1#1\"\"5!7Ⱦ/#$+\")(\"'#&'#0G*%%<;ƚ=.##&&!&'#/1#1\"\"5!7Ⱦ/#$+\")(\"'#&'#&/\"!&,)/1$;ƚ/($8$:ȿ$!!)($'#(#'#(\"'#&'#"),$('%$4ɀ""5!7Ɂ0)*4ɀ""5!7Ɂ&/5#;Ɵ/,$;ȿ/#$+#)(#\'#("\'#&\'#'),$('%2ɂ""6ɂ7Ƀ/k#$2Ʉ""6Ʉ7Ʌ.) &4Ɇ""5!7ɇ05*2Ʉ""6Ʉ7Ʌ.) &4Ɇ""5!7ɇ&/7$2ɂ""6ɂ7Ƀ/($8#:Ɉ#!!)(#\'#("\'#&\'#'),$('%2ɉ""6ɉ7Ɋ/k#$26""6677.) &48""5!7905*26""6677.) &48""5!79&/7$2ɉ""6ɉ7Ɋ/($8#:ɋ#!!)(#\'#("\'#&\'#'),$('%2Ɍ""6Ɍ7ɍ/k#$2Ɏ""6Ɏ7ɏ.) &4ɐ""5!7ɑ05*2Ɏ""6Ɏ7ɏ.) &4ɐ""5!7ɑ&/7$2Ɍ""6Ɍ7ɍ/($8#:ɒ#!!)(#\'#("\'#&\'#'),$('<%2ɔ""6ɔ7ɕ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɓ'),$('<%2ɗ""6ɗ7ɘ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɖ'),$('<%2ɚ""6ɚ7ɛ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ə'),$('<%2ɝ""6ɝ7ɞ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɜ'),$('<%2ɠ""6ɠ7ɡ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɟ'),$('<%2ɣ""6ɣ7ɤ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɢ'),$('<%2ɦ""6ɦ7ɧ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɥ'),$('<%2ɩ""6ɩ7ɪ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɨ'),$('<%2ɉ""6ɉ7Ɋ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɫ'),$('<%2ɂ""6ɂ7Ƀ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɬ'),$('<%2Ɍ""6Ɍ7ɍ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɭ'),$('<%2ɯ""6ɯ7ɰ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɮ'),$('<%2ɲ""6ɲ7ɳ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɱ'),$('<%2ɵ""6ɵ7ɶ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɴ'),$('<%2ɷ""6ɷ7ɸ/1#;ȿ/($8":""!!)("\'#&\'#=." 7Nj'),$('<%2ɺ""6ɺ7ɻ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɹ'),$('<%2ɽ""6ɽ7ɾ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ɼ'),$('<%2ɿ""6ɿ7ʀ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ǂ'),$('<%2ʁ""6ʁ7ʂ/1#;ȿ/($8":""!!)("\'#&\'#=." 7LJ'),$('<%2ʃ""6ʃ7ʄ/1#;ȿ/($8":""!!)("\'#&\'#=." 7Lj'),$('<%2ʆ""6ʆ7ʇ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ʅ'),$('<%2ʉ""6ʉ7ʊ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ʈ'),$('<%2a""6a7b/1#;ȿ/($8":""!!)("\'#&\'#=." 7ʋ'),$('<%2ʍ""6ʍ7ʎ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ʌ'),$('<%2ʐ""6ʐ7ʑ/1#;ȿ/($8":""!!)("\'#&\'#=." 7ʏ'),$('%3ʒ""5%7ʓ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʔ""5&7ʕ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʖ""5#7ʗ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʘ""5%7ʙ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʚ""5#7ʛ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʜ""5%7ʝ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3ʞ\"\"5'7ʟ/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3ʠ""5#7ʡ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʢ""5"7ʣ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʤ""5#7ʥ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʦ""5&7ʧ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʨ""5-7ʩ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʪ""5&7ʫ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʬ""5%7ʭ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3ʮ\"\"5'7ʯ/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3ʰ""5"7ʱ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3ʲ\"\"5'7ʳ/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3ʴ""5$7ʵ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʶ""5$7ʷ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʸ""5%7ʹ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3ʺ\"\"5'7ʻ/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3ʼ""5&7ʽ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʾ""5&7ʿ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˀ""5(7ˁ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˂""5*7˃/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˄""5&7˅/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˆ""5%7ˇ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˈ""5,7ˉ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˊ""5,7ˋ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˌ""517ˍ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˎ""5(7ˏ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3ː\"\"5'7ˑ/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3˒""5*7˓/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˔""5(7˕/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˖""5&7˗/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˘""5$7˙/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˚""5&7˛/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˜""5(7˝/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˞""5$7˟/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˠ""5$7ˡ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˢ""5$7ˣ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˤ""5#7˥/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˦""5&7˧/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˨""5&7˩/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˪""5)7˫/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ˬ""5&7˭/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3ˮ\"\"5'7˯/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3˰""5$7˱/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˲""5#7˳/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3˴\"\"5'7˵/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3˶""5$7˷/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˸""5$7˹/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˺""5$7˻/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˼""5%7˽/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3˾""5&7˿/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̀""5"7́/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̂""5&7̃/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̄""5)7̅/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̆""5"7̇/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̈""5%7̉/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3̊\"\"5'7̋/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3̌""5)7̍/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̎""5%7̏/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̐""5&7̑/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3̒\"\"5'7̓/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3̔""5)7̕/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̖""5$7̗/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̘""5"7̙/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̚""5&7̛/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̜""5$7̝/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̞""5#7̟/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̠""5$7̡/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̢""5$7̣/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̤""5%7̥/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̦""5%7̧/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3̨\"\"5'7̩/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3̪""5"7̫/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̬""5#7̭/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3̮\"\"5'7̯/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3y""5$7z/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̰""5"7̱/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̲""5&7̳/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̴""5"7̵/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̶""5"7̷/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̸""5%7̹/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̺""5%7̻/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̼""5$7̽/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̾""5&7̿/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3̀\"\"5'7́/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3͂""5%7̓/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3̈́""5%7ͅ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͆""5)7͇/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͈""5*7͉/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͊""5&7͋/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3͌\"\"5'7͍/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$("%3͎\"\"5'7͏/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3͐""5&7͑/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3͒\"\"5'7͓/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3͔""5(7͕/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͖""5%7͗/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͘""5(7͙/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͚""5#7͛/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͜""5%7͝/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͞""5)7͟/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͠""5&7͡/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͢""5#7ͣ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͤ""5%7ͥ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͦ""5$7ͧ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͨ""5)7ͩ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͪ""5$7ͫ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͬ""5"7ͭ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͮ""5+7ͯ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3Ͱ\"\"5'7ͱ/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3Ͳ""5%7ͳ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ʹ""5&7͵/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3Ͷ""5&7ͷ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3͸""5%7͹/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͺ""5&7ͻ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3ͼ""5&7ͽ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3;""5$7Ϳ/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3΀\"\"5'7΁/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$('%3΂""5$7΃/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3΄""5%7΅/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$('%3Ά""5$7·/8#%<;Ɠ=.##&&!&\'#/#$+")("\'#&\'#'),$("%3Έ\"\"5'7Ή/8#%<;Ɠ=.##&&!&'#/#$+\")(\"'#&'#"),$("%;ȵ/' 8!:Ί!! )"),$(";Ʒ.˹ &;Ƹ.˳ &;ƹ.˭ &;ƺ.˧ &;ƻ.ˡ &;Ƽ.˛ &;ƽ.˕ &;ƾ.ˏ &;ƿ.ˉ &;ǀ.˃ &;ǁ.ʽ &;ǂ.ʷ &;ǃ.ʱ &;DŽ.ʫ &;Dž.ʥ &;dž.ʟ &;LJ.ʙ &;Lj.ʓ &;lj.ʍ &;NJ.ʇ &;Nj.ʁ &;nj.ɻ &;Ǎ.ɵ &;ǎ.ɯ &;Ǐ.ɩ &;ǐ.ɣ &;Ǒ.ɝ &;ǒ.ɗ &;Ǔ.ɑ &;ǔ.ɋ &;Ǖ.Ʌ &;ǖ.ȿ &;Ǘ.ȹ &;ǘ.ȳ &;Ǚ.ȭ &;ǚ.ȧ &;Ǜ.ȡ &;ǜ.ț &;ǝ.ȕ &;Ǟ.ȏ &;ǟ.ȉ &;Ǡ.ȃ &;ǡ.ǽ &;Ǣ.Ƿ &;ǣ.DZ &;Ǥ.ǫ &;ǥ.ǥ &;Ǧ.ǟ &;ǧ.Ǚ &;Ǩ.Ǔ &;ǩ.Ǎ &;Ǫ.LJ &;ǫ.ǁ &;Ǭ.ƻ &;ǭ.Ƶ &;Ǯ.Ư &;ǯ.Ʃ &;ǰ.ƣ &;DZ.Ɲ &;Dz.Ɨ &;dz.Ƒ &;Ǵ.Ƌ &;ǵ.ƅ &;Ƕ.ſ &;Ƿ.Ź &;Ǹ.ų &;ǹ.ŭ &;Ǻ.ŧ &;ǻ.š &;Ǽ.ś &;ǽ.ŕ &;Ǿ.ŏ &;ǿ.ʼn &;Ȁ.Ń &;ȁ.Ľ &;Ȃ.ķ &;ȃ.ı &;Ȅ.ī &;ȅ.ĥ &;Ȇ.ğ &;ȇ.ę &;Ȉ.ē &;ȉ.č &;Ȋ.ć &;ȋ.ā &;Ȍ.û &;ȍ.õ &;Ȏ.ï &;ȏ.é &;Ȑ.ã &;ȑ.Ý &;Ȓ.× &;ȓ.Ñ &;Ȕ.Ë &;ȕ.Å &;Ȗ.¿ &;ȗ.¹ &;Ș.³ &;ș.­ &;Ț.§ &;ț.¡ &;Ȝ.› &;Ȟ.• &;ȟ. &;Ƞ.‰ &;ȡ.ƒ &;ȣ.} &;Ȥ.w &;ȥ.q &;Ȧ.k &;ȧ.e &;Ȩ._ &;ȩ.Y &;Ȫ.S &;ȫ.M &;Ȭ.G &;ȭ.A &;Ȯ.; &;ȯ.5 &;Ȱ./ &;ȱ.) &;Ȳ.# &;ȳ"),$(";ƹ.ŧ &;ƻ.š &;Ƽ.ś &;ƾ.ŕ &;ƿ.ŏ &;ǂ.ʼn &;Dž.Ń &;Lj.Ľ &;NJ.ķ &;Nj.ı &;Ǎ.ī &;Ǐ.ĥ &;ǐ.ğ &;ǖ.ę &;Ǘ.ē &;Ǚ.č &;ǜ.ć &;ǝ.ā &;ǟ.û &;ǡ.õ &;Ǣ.ï &;Ǥ.é &;Ǩ.ã &;ǩ.Ý &;Ǭ.× &;ǭ.Ñ &;DZ.Ë &;Dz.Å &;Ƕ.¿ &;Ǹ.¹ &;ǹ.³ &;Ǻ.­ &;ǻ.§ &;Ǽ.¡ &;Ȁ.› &;Ȅ.• &;ȅ. &;Ȇ.‰ &;ȉ.ƒ &;Ȋ.} &;ȋ.w &;ȏ.q &;ȓ.k &;ȟ.e &;Ƞ._ &;ȡ.Y &;Ȥ.S &;ȥ.M &;Ȧ.G &;Ȩ.A &;ȩ.; &;Ȫ.5 &;ȫ./ &;ȭ.) &;Ȱ.# &;ȱ"),$(";ȸ.. &%;ȹ/& 8!:΋! )"),$('<%2΍""6΍7Ύ/‡#$%%<4Ώ""5!7ΐ=.##&&!&\'#/1#1""5!7Ⱦ/#$+")("\'#&\'#0M*%%<4Ώ""5!7ΐ=.##&&!&\'#/1#1""5!7Ⱦ/#$+")("\'#&\'#&/#$+")("\'#&\'#=." 7Ό'),$("<%;Ⱥ/5#;Ⱦ/,$;Ȼ/#$+#)(#'#(\"'#&'#=.\" 7Α"),$('2Β""6Β7Γ'),$('2Δ""6Δ7Ε'),$('$%%<;Ȼ.# &;Ⱥ=.##&&!&\'#/1#1""5!7Ⱦ/#$+")("\'#&\'#/P#0M*%%<;Ȼ.# &;Ⱥ=.##&&!&\'#/1#1""5!7Ⱦ/#$+")("\'#&\'#&&&#'),$(";ȼ.# &;ȹ"),$('%;Ƚ/K#$4Ζ""5!7Η.# &;Ƚ0/*4Ζ""5!7Η.# &;Ƚ&/#$+")("\'#&\'#'),$('<%$4Ζ""5!7Η.# &;ȷ0/*4Ζ""5!7Η.# &;ȷ&/\' 8!:-!! )=." 7Θ'),$('2Ι""6Ι7Κ')],l=0,c=[{line:1,column:1}],d=0,p=[],m=0,b={},v=["start","start_streaming","stmt_list","semi_optional","semi_required","stmt_list_tail","type_definition","type_definition_types","datatype_custom","datatype_word_tail","type_definition_args","definition_args_loop","literal_value","literal_null","literal_date","literal_string","literal_string_single","literal_string_schar","literal_blob","literal_text","number_sign","literal_number_signed","literal_number","literal_number_decimal","number_decimal_node","number_decimal_full","number_decimal_fraction","number_decimal_exponent","literal_number_hex","number_hex","number_digit","bind_parameter","bind_parameter_numbered","bind_number_id","bind_parameter_named","bind_parameter_tcl","tcl_suffix","expression_exists","expression_exists_ne","expression_raise","expression_raise_args","raise_args_ignore","raise_args_message","expression_root","expression_wrapped","expression_recur","expression_unary_collate","expression_unary","expression_unary_op","expression_collate","expression_concat","expression_multiply","expression_multiply_op","expression_add","expression_add_op","expression_shift","expression_shift_op","expression_compare","expression_compare_op","expression_equiv","expression_equiv_tails","expression_equiv_null_op","expression_equiv_op","expression_cast","type_alias","expression_case","case_expression","expression_case_when","expression_case_else","expression_postfix","expression_postfix_tail","expression_like","expression_escape","expression_between","expression_between_tail","expression_is_not","expression_in","expression_in_target","expression_list_or_select","expression_and","expression","expression_list","expression_list_loop","expression_list_rest","function_call","function_call_args","args_list_distinct","error_message","stmt","stmt_modifier","modifier_query","stmt_nodes","stmt_commit","stmt_begin","commit_transaction","stmt_begin_modifier","stmt_rollback","rollback_savepoint","savepoint_name","savepoint_alt","stmt_savepoint","stmt_release","stmt_alter","alter_start","alter_action","alter_action_rename","alter_action_add","action_add_modifier","stmt_crud","stmt_core_with","clause_with","clause_with_recursive","clause_with_tables","clause_with_loop","expression_cte","select_alias","select_wrapped","stmt_select_full","stmt_sqlite","stmt_attach","attach_arg","stmt_detach","stmt_vacuum","vacuum_target","stmt_analyze","analyze_arg","stmt_reindex","reindex_arg","stmt_pragma","pragma_expression","pragma_value","pragma_value_literal","pragma_value_bool","pragma_bool_id","pragma_value_name","stmt_crud_types","stmt_select","stmt_core_order","stmt_core_limit","stmt_core_limit_offset","limit_offset_variant","limit_offset_variant_name","select_loop","select_loop_union","select_parts","select_parts_core","select_core_select","select_modifier","select_modifier_distinct","select_modifier_all","select_target","select_target_loop","select_core_from","stmt_core_where","select_core_group","select_core_having","select_node","select_node_star","select_node_star_qualified","select_node_aliased","select_source","source_loop_tail","select_cross_clause","select_join_clause","table_or_sub","table_or_sub_func","table_qualified","table_qualified_id","table_or_sub_index_node","index_node_indexed","index_node_none","table_or_sub_sub","table_or_sub_select","alias","join_operator","join_operator_natural","join_operator_types","operator_types_hand","types_hand_outer","operator_types_misc","join_condition","join_condition_on","join_condition_using","select_parts_values","stmt_core_order_list","stmt_core_order_list_loop","stmt_core_order_list_item","select_star","stmt_fallback_types","stmt_insert","insert_keyword","insert_keyword_ins","insert_keyword_repl","insert_keyword_mod","insert_target","insert_into","insert_into_start","insert_results","loop_columns","loop_column_tail","loop_name","insert_value","insert_value_start","insert_values_list","insert_values_loop","expression_list_wrapped","insert_default","operator_compound","compound_union","compound_union_all","stmt_update","update_start","update_fallback","update_set","update_columns","update_columns_tail","update_column","stmt_delete","delete_start","stmt_create","create_start","create_table_only","create_index_only","create_trigger_only","create_view_only","create_virtual_only","create_table","create_table_start","create_core_tmp","create_core_ine","create_table_source","table_source_def","source_def_rowid","source_def_loop","source_def_tail","source_tbl_loop","source_def_column","source_def_name","column_type","column_constraints","column_constraint_tail","column_constraint","constraint_name","constraint_name_loop","column_constraint_types","column_constraint_foreign","column_constraint_primary","col_primary_start","col_primary_auto","column_constraint_null","constraint_null_types","constraint_null_value","column_constraint_check","column_constraint_default","column_default_values","column_constraint_collate","table_constraint","table_constraint_types","table_constraint_check","table_constraint_primary","primary_start","primary_start_normal","primary_start_unique","primary_columns","primary_columns_index","primary_columns_table","primary_column_tail","primary_column","primary_column_types","column_collate","column_collate_loop","primary_column_dir","primary_conflict","primary_conflict_start","constraint_check","table_constraint_foreign","foreign_start","foreign_clause","foreign_references","foreign_actions","foreign_actions_tail","foreign_action","foreign_action_on","action_on_action","on_action_set","on_action_cascade","on_action_none","foreign_action_match","foreign_deferrable","deferrable_initially","table_source_select","create_index","create_index_start","index_unique","index_on","create_trigger","create_trigger_start","trigger_conditions","trigger_apply_mods","trigger_apply_instead","trigger_do","trigger_do_on","trigger_do_update","do_update_of","do_update_columns","trigger_foreach","trigger_when","trigger_action","action_loop","action_loop_stmt","create_view","id_view_expression","create_view_start","create_as_select","create_virtual","create_virtual_start","virtual_module","virtual_args","virtual_args_loop","virtual_args_tail","virtual_arg_types","virtual_column_name","stmt_drop","drop_start","drop_types","drop_ie","binary_concat","binary_plus","binary_minus","binary_multiply","binary_divide","binary_mod","binary_left","binary_right","binary_and","binary_or","binary_lt","binary_gt","binary_lte","binary_gte","binary_equal","binary_notequal_a","binary_notequal_b","binary_lang_isnt","id_name","id_database","id_function","id_table","id_table_qualified","id_column","column_unqualified","column_qualifiers","id_column_qualified","id_collation","id_savepoint","id_index","id_trigger","id_view","id_pragma","id_cte","id_table_expression","id_constraint_table","id_constraint_column","datatype_types","datatype_text","datatype_real","datatype_real_double","datatype_numeric","datatype_integer","datatype_integer_fp","datatype_none","name_char","unicode_char","name","name_quoted","name_unquoted","name_reserved","name_bracketed","bracket_terminator","name_dblquoted","name_sglquoted","name_backticked","sym_bopen","sym_bclose","sym_popen","sym_pclose","sym_comma","sym_dot","sym_star","sym_quest","sym_sglquote","sym_dblquote","sym_backtick","sym_tilde","sym_plus","sym_minus","sym_equal","sym_amp","sym_pipe","sym_mod","sym_lt","sym_gt","sym_excl","sym_semi","sym_colon","sym_fslash","sym_bslash","ABORT","ACTION","ADD","AFTER","ALL","ALTER","ANALYZE","AND","AS","ASC","ATTACH","AUTOINCREMENT","BEFORE","BEGIN","BETWEEN","BY","CASCADE","CASE","CAST","CHECK","COLLATE","COLUMN","COMMIT","CONFLICT","CONSTRAINT","CREATE","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATABASE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DESC","DETACH","DISTINCT","DROP","EACH","ELSE","END","ESCAPE","EXCEPT","EXCLUSIVE","EXISTS","EXPLAIN","FAIL","FOR","FOREIGN","FROM","FULL","GLOB","GROUP","HAVING","IF","IGNORE","IMMEDIATE","IN","INDEX","INDEXED","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","KEY","LEFT","LIKE","LIMIT","MATCH","NATURAL","NO","NOT","NOTNULL","NULL","OF","OFFSET","ON","OR","ORDER","OUTER","PLAN","PRAGMA","PRIMARY","QUERY","RAISE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELEASE","RENAME","REPLACE","RESTRICT","RIGHT","ROLLBACK","ROW","ROWID","SAVEPOINT","SELECT","SET","TABLE","TEMP","TEMPORARY","THEN","TO","TRANSACTION","TRIGGER","UNION","UNIQUE","UPDATE","USING","VACUUM","VALUES","VIEW","VIRTUAL","WHEN","WHERE","WITH","WITHOUT","reserved_words","reserved_word_list","reserved_critical_list","comment","comment_line","comment_block","comment_block_start","comment_block_end","comment_block_body","block_body_nodes","comment_block_feed","o","_TODO_"],g=[null,null,null,null,null,null,"Type Definition",null,"Custom Datatype Name",null,"Type Definition Arguments",null,null,"Null Literal","Date Literal","String Literal","Single-quoted String Literal",null,"Blob Literal",null,"Number Sign",null,null,null,"Decimal Literal",null,null,"Decimal Literal Exponent","Hexidecimal Literal",null,null,"Bind Parameter","Numbered Bind Parameter",null,"Named Bind Parameter","TCL Bind Parameter",null,"EXISTS Expression","EXISTS Keyword","RAISE Expression","RAISE Expression Arguments","IGNORE Keyword",null,null,null,null,null,null,null,"COLLATE Expression",null,null,null,null,null,null,null,null,null,null,null,null,null,"CAST Expression","Type Alias","CASE Expression",null,"WHEN Clause","ELSE Clause",null,null,"Comparison Expression","ESCAPE Expression","BETWEEN Expression",null,null,"IN Expression",null,null,null,null,"Expression List",null,null,"Function Call","Function Call Arguments",null,"Error Message","Statement","QUERY PLAN","QUERY PLAN Keyword",null,"END Transaction Statement","BEGIN Transaction Statement",null,null,"ROLLBACK Statement","TO Clause",null,null,"SAVEPOINT Statement","RELEASE Statement","ALTER TABLE Statement","ALTER TABLE Keyword",null,"RENAME TO Keyword","ADD COLUMN Keyword",null,null,"WITH Clause",null,null,null,null,"Common Table Expression",null,null,null,null,"ATTACH Statement",null,"DETACH Statement","VACUUM Statement",null,"ANALYZE Statement",null,"REINDEX Statement",null,"PRAGMA Statement",null,null,null,null,null,null,null,"SELECT Statement","ORDER BY Clause","LIMIT Clause","OFFSET Clause",null,null,null,"Union Operation",null,null,"SELECT Results Clause","SELECT Results Modifier",null,null,null,null,"FROM Clause","WHERE Clause","GROUP BY Clause","HAVING Clause",null,null,null,null,null,null,"CROSS JOIN Operation","JOIN Operation",null,null,"Qualified Table","Qualified Table Identifier","Qualfied Table Index",null,null,"SELECT Source","Subquery","Alias","JOIN Operator",null,null,null,null,null,"JOIN Constraint","Join ON Clause","Join USING Clause","VALUES Clause",null,null,"Ordering Expression","Star","Fallback Type","INSERT Statement",null,"INSERT Keyword","REPLACE Keyword","INSERT OR Modifier",null,"INTO Clause","INTO Keyword","VALUES Clause","Column List",null,"Column Name","VALUES Clause","VALUES Keyword",null,null,"Wrapped Expression List","DEFAULT VALUES Clause","Compound Operator","UNION Operator",null,"UPDATE Statement","UPDATE Keyword","UPDATE OR Modifier","SET Clause",null,null,"Column Assignment","DELETE Statement","DELETE Keyword","CREATE Statement",null,null,null,null,null,null,"CREATE TABLE Statement",null,null,"IF NOT EXISTS Modifier",null,"Table Definition",null,null,null,null,"Column Definition",null,"Column Datatype",null,null,"Column Constraint",null,"CONSTRAINT Name",null,"FOREIGN KEY Column Constraint","PRIMARY KEY Column Constraint","PRIMARY KEY Keyword","AUTOINCREMENT Keyword",null,"UNIQUE Column Constraint","NULL Column Constraint","CHECK Column Constraint","DEFAULT Column Constraint",null,"COLLATE Column Constraint","Table Constraint",null,"CHECK Table Constraint","PRIMARY KEY Table Constraint",null,"PRIMARY KEY Keyword","UNIQUE Keyword",null,null,null,null,"Indexed Column",null,"Collation",null,"Column Direction",null,"ON CONFLICT Keyword",null,"FOREIGN KEY Table Constraint","FOREIGN KEY Keyword",null,"REFERENCES Clause",null,null,"FOREIGN KEY Action Clause",null,"FOREIGN KEY Action",null,null,null,null,"DEFERRABLE Clause",null,null,"CREATE INDEX Statement",null,null,"ON Clause","CREATE TRIGGER Statement",null,"Conditional Clause",null,null,"Conditional Action",null,null,null,null,null,"WHEN Clause","Actions Clause",null,null,"CREATE VIEW Statement",null,null,null,"CREATE VIRTUAL TABLE Statement",null,null,"Module Arguments",null,null,null,null,"DROP Statement","DROP Keyword","DROP Type","IF EXISTS Keyword","Or","Add","Subtract","Multiply","Divide","Modulo","Shift Left","Shift Right","Logical AND","Logical OR","Less Than","Greater Than","Less Than Or Equal","Greater Than Or Equal","Equal","Not Equal","Not Equal","IS","Identifier","Database Identifier","Function Identifier","Table Identifier",null,"Column Identifier",null,null,null,"Collation Identifier","Savepoint Identifier","Index Identifier","Trigger Identifier","View Identifier","Pragma Identifier","CTE Identifier",null,"Table Constraint Identifier","Column Constraint Identifier","Datatype Name","TEXT Datatype Name","REAL Datatype Name","DOUBLE Datatype Name","NUMERIC Datatype Name","INTEGER Datatype Name",null,"BLOB Datatype Name",null,null,null,null,null,null,null,null,null,null,null,"Open Bracket","Close Bracket","Open Parenthesis","Close Parenthesis","Comma","Period","Asterisk","Question Mark","Single Quote","Double Quote","Backtick","Tilde","Plus","Minus","Equal","Ampersand","Pipe","Modulo","Less Than","Greater Than","Exclamation","Semicolon","Colon","Forward Slash","Backslash",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"Line Comment","Block Comment",null,null,null,null,null,"Whitespace",null],y="tracer"in e?e.tracer:new s;if("startRule"in e){if(!(e.startRule in o))throw new Error("Can't start parsing from rule \""+e.startRule+'".');u=o[e.startRule]}function w(t,e){return{type:"literal",text:t,ignoreCase:e}}function M(t,e,r){return{type:"class",parts:t,inverted:e,ignoreCase:r}}function _(){return{type:"any"}}function S(){return{type:"end"}}function E(t){return{type:"other",description:t}}function A(e){var r,i=c[e];if(i)return i;r=e-1;while(!c[r])r--;i=c[r],i={line:i.line,column:i.column};while(rd&&(d=l,p=[]),p.push(t))}function R(t,e,r){return new a(a.buildMessage(t,e),t,e,r)}function $(t){return t.split("").map((function(t){return t.charCodeAt(0)-32}))}function T(e){var r,i=f[e],o=0,a=[],s=i.length,u=[],c=[],d=l;y.trace({type:"rule.enter",rule:v[e],description:g[e],location:x(d,d)});var p=545*l+e,w=b[p];if(w)return l=w.nextPos,w.result!==n?y.trace({type:"rule.match",rule:v[e],description:g[e],result:w.result,location:x(d,l)}):y.trace({type:"rule.fail",rule:v[e],description:g[e],location:x(d,d)}),w.result;while(1){while(ol?(s=o+3+i[o+1],o+=3):(s=o+3+i[o+1]+i[o+2],o+=3+i[o+1]);break;case 18:u.push(s),a.push(o+4+i[o+2]+i[o+3]),t.substr(l,h[i[o+1]].length)===h[i[o+1]]?(s=o+4+i[o+2],o+=4):(s=o+4+i[o+2]+i[o+3],o+=4+i[o+2]);break;case 19:u.push(s),a.push(o+4+i[o+2]+i[o+3]),t.substr(l,h[i[o+1]].length).toLowerCase()===h[i[o+1]]?(s=o+4+i[o+2],o+=4):(s=o+4+i[o+2]+i[o+3],o+=4+i[o+2]);break;case 20:u.push(s),a.push(o+4+i[o+2]+i[o+3]),h[i[o+1]].test(t.charAt(l))?(s=o+4+i[o+2],o+=4):(s=o+4+i[o+2]+i[o+3],o+=4+i[o+2]);break;case 21:c.push(t.substr(l,i[o+1])),l+=i[o+1],o+=2;break;case 22:c.push(h[i[o+1]]),l+=h[i[o+1]].length,o+=2;break;case 23:c.push(n),0===m&&k(h[i[o+1]]),o+=2;break;case 24:c[c.length-1-i[o+1]],o+=2;break;case 25:l,o++;break;case 26:r=i.slice(o+4,o+4+i[o+3]).map((function(t){return c[c.length-1-t]})),c.splice(c.length-i[o+2],i[o+2],h[i[o+1]].apply(null,r)),o+=4+i[o+3];break;case 27:c.push(T(i[o+1])),o+=2;break;case 28:m++,o++;break;case 29:m--,o++;break;default:throw new Error("Invalid opcode: "+i[o]+".")}if(!(u.length>0))break;s=u.pop(),o=a.pop()}return b[p]={nextPos:l,result:c[0]},c[0]!==n?y.trace({type:"rule.match",rule:v[e],description:g[e],result:c[0],location:x(d,l)}):y.trace({type:"rule.fail",rule:v[e],description:g[e],location:x(d,d)}),c[0]}function I(t){return O(t)?Array.isArray(t)?t:[t]:[]}function O(t){return null!=t}function C(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ",r=t.filter((function(t){return O(t)})).reduce((function(t,r){return""+t+j(r)+e}),"");return r.trim()}function L(t){return C(t,"")}function N(t){return C(t).toLowerCase()}function B(t){return t.filter((function(t){return O(t)})).reduce((function(t,e){return t.concat(e)}),[])}function P(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"'",r=new RegExp(e+"{2}","g");return j(t).replace(r,e)}function j(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return I(t).join("")}function D(t){return j(t).trim()}function q(t){return D(t).toLowerCase()}function U(t){return Array.isArray(t)&&t.length>0&&O(t[0])}function F(t,e){return e.reduce((function(t,e){var r=i(e,4),n=(r[0],r[1]),o=(r[2],r[3]);return{type:"expression",format:"binary",variant:"operation",operation:q(n),left:t,right:o}}),t)}if(r=T(u),r!==n&&l===t.length)return r;throw r!==n&&l0){for(e=1,r=1;e=0;r-=1)if(e(t[r]))return r;return-1}function n(t,e){for(var r=t.length,i=0;i1)return!1;if(h){if(/^(stmt)$/i.test(t.rule))return h=!0,!0}else t.indentation>u.indentation?u=t:h=!0;return!0})),i.length&&(r=u.location,a=i.find((function(t){return s.firstNodeRule.test(t.description)&&t.description!==u.description&&t.indentation!==u.indentation})),o=null!=a?this.statementRule.test(u.description)&&this.statementRule.test(a.description)?a.description:u.description+" ("+a.description+")":u.description,e="Syntax error found near "+o,Object.assign(t,{message:e,location:r})),t},t}()},{}]},{},[1])(1)}))},"62c9":function(t,e,r){var i=r("8707").Buffer;function n(t,e,r){var n=t._cipher.encryptBlock(t._prev),o=n[0]^e;return t._prev=i.concat([t._prev.slice(1),i.from([r?e:o])]),o}e.encrypt=function(t,e,r){var o=e.length,a=i.allocUnsafe(o),s=-1;while(++s1?arguments[1]:void 0)}))},6547:function(t,e,r){var i=r("a691"),n=r("1d80"),o=function(t){return function(e,r){var o,a,s=String(n(e)),u=i(r),h=s.length;return u<0||u>=h?t?"":void 0:(o=s.charCodeAt(u),o<55296||o>56319||u+1===h||(a=s.charCodeAt(u+1))<56320||a>57343?t?s.charAt(u):o:t?s.slice(u,u+2):a-56320+(o-55296<<10)+65536)}};t.exports={codeAt:o(!1),charAt:o(!0)}},"65f0":function(t,e,r){var i=r("861d"),n=r("e8b5"),o=r("b622"),a=o("species");t.exports=function(t,e){var r;return n(t)&&(r=t.constructor,"function"!=typeof r||r!==Array&&!n(r.prototype)?i(r)&&(r=r[a],null===r&&(r=void 0)):r=void 0),new(void 0===r?Array:r)(0===e?0:e)}},"676f":function(t,e,r){"use strict";var i=r("80af"),n=r("3fb5"),o=r("ea53"),a=r("f3a3");function s(t){o.call(this,"mont",t),this.a=new i(t.a,16).toRed(this.red),this.b=new i(t.b,16).toRed(this.red),this.i4=new i(4).toRed(this.red).redInvm(),this.two=new i(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function u(t,e,r){o.BasePoint.call(this,t,"projective"),null===e&&null===r?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new i(e,16),this.z=new i(r,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}n(s,o),t.exports=s,s.prototype.validate=function(t){var e=t.normalize().x,r=e.redSqr(),i=r.redMul(e).redAdd(r.redMul(this.a)).redAdd(e),n=i.redSqrt();return 0===n.redSqr().cmp(i)},n(u,o.BasePoint),s.prototype.decodePoint=function(t,e){return this.point(a.toArray(t,e),1)},s.prototype.point=function(t,e){return new u(this,t,e)},s.prototype.pointFromJSON=function(t){return u.fromJSON(this,t)},u.prototype.precompute=function(){},u.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},u.fromJSON=function(t,e){return new u(t,e[0],e[1]||t.one)},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},u.prototype.dbl=function(){var t=this.x.redAdd(this.z),e=t.redSqr(),r=this.x.redSub(this.z),i=r.redSqr(),n=e.redSub(i),o=e.redMul(i),a=n.redMul(i.redAdd(this.curve.a24.redMul(n)));return this.curve.point(o,a)},u.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.diffAdd=function(t,e){var r=this.x.redAdd(this.z),i=this.x.redSub(this.z),n=t.x.redAdd(t.z),o=t.x.redSub(t.z),a=o.redMul(r),s=n.redMul(i),u=e.z.redMul(a.redAdd(s).redSqr()),h=e.x.redMul(a.redISub(s).redSqr());return this.curve.point(u,h)},u.prototype.mul=function(t){for(var e=t.clone(),r=this,i=this.curve.point(null,null),n=this,o=[];0!==e.cmpn(0);e.iushrn(1))o.push(e.andln(1));for(var a=o.length-1;a>=0;a--)0===o[a]?(r=r.diffAdd(i,n),i=i.dbl()):(i=r.diffAdd(i,n),r=r.dbl());return i},u.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},u.prototype.eq=function(t){return 0===this.getX().cmp(t.getX())},u.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},"69f2":function(t,e,r){e=t.exports=function(t){t=t.toLowerCase();var r=e[t];if(!r)throw new Error(t+" is not supported (we accept pull requests)");return new r};e.sha=r("087f"),e.sha1=r("7e78"),e.sha224=r("72aa"),e.sha256=r("a255"),e.sha384=r("b837"),e.sha512=r("4fd1")},"69f3":function(t,e,r){var i,n,o,a=r("7f9a"),s=r("da84"),u=r("861d"),h=r("9112"),f=r("5135"),l=r("f772"),c=r("d012"),d=s.WeakMap,p=function(t){return o(t)?n(t):i(t,{})},m=function(t){return function(e){var r;if(!u(e)||(r=n(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}};if(a){var b=new d,v=b.get,g=b.has,y=b.set;i=function(t,e){return y.call(b,t,e),e},n=function(t){return v.call(b,t)||{}},o=function(t){return g.call(b,t)}}else{var w=l("state");c[w]=!0,i=function(t,e){return h(t,w,e),e},n=function(t){return f(t,w)?t[w]:{}},o=function(t){return f(t,w)}}t.exports={set:i,get:n,has:o,enforce:p,getterFor:m}},"6aa2":function(t,e,r){"use strict";var i=r("7d92"),n=r("7658"),o=r("da3e");function a(t){if(!(this instanceof a))return new a(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=n.toArray(t.entropy,t.entropyEnc||"hex"),r=n.toArray(t.nonce,t.nonceEnc||"hex"),i=n.toArray(t.pers,t.persEnc||"hex");o(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(e,r,i)}t.exports=a,a.prototype._init=function(t,e,r){var i=t.concat(e).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var n=0;n=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(t.concat(r||[])),this._reseed=1},a.prototype.generate=function(t,e,r,i){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!==typeof e&&(i=r,r=e,e=null),r&&(r=n.toArray(r,i||"hex"),this._update(r));var o=[];while(o.lengthf)r=u[f++],i&&!a.call(s,r)||l.push(t?[r,s[r]]:s[r]);return l}};t.exports={entries:s(!0),values:s(!1)}},"6fe7":function(t,e,r){var i=r("39a9").Buffer,n=r("1a2a"),o=r("a958"),a=r("3337").ec,s=r("399f"),u=r("2aee"),h=r("cd91");function f(t,e,r,n,a){var s=u(e);if(s.curve){if("ecdsa"!==n&&"ecdsa/rsa"!==n)throw new Error("wrong private key type");return l(t,s)}if("dsa"===s.type){if("dsa"!==n)throw new Error("wrong private key type");return c(t,s,r)}if("rsa"!==n&&"ecdsa/rsa"!==n)throw new Error("wrong private key type");t=i.concat([a,t]);var h=s.modulus.byteLength(),f=[0,1];while(t.length+f.length+10&&r.ishrn(i),r}function b(t,e){t=m(t,e),t=t.mod(e);var r=i.from(t.toArray());if(r.lengthr)n[r]=e[r++];return n},H=function(t,e){I(t,e,{get:function(){return $(this)[e]}})},Z=function(t){var e;return t instanceof N||"ArrayBuffer"==(e=v(t))||"SharedArrayBuffer"==e},Y=function(t,e){return F(t)&&"symbol"!=typeof e&&e in t&&String(+e)==String(e)},V=function(t,e){return Y(t,e=m(e,!0))?f(2,t[e]):O(t,e)},G=function(t,e,r){return!(Y(t,e=m(e,!0))&&g(r)&&b(r,"value"))||b(r,"get")||b(r,"set")||r.configurable||b(r,"writable")&&!r.writable||b(r,"enumerable")&&!r.enumerable?I(t,e,r):(t[e]=r.value,t)};o?(P||(x.f=V,A.f=G,H(q,"buffer"),H(q,"byteOffset"),H(q,"byteLength"),H(q,"length")),i({target:"Object",stat:!0,forced:!P},{getOwnPropertyDescriptor:V,defineProperty:G}),t.exports=function(t,e,r){var o=t.match(/\d+$/)[0]/8,s=t+(r?"Clamped":"")+"Array",u="get"+t,f="set"+t,m=n[s],b=m,v=b&&b.prototype,A={},x=function(t,e){var r=$(t);return r.view[u](e*o+r.byteOffset,!0)},k=function(t,e,i){var n=$(t);r&&(i=(i=C(i))<0?0:i>255?255:255&i),n.view[f](e*o+n.byteOffset,i,!0)},O=function(t,e){I(t,e,{get:function(){return x(this,e)},set:function(t){return k(this,e,t)},enumerable:!0})};P?a&&(b=e((function(t,e,r,i){return h(t,b,s),R(function(){return g(e)?Z(e)?void 0!==i?new m(e,p(r,o),i):void 0!==r?new m(e,p(r,o)):new m(e):F(e)?W(b,e):_.call(b,e):new m(d(e))}(),t,b)})),w&&w(b,D),S(M(m),(function(t){t in b||l(b,t,m[t])})),b.prototype=v):(b=e((function(t,e,r,i){h(t,b,s);var n,a,u,f=0,l=0;if(g(e)){if(!Z(e))return F(e)?W(b,e):_.call(b,e);n=e,l=p(r,o);var m=e.byteLength;if(void 0===i){if(m%o)throw L(K);if(a=m-l,a<0)throw L(K)}else if(a=c(i)*o,a+l>m)throw L(K);u=a/o}else u=d(e),a=u*o,n=new N(a);T(t,{buffer:n,byteOffset:l,byteLength:a,length:u,view:new B(n)});while(ff||t<0)throw new TypeError("offset must be a uint32");if(t>u||t>e)throw new RangeError("offset out of range")}function c(t,e,r){if("number"!==typeof t||t!==t)throw new TypeError("size must be a number");if(t>f||t<0)throw new TypeError("size must be a uint32");if(t+e>r||t>u)throw new RangeError("buffer too small")}function d(e,r,i,n){if(!s.isBuffer(e)&&!(e instanceof t.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"===typeof r)n=r,r=0,i=e.length;else if("function"===typeof i)n=i,i=e.length-r;else if("function"!==typeof n)throw new TypeError('"cb" argument must be a function');return l(r,e.length),c(i,r,e.length),p(e,r,i,n)}function p(t,e,r,n){if(i.browser){var o=t.buffer,s=new Uint8Array(o,e,r);return h.getRandomValues(s),n?void i.nextTick((function(){n(null,t)})):t}if(!n){var u=a(r);return u.copy(t,e),t}a(r,(function(r,i){if(r)return n(r);i.copy(t,e),n(null,t)}))}function m(e,r,i){if("undefined"===typeof r&&(r=0),!s.isBuffer(e)&&!(e instanceof t.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');return l(r,e.length),void 0===i&&(i=e.length-r),c(i,r,e.length),p(e,r,i)}h&&h.getRandomValues||!i.browser?(e.randomFill=d,e.randomFillSync=m):(e.randomFill=n,e.randomFillSync=n)}).call(this,r("c8ba"),r("4362"))},7658:function(t,e,r){"use strict";var i=e;function n(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"!==typeof t){for(var i=0;i>8,a=255&n;o?r.push(o,a):r.push(a)}return r}function o(t){return 1===t.length?"0"+t:t}function a(t){for(var e="",r=0;r>1,b=23===e?n(2,-24)-n(2,-77):0,v=t<0||0===t&&1/t<0?1:0,g=0;for(t=i(t),t!=t||t===r?(f=t!=t?1:0,h=p):(h=o(a(t)/s),t*(l=n(2,-h))<1&&(h--,l*=2),t+=h+m>=1?b/l:b*n(2,1-m),t*l>=2&&(h++,l/=2),h+m>=p?(f=0,h=p):h+m>=1?(f=(t*l-1)*n(2,e),h+=m):(f=t*n(2,m-1)*n(2,e),h=0));e>=8;c[g++]=255&f,f/=256,e-=8);for(h=h<0;c[g++]=255&h,h/=256,d-=8);return c[--g]|=128*v,c},h=function(t,e){var i,o=t.length,a=8*o-e-1,s=(1<>1,h=a-7,f=o-1,l=t[f--],c=127&l;for(l>>=7;h>0;c=256*c+t[f],f--,h-=8);for(i=c&(1<<-h)-1,c>>=-h,h+=e;h>0;i=256*i+t[f],f--,h-=8);if(0===c)c=1-u;else{if(c===s)return i?NaN:l?-r:r;i+=n(2,e),c-=u}return(l?-1:1)*i*n(2,c-e)};t.exports={pack:u,unpack:h}},"780f":function(t,e,r){"use strict";t.exports=o;var i=r("27bf"),n=Object.create(r("3a7c"));function o(t){if(!(this instanceof o))return new o(t);i.call(this,t)}n.inherits=r("3fb5"),n.inherits(o,i),o.prototype._transform=function(t,e,r){r(null,t)}},7839:function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7a10":function(t,e,r){var i=r("d0eb"),n=r("fdac");function o(t){this.rand=t||new n.Rand}t.exports=o,o.create=function(t){return new o(t)},o.prototype._randbelow=function(t){var e=t.bitLength(),r=Math.ceil(e/8);do{var n=new i(this.rand.generate(r))}while(n.cmp(t)>=0);return n},o.prototype._randrange=function(t,e){var r=e.sub(t);return t.add(this._randbelow(r))},o.prototype.test=function(t,e,r){var n=t.bitLength(),o=i.mont(t),a=new i(1).toRed(o);e||(e=Math.max(1,n/48|0));for(var s=t.subn(1),u=0;!s.testn(u);u++);for(var h=t.shrn(u),f=s.toRed(o),l=!0;e>0;e--){var c=this._randrange(new i(2),s);r&&r(c);var d=c.toRed(o).redPow(h);if(0!==d.cmp(a)&&0!==d.cmp(f)){for(var p=1;p0;e--){var f=this._randrange(new i(2),a),l=t.gcd(f);if(0!==l.cmpn(1))return l;var c=f.toRed(n).redPow(u);if(0!==c.cmp(o)&&0!==c.cmp(h)){for(var d=1;d",c="<",d="prototype",p="script",m=f("IE_PROTO"),b=function(){},v=function(t){return c+p+l+t+c+"/"+p+l},g=function(t){t.write(v("")),t.close();var e=t.parentWindow.Object;return t=null,e},y=function(){var t,e=h("iframe"),r="java"+p+":";return e.style.display="none",u.appendChild(e),e.src=String(r),t=e.contentWindow.document,t.open(),t.write(v("document.F=Object")),t.close(),t.F},w=function(){try{i=document.domain&&new ActiveXObject("htmlfile")}catch(e){}w=i?g(i):y();var t=a.length;while(t--)delete w[d][a[t]];return w()};s[m]=!0,t.exports=Object.create||function(t,e){var r;return null!==t?(b[d]=n(t),r=new b,b[d]=null,r[m]=t):r=w(),void 0===e?r:o(r,e)}},"7d2a":function(t,e){var r=Math.pow(2,30)-1;t.exports=function(t,e){if("number"!==typeof t)throw new TypeError("Iterations not a number");if(t<0)throw new TypeError("Bad iterations");if("number"!==typeof e)throw new TypeError("Key length not a number");if(e<0||e>r||e!==e)throw new TypeError("Bad key length")}},"7d72":function(t,e,r){"use strict";var i=r("8707").Buffer,n=i.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(t){if(!t)return"utf8";var e;while(1)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function a(t){var e=o(t);if("string"!==typeof e&&(i.isEncoding===n||!n(t)))throw new Error("Unknown encoding: "+t);return e||t}function s(t){var e;switch(this.encoding=a(t),this.encoding){case"utf16le":this.text=p,this.end=m,e=4;break;case"utf8":this.fillLast=l,e=4;break;case"base64":this.text=b,this.end=v,e=3;break;default:return this.write=g,void(this.end=y)}this.lastNeed=0,this.lastTotal=0,this.lastChar=i.allocUnsafe(e)}function u(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function h(t,e,r){var i=e.length-1;if(i=0?(n>0&&(t.lastNeed=n-1),n):--i=0?(n>0&&(t.lastNeed=n-2),n):--i=0?(n>0&&(2===n?n=0:t.lastNeed=n-3),n):0))}function f(t,e,r){if(128!==(192&e[0]))return t.lastNeed=0,"�";if(t.lastNeed>1&&e.length>1){if(128!==(192&e[1]))return t.lastNeed=1,"�";if(t.lastNeed>2&&e.length>2&&128!==(192&e[2]))return t.lastNeed=2,"�"}}function l(t){var e=this.lastTotal-this.lastNeed,r=f(this,t,e);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function c(t,e){var r=h(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var i=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString("utf8",e,i)}function d(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"�":e}function p(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var i=r.charCodeAt(r.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function m(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function b(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function v(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function g(t){return t.toString(this.encoding)}function y(t){return t&&t.length?this.write(t):""}e.StringDecoder=s,s.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),void 0===e)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>>31}function f(t){return t<<5|t>>>27}function l(t){return t<<30|t>>>2}function c(t,e,r,i){return 0===t?e&r|~e&i:2===t?e&r|e&i|r&i:e^r^i}i(u,n),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._a,i=0|this._b,n=0|this._c,o=0|this._d,s=0|this._e,u=0;u<16;++u)e[u]=t.readInt32BE(4*u);for(;u<80;++u)e[u]=h(e[u-3]^e[u-8]^e[u-14]^e[u-16]);for(var d=0;d<80;++d){var p=~~(d/20),m=f(r)+c(p,i,n,o)+s+e[d]+a[p]|0;s=o,o=n,n=l(i),i=r,r=m}this._a=r+this._a|0,this._b=i+this._b|0,this._c=n+this._c|0,this._d=o+this._d|0,this._e=s+this._e|0},u.prototype._hash=function(){var t=o.allocUnsafe(20);return t.writeInt32BE(0|this._a,0),t.writeInt32BE(0|this._b,4),t.writeInt32BE(0|this._c,8),t.writeInt32BE(0|this._d,12),t.writeInt32BE(0|this._e,16),t},t.exports=u},"7f7a":function(t,e,r){var i=e;i.bignum=r("bc12"),i.define=r("ef3a").define,i.base=r("41df"),i.constants=r("0211"),i.decoders=r("20f6"),i.encoders=r("343e")},"7f9a":function(t,e,r){var i=r("da84"),n=r("8925"),o=i.WeakMap;t.exports="function"===typeof o&&/native code/.test(n(o))},8:function(t,e){},"80af":function(t,e,r){(function(t){(function(t,e){"use strict";function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a=r(10).Buffer}catch(x){}function s(t,e,r){for(var i=0,n=Math.min(t.length,r),o=e;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return i}function u(t,e,r,i){for(var n=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var n=0;"-"===t[0]&&n++,16===e?this._parseHex(t,n):this._parseBase(t,e,n),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(i("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)n=s(t,r,r+6),this.words[i]|=n<>>26-o&4194303,o+=24,o>=26&&(o-=26,i++);r+6!==e&&(n=s(t,e,r+6),this.words[i]|=n<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=e)i++;i--,n=n/e|0;for(var o=t.length-r,a=o%i,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>n}return e}function d(t,e,r){r.negative=e.negative^t.negative;var i=t.length+e.length|0;r.length=i,i=i-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;n=0|t.words[p],o=0|e.words[d],a=n*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,n+=2,n>=26&&(n-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,i=t):(r=t,i=this);for(var n=0,o=0;o>>26;for(;0!==n&&o>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,i,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=t):(r=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,b=0|a[2],v=8191&b,g=b>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],S=8191&_,E=_>>>13,A=0|a[5],x=8191&A,k=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,L=0|a[8],N=8191&L,B=L>>>13,P=0|a[9],j=8191&P,D=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],K=8191&z,W=z>>>13,H=0|s[2],Z=8191&H,Y=H>>>13,V=0|s[3],G=8191&V,X=V>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,it=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,i=Math.imul(l,U),n=Math.imul(l,F),n=n+Math.imul(c,U)|0,o=Math.imul(c,F);var bt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(p,U),n=Math.imul(p,F),n=n+Math.imul(m,U)|0,o=Math.imul(m,F),i=i+Math.imul(l,K)|0,n=n+Math.imul(l,W)|0,n=n+Math.imul(c,K)|0,o=o+Math.imul(c,W)|0;var vt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,U),n=Math.imul(v,F),n=n+Math.imul(g,U)|0,o=Math.imul(g,F),i=i+Math.imul(p,K)|0,n=n+Math.imul(p,W)|0,n=n+Math.imul(m,K)|0,o=o+Math.imul(m,W)|0,i=i+Math.imul(l,Z)|0,n=n+Math.imul(l,Y)|0,n=n+Math.imul(c,Z)|0,o=o+Math.imul(c,Y)|0;var gt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,i=Math.imul(w,U),n=Math.imul(w,F),n=n+Math.imul(M,U)|0,o=Math.imul(M,F),i=i+Math.imul(v,K)|0,n=n+Math.imul(v,W)|0,n=n+Math.imul(g,K)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(p,Z)|0,n=n+Math.imul(p,Y)|0,n=n+Math.imul(m,Z)|0,o=o+Math.imul(m,Y)|0,i=i+Math.imul(l,G)|0,n=n+Math.imul(l,X)|0,n=n+Math.imul(c,G)|0,o=o+Math.imul(c,X)|0;var yt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(S,U),n=Math.imul(S,F),n=n+Math.imul(E,U)|0,o=Math.imul(E,F),i=i+Math.imul(w,K)|0,n=n+Math.imul(w,W)|0,n=n+Math.imul(M,K)|0,o=o+Math.imul(M,W)|0,i=i+Math.imul(v,Z)|0,n=n+Math.imul(v,Y)|0,n=n+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(p,G)|0,n=n+Math.imul(p,X)|0,n=n+Math.imul(m,G)|0,o=o+Math.imul(m,X)|0,i=i+Math.imul(l,Q)|0,n=n+Math.imul(l,tt)|0,n=n+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(x,U),n=Math.imul(x,F),n=n+Math.imul(k,U)|0,o=Math.imul(k,F),i=i+Math.imul(S,K)|0,n=n+Math.imul(S,W)|0,n=n+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,i=i+Math.imul(w,Z)|0,n=n+Math.imul(w,Y)|0,n=n+Math.imul(M,Z)|0,o=o+Math.imul(M,Y)|0,i=i+Math.imul(v,G)|0,n=n+Math.imul(v,X)|0,n=n+Math.imul(g,G)|0,o=o+Math.imul(g,X)|0,i=i+Math.imul(p,Q)|0,n=n+Math.imul(p,tt)|0,n=n+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,i=i+Math.imul(l,rt)|0,n=n+Math.imul(l,it)|0,n=n+Math.imul(c,rt)|0,o=o+Math.imul(c,it)|0;var Mt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul($,U),n=Math.imul($,F),n=n+Math.imul(T,U)|0,o=Math.imul(T,F),i=i+Math.imul(x,K)|0,n=n+Math.imul(x,W)|0,n=n+Math.imul(k,K)|0,o=o+Math.imul(k,W)|0,i=i+Math.imul(S,Z)|0,n=n+Math.imul(S,Y)|0,n=n+Math.imul(E,Z)|0,o=o+Math.imul(E,Y)|0,i=i+Math.imul(w,G)|0,n=n+Math.imul(w,X)|0,n=n+Math.imul(M,G)|0,o=o+Math.imul(M,X)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(v,tt)|0,n=n+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(p,rt)|0,n=n+Math.imul(p,it)|0,n=n+Math.imul(m,rt)|0,o=o+Math.imul(m,it)|0,i=i+Math.imul(l,ot)|0,n=n+Math.imul(l,at)|0,n=n+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(O,U),n=Math.imul(O,F),n=n+Math.imul(C,U)|0,o=Math.imul(C,F),i=i+Math.imul($,K)|0,n=n+Math.imul($,W)|0,n=n+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,i=i+Math.imul(x,Z)|0,n=n+Math.imul(x,Y)|0,n=n+Math.imul(k,Z)|0,o=o+Math.imul(k,Y)|0,i=i+Math.imul(S,G)|0,n=n+Math.imul(S,X)|0,n=n+Math.imul(E,G)|0,o=o+Math.imul(E,X)|0,i=i+Math.imul(w,Q)|0,n=n+Math.imul(w,tt)|0,n=n+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,i=i+Math.imul(v,rt)|0,n=n+Math.imul(v,it)|0,n=n+Math.imul(g,rt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(p,ot)|0,n=n+Math.imul(p,at)|0,n=n+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,i=i+Math.imul(l,ut)|0,n=n+Math.imul(l,ht)|0,n=n+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var St=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(N,U),n=Math.imul(N,F),n=n+Math.imul(B,U)|0,o=Math.imul(B,F),i=i+Math.imul(O,K)|0,n=n+Math.imul(O,W)|0,n=n+Math.imul(C,K)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul($,Z)|0,n=n+Math.imul($,Y)|0,n=n+Math.imul(T,Z)|0,o=o+Math.imul(T,Y)|0,i=i+Math.imul(x,G)|0,n=n+Math.imul(x,X)|0,n=n+Math.imul(k,G)|0,o=o+Math.imul(k,X)|0,i=i+Math.imul(S,Q)|0,n=n+Math.imul(S,tt)|0,n=n+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,i=i+Math.imul(w,rt)|0,n=n+Math.imul(w,it)|0,n=n+Math.imul(M,rt)|0,o=o+Math.imul(M,it)|0,i=i+Math.imul(v,ot)|0,n=n+Math.imul(v,at)|0,n=n+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(p,ut)|0,n=n+Math.imul(p,ht)|0,n=n+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,i=i+Math.imul(l,lt)|0,n=n+Math.imul(l,ct)|0,n=n+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var Et=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(j,U),n=Math.imul(j,F),n=n+Math.imul(D,U)|0,o=Math.imul(D,F),i=i+Math.imul(N,K)|0,n=n+Math.imul(N,W)|0,n=n+Math.imul(B,K)|0,o=o+Math.imul(B,W)|0,i=i+Math.imul(O,Z)|0,n=n+Math.imul(O,Y)|0,n=n+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul($,G)|0,n=n+Math.imul($,X)|0,n=n+Math.imul(T,G)|0,o=o+Math.imul(T,X)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(x,tt)|0,n=n+Math.imul(k,Q)|0,o=o+Math.imul(k,tt)|0,i=i+Math.imul(S,rt)|0,n=n+Math.imul(S,it)|0,n=n+Math.imul(E,rt)|0,o=o+Math.imul(E,it)|0,i=i+Math.imul(w,ot)|0,n=n+Math.imul(w,at)|0,n=n+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,i=i+Math.imul(v,ut)|0,n=n+Math.imul(v,ht)|0,n=n+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,i=i+Math.imul(p,lt)|0,n=n+Math.imul(p,ct)|0,n=n+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,i=i+Math.imul(l,pt)|0,n=n+Math.imul(l,mt)|0,n=n+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(j,K),n=Math.imul(j,W),n=n+Math.imul(D,K)|0,o=Math.imul(D,W),i=i+Math.imul(N,Z)|0,n=n+Math.imul(N,Y)|0,n=n+Math.imul(B,Z)|0,o=o+Math.imul(B,Y)|0,i=i+Math.imul(O,G)|0,n=n+Math.imul(O,X)|0,n=n+Math.imul(C,G)|0,o=o+Math.imul(C,X)|0,i=i+Math.imul($,Q)|0,n=n+Math.imul($,tt)|0,n=n+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,i=i+Math.imul(x,rt)|0,n=n+Math.imul(x,it)|0,n=n+Math.imul(k,rt)|0,o=o+Math.imul(k,it)|0,i=i+Math.imul(S,ot)|0,n=n+Math.imul(S,at)|0,n=n+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,i=i+Math.imul(w,ut)|0,n=n+Math.imul(w,ht)|0,n=n+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,i=i+Math.imul(v,lt)|0,n=n+Math.imul(v,ct)|0,n=n+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,i=i+Math.imul(p,pt)|0,n=n+Math.imul(p,mt)|0,n=n+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var xt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(j,Z),n=Math.imul(j,Y),n=n+Math.imul(D,Z)|0,o=Math.imul(D,Y),i=i+Math.imul(N,G)|0,n=n+Math.imul(N,X)|0,n=n+Math.imul(B,G)|0,o=o+Math.imul(B,X)|0,i=i+Math.imul(O,Q)|0,n=n+Math.imul(O,tt)|0,n=n+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul($,rt)|0,n=n+Math.imul($,it)|0,n=n+Math.imul(T,rt)|0,o=o+Math.imul(T,it)|0,i=i+Math.imul(x,ot)|0,n=n+Math.imul(x,at)|0,n=n+Math.imul(k,ot)|0,o=o+Math.imul(k,at)|0,i=i+Math.imul(S,ut)|0,n=n+Math.imul(S,ht)|0,n=n+Math.imul(E,ut)|0,o=o+Math.imul(E,ht)|0,i=i+Math.imul(w,lt)|0,n=n+Math.imul(w,ct)|0,n=n+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,i=i+Math.imul(v,pt)|0,n=n+Math.imul(v,mt)|0,n=n+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var kt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(j,G),n=Math.imul(j,X),n=n+Math.imul(D,G)|0,o=Math.imul(D,X),i=i+Math.imul(N,Q)|0,n=n+Math.imul(N,tt)|0,n=n+Math.imul(B,Q)|0,o=o+Math.imul(B,tt)|0,i=i+Math.imul(O,rt)|0,n=n+Math.imul(O,it)|0,n=n+Math.imul(C,rt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul($,ot)|0,n=n+Math.imul($,at)|0,n=n+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,i=i+Math.imul(x,ut)|0,n=n+Math.imul(x,ht)|0,n=n+Math.imul(k,ut)|0,o=o+Math.imul(k,ht)|0,i=i+Math.imul(S,lt)|0,n=n+Math.imul(S,ct)|0,n=n+Math.imul(E,lt)|0,o=o+Math.imul(E,ct)|0,i=i+Math.imul(w,pt)|0,n=n+Math.imul(w,mt)|0,n=n+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,i=Math.imul(j,Q),n=Math.imul(j,tt),n=n+Math.imul(D,Q)|0,o=Math.imul(D,tt),i=i+Math.imul(N,rt)|0,n=n+Math.imul(N,it)|0,n=n+Math.imul(B,rt)|0,o=o+Math.imul(B,it)|0,i=i+Math.imul(O,ot)|0,n=n+Math.imul(O,at)|0,n=n+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul($,ut)|0,n=n+Math.imul($,ht)|0,n=n+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,i=i+Math.imul(x,lt)|0,n=n+Math.imul(x,ct)|0,n=n+Math.imul(k,lt)|0,o=o+Math.imul(k,ct)|0,i=i+Math.imul(S,pt)|0,n=n+Math.imul(S,mt)|0,n=n+Math.imul(E,pt)|0,o=o+Math.imul(E,mt)|0;var $t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+($t>>>26)|0,$t&=67108863,i=Math.imul(j,rt),n=Math.imul(j,it),n=n+Math.imul(D,rt)|0,o=Math.imul(D,it),i=i+Math.imul(N,ot)|0,n=n+Math.imul(N,at)|0,n=n+Math.imul(B,ot)|0,o=o+Math.imul(B,at)|0,i=i+Math.imul(O,ut)|0,n=n+Math.imul(O,ht)|0,n=n+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,i=i+Math.imul($,lt)|0,n=n+Math.imul($,ct)|0,n=n+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,i=i+Math.imul(x,pt)|0,n=n+Math.imul(x,mt)|0,n=n+Math.imul(k,pt)|0,o=o+Math.imul(k,mt)|0;var Tt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(j,ot),n=Math.imul(j,at),n=n+Math.imul(D,ot)|0,o=Math.imul(D,at),i=i+Math.imul(N,ut)|0,n=n+Math.imul(N,ht)|0,n=n+Math.imul(B,ut)|0,o=o+Math.imul(B,ht)|0,i=i+Math.imul(O,lt)|0,n=n+Math.imul(O,ct)|0,n=n+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,i=i+Math.imul($,pt)|0,n=n+Math.imul($,mt)|0,n=n+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(j,ut),n=Math.imul(j,ht),n=n+Math.imul(D,ut)|0,o=Math.imul(D,ht),i=i+Math.imul(N,lt)|0,n=n+Math.imul(N,ct)|0,n=n+Math.imul(B,lt)|0,o=o+Math.imul(B,ct)|0,i=i+Math.imul(O,pt)|0,n=n+Math.imul(O,mt)|0,n=n+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(j,lt),n=Math.imul(j,ct),n=n+Math.imul(D,lt)|0,o=Math.imul(D,ct),i=i+Math.imul(N,pt)|0,n=n+Math.imul(N,mt)|0,n=n+Math.imul(B,pt)|0,o=o+Math.imul(B,mt)|0;var Ct=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(j,pt),n=Math.imul(j,mt),n=n+Math.imul(D,pt)|0,o=Math.imul(D,mt);var Lt=(h+i|0)+((8191&n)<<13)|0;return h=(o+(n>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,u[0]=bt,u[1]=vt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=St,u[8]=Et,u[9]=At,u[10]=xt,u[11]=kt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Lt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var i=0,n=0,o=0;o>>26)|0,n+=a>>>26,a&=67108863}r.words[o]=s,i=a,a=n}return 0!==i?r.words[o]=i:r.length--,r.strip()}function b(t,e,r){var i=new v;return i.mulp(t,e,r)}function v(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,i=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):i<63?d(this,t,e):i<1024?m(this,t,e):b(this,t,e),r},v.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,i=0;i>=1;return i},v.prototype.permute=function(t,e,r,i,n,o){for(var a=0;a>>=1)n++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,i=0;i=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=n);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,i=this.clone(),n=t,a=0|n.words[n.length-1],s=this._countBits(a);r=26-s,0!==r&&(n=n.ushln(r),i.iushln(r),a=0|n.words[n.length-1]);var u,h=i.length-n.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|i.words[n.length+c])+(0|i.words[n.length+c-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(n,d,c);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(n,1,c),i.isZero()||(i.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==r&&i.iushrn(r),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),n=t.andln(1),o=r.cmp(i);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(n.isOdd()||a.isOdd())&&(n.iadd(f),a.isub(l)),n.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),n.isub(s),a.isub(u)):(r.isub(e),s.isub(n),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return n=0===e.cmpn(1)?a:s,n.cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var i=0;e.isEven()&&r.isEven();i++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var n=e.cmp(r);if(n<0){var o=e;e=r,r=o}else if(0===n||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var i=0|this.words[r],n=0|t.words[r];if(i!==n){in&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new E(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){E.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var i=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(w,y),w.prototype.split=function(t,e){for(var r=4194303,i=Math.min(t.length,9),n=0;n>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=n,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return g[t]=e,e},E.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},E.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},E.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},E.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},E.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},E.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},E.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},E.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},E.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},E.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},E.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},E.prototype.isqr=function(t){return this.imul(t,t.clone())},E.prototype.sqr=function(t){return this.mul(t,t)},E.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var n=this.m.subn(1),a=0;while(!n.isZero()&&0===n.andln(1))a++,n.iushrn(1);i(!n.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,n),c=this.pow(t,n.addn(1).iushrn(1)),d=this.pow(t,n),p=a;while(0!==d.cmp(s)){for(var m=d,b=0;0!==m.cmp(s);b++)m=m.redSqr();i(b=0;n--){for(var f=e.words[n],l=h-1;l>=0;l--){var c=f>>l&1;a!==i[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===n&&0===l)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}h=26}return a},E.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},E.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},n(A,E),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},"81d5":function(t,e,r){"use strict";var i=r("7b0b"),n=r("23cb"),o=r("50c4");t.exports=function(t){var e=i(this),r=o(e.length),a=arguments.length,s=n(a>1?arguments[1]:void 0,r),u=a>2?arguments[2]:void 0,h=void 0===u?r:n(u,r);while(h>s)e[s++]=t;return e}},"825a":function(t,e,r){var i=r("861d");t.exports=function(t){if(!i(t))throw TypeError(String(t)+" is not an object");return t}},"82f0":function(t,e,r){var i=r("39f5"),n=r("8707").Buffer,o=r("6430"),a=r("3fb5"),s=r("3f62"),u=r("8c8a"),h=r("bd9d");function f(t,e){var r=0;t.length!==e.length&&r++;for(var i=Math.min(t.length,e.length),n=0;n1?arguments[1]:void 0)}))},8360:function(t,e,r){var i=r("41df").Reporter,n=r("41df").EncoderBuffer,o=r("41df").DecoderBuffer,a=r("da3e"),s=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],u=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(s),h=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function f(t,e){var r={};this._baseState=r,r.enc=t,r.parent=e||null,r.children=null,r.tag=null,r.args=null,r.reverseArgs=null,r.choice=null,r.optional=!1,r.any=!1,r.obj=!1,r.use=null,r.useDecoder=null,r.key=null,r["default"]=null,r.explicit=null,r.implicit=null,r.contains=null,r.parent||(r.children=[],this._wrap())}t.exports=f;var l=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];f.prototype.clone=function(){var t=this._baseState,e={};l.forEach((function(r){e[r]=t[r]}));var r=new this.constructor(e.parent);return r._baseState=e,r},f.prototype._wrap=function(){var t=this._baseState;u.forEach((function(e){this[e]=function(){var r=new this.constructor(this);return t.children.push(r),r[e].apply(r,arguments)}}),this)},f.prototype._init=function(t){var e=this._baseState;a(null===e.parent),t.call(this),e.children=e.children.filter((function(t){return t._baseState.parent===this}),this),a.equal(e.children.length,1,"Root node can have only one child")},f.prototype._useArgs=function(t){var e=this._baseState,r=t.filter((function(t){return t instanceof this.constructor}),this);t=t.filter((function(t){return!(t instanceof this.constructor)}),this),0!==r.length&&(a(null===e.children),e.children=r,r.forEach((function(t){t._baseState.parent=this}),this)),0!==t.length&&(a(null===e.args),e.args=t,e.reverseArgs=t.map((function(t){if("object"!==typeof t||t.constructor!==Object)return t;var e={};return Object.keys(t).forEach((function(r){r==(0|r)&&(r|=0);var i=t[r];e[i]=r})),e})))},h.forEach((function(t){f.prototype[t]=function(){var e=this._baseState;throw new Error(t+" not implemented for encoding: "+e.enc)}})),s.forEach((function(t){f.prototype[t]=function(){var e=this._baseState,r=Array.prototype.slice.call(arguments);return a(null===e.tag),e.tag=t,this._useArgs(r),this}})),f.prototype.use=function(t){a(t);var e=this._baseState;return a(null===e.use),e.use=t,this},f.prototype.optional=function(){var t=this._baseState;return t.optional=!0,this},f.prototype.def=function(t){var e=this._baseState;return a(null===e["default"]),e["default"]=t,e.optional=!0,this},f.prototype.explicit=function(t){var e=this._baseState;return a(null===e.explicit&&null===e.implicit),e.explicit=t,this},f.prototype.implicit=function(t){var e=this._baseState;return a(null===e.explicit&&null===e.implicit),e.implicit=t,this},f.prototype.obj=function(){var t=this._baseState,e=Array.prototype.slice.call(arguments);return t.obj=!0,0!==e.length&&this._useArgs(e),this},f.prototype.key=function(t){var e=this._baseState;return a(null===e.key),e.key=t,this},f.prototype.any=function(){var t=this._baseState;return t.any=!0,this},f.prototype.choice=function(t){var e=this._baseState;return a(null===e.choice),e.choice=t,this._useArgs(Object.keys(t).map((function(e){return t[e]}))),this},f.prototype.contains=function(t){var e=this._baseState;return a(null===e.use),e.contains=t,this},f.prototype._decode=function(t,e){var r=this._baseState;if(null===r.parent)return t.wrapResult(r.children[0]._decode(t,e));var i,n=r["default"],a=!0,s=null;if(null!==r.key&&(s=t.enterKey(r.key)),r.optional){var u=null;if(null!==r.explicit?u=r.explicit:null!==r.implicit?u=r.implicit:null!==r.tag&&(u=r.tag),null!==u||r.any){if(a=this._peekTag(t,u,r.any),t.isError(a))return a}else{var h=t.save();try{null===r.choice?this._decodeGeneric(r.tag,t,e):this._decodeChoice(t,e),a=!0}catch(p){a=!1}t.restore(h)}}if(r.obj&&a&&(i=t.enterObject()),a){if(null!==r.explicit){var f=this._decodeTag(t,r.explicit);if(t.isError(f))return f;t=f}var l=t.offset;if(null===r.use&&null===r.choice){if(r.any)h=t.save();var c=this._decodeTag(t,null!==r.implicit?r.implicit:r.tag,r.any);if(t.isError(c))return c;r.any?n=t.raw(h):t=c}if(e&&e.track&&null!==r.tag&&e.track(t.path(),l,t.length,"tagged"),e&&e.track&&null!==r.tag&&e.track(t.path(),t.offset,t.length,"content"),n=r.any?n:null===r.choice?this._decodeGeneric(r.tag,t,e):this._decodeChoice(t,e),t.isError(n))return n;if(r.any||null!==r.choice||null===r.children||r.children.forEach((function(r){r._decode(t,e)})),r.contains&&("octstr"===r.tag||"bitstr"===r.tag)){var d=new o(n);n=this._getUse(r.contains,t._reporterState.obj)._decode(d,e)}}return r.obj&&a&&(n=t.leaveObject(i)),null===r.key||null===n&&!0!==a?null!==s&&t.exitKey(s):t.leaveKey(s,r.key,n),n},f.prototype._decodeGeneric=function(t,e,r){var i=this._baseState;return"seq"===t||"set"===t?null:"seqof"===t||"setof"===t?this._decodeList(e,t,i.args[0],r):/str$/.test(t)?this._decodeStr(e,t,r):"objid"===t&&i.args?this._decodeObjid(e,i.args[0],i.args[1],r):"objid"===t?this._decodeObjid(e,null,null,r):"gentime"===t||"utctime"===t?this._decodeTime(e,t,r):"null_"===t?this._decodeNull(e,r):"bool"===t?this._decodeBool(e,r):"objDesc"===t?this._decodeStr(e,t,r):"int"===t||"enum"===t?this._decodeInt(e,i.args&&i.args[0],r):null!==i.use?this._getUse(i.use,e._reporterState.obj)._decode(e,r):e.error("unknown tag: "+t)},f.prototype._getUse=function(t,e){var r=this._baseState;return r.useDecoder=this._use(t,e),a(null===r.useDecoder._baseState.parent),r.useDecoder=r.useDecoder._baseState.children[0],r.implicit!==r.useDecoder._baseState.implicit&&(r.useDecoder=r.useDecoder.clone(),r.useDecoder._baseState.implicit=r.implicit),r.useDecoder},f.prototype._decodeChoice=function(t,e){var r=this._baseState,i=null,n=!1;return Object.keys(r.choice).some((function(o){var a=t.save(),s=r.choice[o];try{var u=s._decode(t,e);if(t.isError(u))return!1;i={type:o,value:u},n=!0}catch(h){return t.restore(a),!1}return!0}),this),n?i:t.error("Choice not matched")},f.prototype._createEncoderBuffer=function(t){return new n(t,this.reporter)},f.prototype._encode=function(t,e,r){var i=this._baseState;if(null===i["default"]||i["default"]!==t){var n=this._encodeValue(t,e,r);if(void 0!==n&&!this._skipDefault(n,e,r))return n}},f.prototype._encodeValue=function(t,e,r){var n=this._baseState;if(null===n.parent)return n.children[0]._encode(t,e||new i);var o=null;if(this.reporter=e,n.optional&&void 0===t){if(null===n["default"])return;t=n["default"]}var a=null,s=!1;if(n.any)o=this._createEncoderBuffer(t);else if(n.choice)o=this._encodeChoice(t,e);else if(n.contains)a=this._getUse(n.contains,r)._encode(t,e),s=!0;else if(n.children)a=n.children.map((function(r){if("null_"===r._baseState.tag)return r._encode(null,e,t);if(null===r._baseState.key)return e.error("Child should have a key");var i=e.enterKey(r._baseState.key);if("object"!==typeof t)return e.error("Child expected, but input is not object");var n=r._encode(t[r._baseState.key],e,t);return e.leaveKey(i),n}),this).filter((function(t){return t})),a=this._createEncoderBuffer(a);else if("seqof"===n.tag||"setof"===n.tag){if(!n.args||1!==n.args.length)return e.error("Too many args for : "+n.tag);if(!Array.isArray(t))return e.error("seqof/setof, but data is not Array");var u=this.clone();u._baseState.implicit=null,a=this._createEncoderBuffer(t.map((function(r){var i=this._baseState;return this._getUse(i.args[0],t)._encode(r,e)}),u))}else null!==n.use?o=this._getUse(n.use,r)._encode(t,e):(a=this._encodePrimitive(n.tag,t),s=!0);if(!n.any&&null===n.choice){var h=null!==n.implicit?n.implicit:n.tag,f=null===n.implicit?"universal":"context";null===h?null===n.use&&e.error("Tag could be omitted only for .use()"):null===n.use&&(o=this._encodeComposite(h,s,f,a))}return null!==n.explicit&&(o=this._encodeComposite(n.explicit,!1,"context",o)),o},f.prototype._encodeChoice=function(t,e){var r=this._baseState,i=r.choice[t.type];return i||a(!1,t.type+" not found in "+JSON.stringify(Object.keys(r.choice))),i._encode(t.value,e)},f.prototype._encodePrimitive=function(t,e){var r=this._baseState;if(/str$/.test(t))return this._encodeStr(e,t);if("objid"===t&&r.args)return this._encodeObjid(e,r.reverseArgs[0],r.args[1]);if("objid"===t)return this._encodeObjid(e,null,null);if("gentime"===t||"utctime"===t)return this._encodeTime(e,t);if("null_"===t)return this._encodeNull();if("int"===t||"enum"===t)return this._encodeInt(e,r.args&&r.reverseArgs[0]);if("bool"===t)return this._encodeBool(e);if("objDesc"===t)return this._encodeStr(e,t);throw new Error("Unsupported tag: "+t)},f.prototype._isNumstr=function(t){return/^[0-9 ]*$/.test(t)},f.prototype._isPrintstr=function(t){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(t)}},"83ab":function(t,e,r){var i=r("d039");t.exports=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},"83d5":function(t,e){t.exports=function(t,e){var r=t.length,i=-1;while(++i"+a+""}},"85b3":function(t,e,r){var i=r("3fb5"),n=r("3768");function o(t){n.call(this,t),this.enc="pem"}i(o,n),t.exports=o,o.prototype.encode=function(t,e){for(var r=n.prototype.encode.call(this,t),i=r.toString("base64"),o=["-----BEGIN "+e.label+"-----"],a=0;a15){var t=this.cache.slice(0,16);return this.cache=this.cache.slice(16),t}return null},d.prototype.flush=function(){var t=16-this.cache.length,e=o.allocUnsafe(t),r=-1;while(++r>1,f=-7,l=r?n-1:0,c=r?-1:1,d=t[e+l];for(l+=c,o=d&(1<<-f)-1,d>>=-f,f+=s;f>0;o=256*o+t[e+l],l+=c,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=i;f>0;a=256*a+t[e+l],l+=c,f-=8);if(0===o)o=1-h;else{if(o===u)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,i),o-=h}return(d?-1:1)*a*Math.pow(2,o-i)},e.write=function(t,e,r,i,n,o){var a,s,u,h=8*o-n-1,f=(1<>1,c=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,d=i?0:o-1,p=i?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=f):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),e+=a+l>=1?c/u:c*Math.pow(2,1-l),e*u>=2&&(a++,u/=2),a+l>=f?(s=0,a=f):a+l>=1?(s=(e*u-1)*Math.pow(2,n),a+=l):(s=e*Math.pow(2,l-1)*Math.pow(2,n),a=0));n>=8;t[r+d]=255&s,d+=p,s/=256,n-=8);for(a=a<0;t[r+d]=255&a,d+=p,a/=256,h-=8);t[r+d-p]|=128*m}},"919c":function(t,e){t.exports=function(){throw new Error("Readable.from is not available in the browser")}},9263:function(t,e,r){"use strict";var i=r("ad6d"),n=r("9f7f"),o=RegExp.prototype.exec,a=String.prototype.replace,s=o,u=function(){var t=/a/,e=/b*/g;return o.call(t,"a"),o.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),h=n.UNSUPPORTED_Y||n.BROKEN_CARET,f=void 0!==/()??/.exec("")[1],l=u||f||h;l&&(s=function(t){var e,r,n,s,l=this,c=h&&l.sticky,d=i.call(l),p=l.source,m=0,b=t;return c&&(d=d.replace("y",""),-1===d.indexOf("g")&&(d+="g"),b=String(t).slice(l.lastIndex),l.lastIndex>0&&(!l.multiline||l.multiline&&"\n"!==t[l.lastIndex-1])&&(p="(?: "+p+")",b=" "+b,m++),r=new RegExp("^(?:"+p+")",d)),f&&(r=new RegExp("^"+p+"$(?!\\s)",d)),u&&(e=l.lastIndex),n=o.call(c?r:l,b),c?n?(n.input=n.input.slice(m),n[0]=n[0].slice(m),n.index=l.lastIndex,l.lastIndex+=n[0].length):l.lastIndex=0:u&&n&&(l.lastIndex=l.global?n.index+n[0].length:e),f&&n&&n.length>1&&a.call(n[0],r,(function(){for(s=1;s=this._blockSize){for(var o=this._blockOffset;o0;++s)this._length[s]+=u,u=this._length[s]/4294967296|0,u>0&&(this._length[s]-=4294967296*u);return this},s.prototype._update=function(){throw new Error("_update is not implemented")},s.prototype.digest=function(t){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var e=this._digest();void 0!==t&&(e=e.toString(t)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return e},s.prototype._digest=function(){throw new Error("_digest is not implemented")},t.exports=s},"945d":function(t,e,r){"use strict";var i=r("7d92"),n=r("0cbb"),o=r("f3a3"),a=o.assert,s=o.parseBytes,u=r("380f"),h=r("44a3");function f(t){if(a("ed25519"===t,"only tested with ed25519 so far"),!(this instanceof f))return new f(t);t=n[t].curve;this.curve=t,this.g=t.g,this.g.precompute(t.n.bitLength()+1),this.pointClass=t.point().constructor,this.encodingLength=Math.ceil(t.n.bitLength()/8),this.hash=i.sha512}t.exports=f,f.prototype.sign=function(t,e){t=s(t);var r=this.keyFromSecret(e),i=this.hashInt(r.messagePrefix(),t),n=this.g.mul(i),o=this.encodePoint(n),a=this.hashInt(o,r.pubBytes(),t).mul(r.priv()),u=i.add(a).umod(this.curve.n);return this.makeSignature({R:n,S:u,Rencoded:o})},f.prototype.verify=function(t,e,r){t=s(t),e=this.makeSignature(e);var i=this.keyFromPublic(r),n=this.hashInt(e.Rencoded(),i.pubBytes(),t),o=this.g.mul(e.S()),a=e.R().add(i.pub().mul(n));return a.eq(o)},f.prototype.hashInt=function(){for(var t=this.hash(),e=0;e0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";var e=this.head,r=""+e.data;while(e=e.next)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return f.alloc(0);var e=f.allocUnsafe(t>>>0),r=this.head,i=0;while(r)p(r.data,e,i),i+=r.data.length,r=r.next;return e}},{key:"consume",value:function(t,e){var r;return tn.length?n.length:t;if(o===n.length?i+=n:i+=n.slice(0,t),t-=o,0===t){o===n.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=n.slice(o));break}++r}return this.length-=r,i}},{key:"_getBuffer",value:function(t){var e=f.allocUnsafe(t),r=this.head,i=1;r.data.copy(e),t-=r.data.length;while(r=r.next){var n=r.data,o=t>n.length?n.length:t;if(n.copy(e,e.length-t,0,o),t-=o,0===t){o===n.length?(++i,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=n.slice(o));break}++i}return this.length-=i,e}},{key:d,value:function(t,e){return c(this,n({},e,{depth:0,customInspect:!1}))}}]),t}()},"96cf":function(t,e,r){var i=function(t){"use strict";var e,r=Object.prototype,i=r.hasOwnProperty,n="function"===typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",s=n.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(O){u=function(t,e,r){return t[e]=r}}function h(t,e,r,i){var n=e&&e.prototype instanceof b?e:b,o=Object.create(n.prototype),a=new $(i||[]);return o._invoke=A(t,r,a),o}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(O){return{type:"throw",arg:O}}}t.wrap=h;var l="suspendedStart",c="suspendedYield",d="executing",p="completed",m={};function b(){}function v(){}function g(){}var y={};y[o]=function(){return this};var w=Object.getPrototypeOf,M=w&&w(w(T([])));M&&M!==r&&i.call(M,o)&&(y=M);var _=g.prototype=b.prototype=Object.create(y);function S(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(n,o,a,s){var u=f(t[n],t,o);if("throw"!==u.type){var h=u.arg,l=h.value;return l&&"object"===typeof l&&i.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,s)}),(function(t){r("throw",t,a,s)})):e.resolve(l).then((function(t){h.value=t,a(h)}),(function(t){return r("throw",t,a,s)}))}s(u.arg)}var n;function o(t,i){function o(){return new e((function(e,n){r(t,i,e,n)}))}return n=n?n.then(o,o):o()}this._invoke=o}function A(t,e,r){var i=l;return function(n,o){if(i===d)throw new Error("Generator is already running");if(i===p){if("throw"===n)throw o;return I()}r.method=n,r.arg=o;while(1){var a=r.delegate;if(a){var s=x(a,r);if(s){if(s===m)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===l)throw i=p,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=d;var u=f(t,e,r);if("normal"===u.type){if(i=r.done?p:c,u.arg===m)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(i=p,r.method="throw",r.arg=u.arg)}}}function x(t,r){var i=t.iterator[r.method];if(i===e){if(r.delegate=null,"throw"===r.method){if(t.iterator["return"]&&(r.method="return",r.arg=e,x(t,r),"throw"===r.method))return m;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var n=f(i,t.iterator,r.arg);if("throw"===n.type)return r.method="throw",r.arg=n.arg,r.delegate=null,m;var o=n.arg;return o?o.done?(r[t.resultName]=o.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function R(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function $(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function T(t){if(t){var r=t[o];if(r)return r.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var n=-1,a=function r(){while(++n=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=i.call(a,"catchLoc"),h=i.call(a,"finallyLoc");if(u&&h){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),R(r),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var i=r.completion;if("throw"===i.type){var n=i.arg;R(r)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,i){return this.delegate={iterator:T(t),resultName:r,nextLoc:i},"next"===this.method&&(this.arg=e),m}},t}(t.exports);try{regeneratorRuntime=i}catch(n){Function("r","regeneratorRuntime = r")(i)}},"980c":function(t,e,r){var i=r("39a9").Buffer,n=r("399f"),o=r("3337").ec,a=r("2aee"),s=r("cd91");function u(t,e,r,o,s){var u=a(r);if("ec"===u.type){if("ecdsa"!==o&&"ecdsa/rsa"!==o)throw new Error("wrong public key type");return h(t,e,u)}if("dsa"===u.type){if("dsa"!==o)throw new Error("wrong public key type");return f(t,e,u)}if("rsa"!==o&&"ecdsa/rsa"!==o)throw new Error("wrong public key type");e=i.concat([s,e]);var l=u.modulus.byteLength(),c=[1],d=0;while(e.length+c.length+2=e)throw new Error("invalid sig")}t.exports=u},"98e6":function(t,e,r){"use strict";var i=r("3fb5"),n=r("f576"),o=r("b5ca"),a=r("69f2"),s=r("6430");function u(t){s.call(this,"digest"),this._hash=t}i(u,s),u.prototype._update=function(t){this._hash.update(t)},u.prototype._final=function(){return this._hash.digest()},t.exports=function(t){return t=t.toLowerCase(),"md5"===t?new n:"rmd160"===t||"ripemd160"===t?new o:new u(a(t))}},9911:function(t,e,r){"use strict";var i=r("23e7"),n=r("857a"),o=r("af03");i({target:"String",proto:!0,forced:o("link")},{link:function(t){return n(this,"a","href",t)}})},"99af":function(t,e,r){"use strict";var i=r("23e7"),n=r("d039"),o=r("e8b5"),a=r("861d"),s=r("7b0b"),u=r("50c4"),h=r("8418"),f=r("65f0"),l=r("1dde"),c=r("b622"),d=r("2d00"),p=c("isConcatSpreadable"),m=9007199254740991,b="Maximum allowed index exceeded",v=d>=51||!n((function(){var t=[];return t[p]=!1,t.concat()[0]!==t})),g=l("concat"),y=function(t){if(!a(t))return!1;var e=t[p];return void 0!==e?!!e:o(t)},w=!v||!g;i({target:"Array",proto:!0,forced:w},{concat:function(t){var e,r,i,n,o,a=s(this),l=f(a,0),c=0;for(e=-1,i=arguments.length;em)throw TypeError(b);for(r=0;r=m)throw TypeError(b);h(l,c++,o)}return l.length=c,l}})},"9a8c":function(t,e,r){"use strict";var i=r("ebb5"),n=r("145e"),o=i.aTypedArray,a=i.exportTypedArrayMethod;a("copyWithin",(function(t,e){return n.call(o(this),t,e,arguments.length>2?arguments[2]:void 0)}))},"9bdd":function(t,e,r){var i=r("825a");t.exports=function(t,e,r,n){try{return n?e(i(r)[0],r[1]):e(r)}catch(a){var o=t["return"];throw void 0!==o&&i(o.call(t)),a}}},"9bf2":function(t,e,r){var i=r("83ab"),n=r("0cfb"),o=r("825a"),a=r("c04e"),s=Object.defineProperty;e.f=i?s:function(t,e,r){if(o(t),e=a(e,!0),o(r),n)try{return s(t,e,r)}catch(i){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},"9d28":function(t,e,r){"use strict";t.exports=n;var i=r("f1c8");function n(t){if(!(this instanceof n))return new n(t);i.call(this,t)}r("3fb5")(n,i),n.prototype._transform=function(t,e,r){r(null,t)}},"9d8a":function(t,e,r){"use strict";function i(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var n={};function o(t,e,r){function o(t,r,i){return"string"===typeof e?e:e(t,r,i)}r||(r=Error);var a=function(t){function e(e,r,i){return t.call(this,o(e,r,i))||this}return i(e,t),e}(r);a.prototype.name=r.name,a.prototype.code=t,n[t]=a}function a(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map((function(t){return String(t)})),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}function s(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function u(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function h(t,e,r){return"number"!==typeof r&&(r=0),!(r+e.length>t.length)&&-1!==t.indexOf(e,r)}o("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),o("ERR_INVALID_ARG_TYPE",(function(t,e,r){var i,n;if("string"===typeof e&&s(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be",u(t," argument"))n="The ".concat(t," ").concat(i," ").concat(a(e,"type"));else{var o=h(t,".")?"property":"argument";n='The "'.concat(t,'" ').concat(o," ").concat(i," ").concat(a(e,"type"))}return n+=". Received type ".concat(typeof r),n}),TypeError),o("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),o("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),o("ERR_STREAM_PREMATURE_CLOSE","Premature close"),o("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),o("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),o("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),o("ERR_STREAM_WRITE_AFTER_END","write after end"),o("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),o("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),o("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.codes=n},"9ed3":function(t,e,r){"use strict";var i=r("ae93").IteratorPrototype,n=r("7c73"),o=r("5c6c"),a=r("d44e"),s=r("3f8c"),u=function(){return this};t.exports=function(t,e,r){var h=e+" Iterator";return t.prototype=n(i,{next:o(1,r)}),a(t,h,!1,!0),s[h]=u,t}},"9f7f":function(t,e,r){"use strict";var i=r("d039");function n(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=i((function(){var t=n("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=i((function(){var t=n("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},"9f9d":function(t,e,r){(function(e){var r;if(e.browser)r="utf-8";else if(e.version){var i=parseInt(e.version.split(".")[0].slice(1),10);r=i>=6?"utf-8":"binary"}else r="utf-8";t.exports=r}).call(this,r("4362"))},a078:function(t,e,r){var i=r("7b0b"),n=r("50c4"),o=r("35a1"),a=r("e95a"),s=r("0366"),u=r("ebb5").aTypedArrayConstructor;t.exports=function(t){var e,r,h,f,l,c,d=i(t),p=arguments.length,m=p>1?arguments[1]:void 0,b=void 0!==m,v=o(d);if(void 0!=v&&!a(v)){l=v.call(d),c=l.next,d=[];while(!(f=c.call(l)).done)d.push(f.value)}for(b&&p>2&&(m=s(m,arguments[2],2)),r=n(d.length),h=new(u(this))(r),e=0;r>e;e++)h[e]=b?m(d[e],e):d[e];return h}},a099:function(t,e,r){e.pbkdf2=r("206d"),e.pbkdf2Sync=r("e07b")},a15b:function(t,e,r){"use strict";var i=r("23e7"),n=r("44ad"),o=r("fc6a"),a=r("a640"),s=[].join,u=n!=Object,h=a("join",",");i({target:"Array",proto:!0,forced:u||!h},{join:function(t){return s.call(o(this),void 0===t?",":t)}})},a255:function(t,e,r){var i=r("3fb5"),n=r("b672"),o=r("8707").Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function u(){this.init(),this._w=s,n.call(this,64,56)}function h(t,e,r){return r^t&(e^r)}function f(t,e,r){return t&e|r&(t|e)}function l(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function c(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function d(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}function p(t){return(t>>>17|t<<15)^(t>>>19|t<<13)^t>>>10}i(u,n),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(t){for(var e=this._w,r=0|this._a,i=0|this._b,n=0|this._c,o=0|this._d,s=0|this._e,u=0|this._f,m=0|this._g,b=0|this._h,v=0;v<16;++v)e[v]=t.readInt32BE(4*v);for(;v<64;++v)e[v]=p(e[v-2])+e[v-7]+d(e[v-15])+e[v-16]|0;for(var g=0;g<64;++g){var y=b+c(s)+h(s,u,m)+a[g]+e[g]|0,w=l(r)+f(r,i,n)|0;b=m,m=u,u=s,s=o+y|0,o=n,n=i,i=r,r=y+w|0}this._a=r+this._a|0,this._b=i+this._b|0,this._c=n+this._c|0,this._d=o+this._d|0,this._e=s+this._e|0,this._f=u+this._f|0,this._g=m+this._g|0,this._h=b+this._h|0},u.prototype._hash=function(){var t=o.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},t.exports=u},a25c:function(t,e,r){(function(t){(function(t,e){"use strict";function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a=r(9).Buffer}catch(x){}function s(t,e,r){for(var i=0,n=Math.min(t.length,r),o=e;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return i}function u(t,e,r,i){for(var n=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var n=0;"-"===t[0]&&n++,16===e?this._parseHex(t,n):this._parseBase(t,e,n),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(i("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)n=s(t,r,r+6),this.words[i]|=n<>>26-o&4194303,o+=24,o>=26&&(o-=26,i++);r+6!==e&&(n=s(t,e,r+6),this.words[i]|=n<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=e)i++;i--,n=n/e|0;for(var o=t.length-r,a=o%i,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>n}return e}function d(t,e,r){r.negative=e.negative^t.negative;var i=t.length+e.length|0;r.length=i,i=i-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;n=0|t.words[p],o=0|e.words[d],a=n*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,n+=2,n>=26&&(n-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,i=t):(r=t,i=this);for(var n=0,o=0;o>>26;for(;0!==n&&o>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,i,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=t):(r=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,b=0|a[2],v=8191&b,g=b>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],S=8191&_,E=_>>>13,A=0|a[5],x=8191&A,k=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,L=0|a[8],N=8191&L,B=L>>>13,P=0|a[9],j=8191&P,D=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],K=8191&z,W=z>>>13,H=0|s[2],Z=8191&H,Y=H>>>13,V=0|s[3],G=8191&V,X=V>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,it=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,i=Math.imul(l,U),n=Math.imul(l,F),n=n+Math.imul(c,U)|0,o=Math.imul(c,F);var bt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(p,U),n=Math.imul(p,F),n=n+Math.imul(m,U)|0,o=Math.imul(m,F),i=i+Math.imul(l,K)|0,n=n+Math.imul(l,W)|0,n=n+Math.imul(c,K)|0,o=o+Math.imul(c,W)|0;var vt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,U),n=Math.imul(v,F),n=n+Math.imul(g,U)|0,o=Math.imul(g,F),i=i+Math.imul(p,K)|0,n=n+Math.imul(p,W)|0,n=n+Math.imul(m,K)|0,o=o+Math.imul(m,W)|0,i=i+Math.imul(l,Z)|0,n=n+Math.imul(l,Y)|0,n=n+Math.imul(c,Z)|0,o=o+Math.imul(c,Y)|0;var gt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,i=Math.imul(w,U),n=Math.imul(w,F),n=n+Math.imul(M,U)|0,o=Math.imul(M,F),i=i+Math.imul(v,K)|0,n=n+Math.imul(v,W)|0,n=n+Math.imul(g,K)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(p,Z)|0,n=n+Math.imul(p,Y)|0,n=n+Math.imul(m,Z)|0,o=o+Math.imul(m,Y)|0,i=i+Math.imul(l,G)|0,n=n+Math.imul(l,X)|0,n=n+Math.imul(c,G)|0,o=o+Math.imul(c,X)|0;var yt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(S,U),n=Math.imul(S,F),n=n+Math.imul(E,U)|0,o=Math.imul(E,F),i=i+Math.imul(w,K)|0,n=n+Math.imul(w,W)|0,n=n+Math.imul(M,K)|0,o=o+Math.imul(M,W)|0,i=i+Math.imul(v,Z)|0,n=n+Math.imul(v,Y)|0,n=n+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(p,G)|0,n=n+Math.imul(p,X)|0,n=n+Math.imul(m,G)|0,o=o+Math.imul(m,X)|0,i=i+Math.imul(l,Q)|0,n=n+Math.imul(l,tt)|0,n=n+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(x,U),n=Math.imul(x,F),n=n+Math.imul(k,U)|0,o=Math.imul(k,F),i=i+Math.imul(S,K)|0,n=n+Math.imul(S,W)|0,n=n+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,i=i+Math.imul(w,Z)|0,n=n+Math.imul(w,Y)|0,n=n+Math.imul(M,Z)|0,o=o+Math.imul(M,Y)|0,i=i+Math.imul(v,G)|0,n=n+Math.imul(v,X)|0,n=n+Math.imul(g,G)|0,o=o+Math.imul(g,X)|0,i=i+Math.imul(p,Q)|0,n=n+Math.imul(p,tt)|0,n=n+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,i=i+Math.imul(l,rt)|0,n=n+Math.imul(l,it)|0,n=n+Math.imul(c,rt)|0,o=o+Math.imul(c,it)|0;var Mt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul($,U),n=Math.imul($,F),n=n+Math.imul(T,U)|0,o=Math.imul(T,F),i=i+Math.imul(x,K)|0,n=n+Math.imul(x,W)|0,n=n+Math.imul(k,K)|0,o=o+Math.imul(k,W)|0,i=i+Math.imul(S,Z)|0,n=n+Math.imul(S,Y)|0,n=n+Math.imul(E,Z)|0,o=o+Math.imul(E,Y)|0,i=i+Math.imul(w,G)|0,n=n+Math.imul(w,X)|0,n=n+Math.imul(M,G)|0,o=o+Math.imul(M,X)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(v,tt)|0,n=n+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(p,rt)|0,n=n+Math.imul(p,it)|0,n=n+Math.imul(m,rt)|0,o=o+Math.imul(m,it)|0,i=i+Math.imul(l,ot)|0,n=n+Math.imul(l,at)|0,n=n+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(O,U),n=Math.imul(O,F),n=n+Math.imul(C,U)|0,o=Math.imul(C,F),i=i+Math.imul($,K)|0,n=n+Math.imul($,W)|0,n=n+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,i=i+Math.imul(x,Z)|0,n=n+Math.imul(x,Y)|0,n=n+Math.imul(k,Z)|0,o=o+Math.imul(k,Y)|0,i=i+Math.imul(S,G)|0,n=n+Math.imul(S,X)|0,n=n+Math.imul(E,G)|0,o=o+Math.imul(E,X)|0,i=i+Math.imul(w,Q)|0,n=n+Math.imul(w,tt)|0,n=n+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,i=i+Math.imul(v,rt)|0,n=n+Math.imul(v,it)|0,n=n+Math.imul(g,rt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(p,ot)|0,n=n+Math.imul(p,at)|0,n=n+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,i=i+Math.imul(l,ut)|0,n=n+Math.imul(l,ht)|0,n=n+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var St=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(N,U),n=Math.imul(N,F),n=n+Math.imul(B,U)|0,o=Math.imul(B,F),i=i+Math.imul(O,K)|0,n=n+Math.imul(O,W)|0,n=n+Math.imul(C,K)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul($,Z)|0,n=n+Math.imul($,Y)|0,n=n+Math.imul(T,Z)|0,o=o+Math.imul(T,Y)|0,i=i+Math.imul(x,G)|0,n=n+Math.imul(x,X)|0,n=n+Math.imul(k,G)|0,o=o+Math.imul(k,X)|0,i=i+Math.imul(S,Q)|0,n=n+Math.imul(S,tt)|0,n=n+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,i=i+Math.imul(w,rt)|0,n=n+Math.imul(w,it)|0,n=n+Math.imul(M,rt)|0,o=o+Math.imul(M,it)|0,i=i+Math.imul(v,ot)|0,n=n+Math.imul(v,at)|0,n=n+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(p,ut)|0,n=n+Math.imul(p,ht)|0,n=n+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,i=i+Math.imul(l,lt)|0,n=n+Math.imul(l,ct)|0,n=n+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var Et=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(j,U),n=Math.imul(j,F),n=n+Math.imul(D,U)|0,o=Math.imul(D,F),i=i+Math.imul(N,K)|0,n=n+Math.imul(N,W)|0,n=n+Math.imul(B,K)|0,o=o+Math.imul(B,W)|0,i=i+Math.imul(O,Z)|0,n=n+Math.imul(O,Y)|0,n=n+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul($,G)|0,n=n+Math.imul($,X)|0,n=n+Math.imul(T,G)|0,o=o+Math.imul(T,X)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(x,tt)|0,n=n+Math.imul(k,Q)|0,o=o+Math.imul(k,tt)|0,i=i+Math.imul(S,rt)|0,n=n+Math.imul(S,it)|0,n=n+Math.imul(E,rt)|0,o=o+Math.imul(E,it)|0,i=i+Math.imul(w,ot)|0,n=n+Math.imul(w,at)|0,n=n+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,i=i+Math.imul(v,ut)|0,n=n+Math.imul(v,ht)|0,n=n+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,i=i+Math.imul(p,lt)|0,n=n+Math.imul(p,ct)|0,n=n+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,i=i+Math.imul(l,pt)|0,n=n+Math.imul(l,mt)|0,n=n+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(j,K),n=Math.imul(j,W),n=n+Math.imul(D,K)|0,o=Math.imul(D,W),i=i+Math.imul(N,Z)|0,n=n+Math.imul(N,Y)|0,n=n+Math.imul(B,Z)|0,o=o+Math.imul(B,Y)|0,i=i+Math.imul(O,G)|0,n=n+Math.imul(O,X)|0,n=n+Math.imul(C,G)|0,o=o+Math.imul(C,X)|0,i=i+Math.imul($,Q)|0,n=n+Math.imul($,tt)|0,n=n+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,i=i+Math.imul(x,rt)|0,n=n+Math.imul(x,it)|0,n=n+Math.imul(k,rt)|0,o=o+Math.imul(k,it)|0,i=i+Math.imul(S,ot)|0,n=n+Math.imul(S,at)|0,n=n+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,i=i+Math.imul(w,ut)|0,n=n+Math.imul(w,ht)|0,n=n+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,i=i+Math.imul(v,lt)|0,n=n+Math.imul(v,ct)|0,n=n+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,i=i+Math.imul(p,pt)|0,n=n+Math.imul(p,mt)|0,n=n+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var xt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(j,Z),n=Math.imul(j,Y),n=n+Math.imul(D,Z)|0,o=Math.imul(D,Y),i=i+Math.imul(N,G)|0,n=n+Math.imul(N,X)|0,n=n+Math.imul(B,G)|0,o=o+Math.imul(B,X)|0,i=i+Math.imul(O,Q)|0,n=n+Math.imul(O,tt)|0,n=n+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul($,rt)|0,n=n+Math.imul($,it)|0,n=n+Math.imul(T,rt)|0,o=o+Math.imul(T,it)|0,i=i+Math.imul(x,ot)|0,n=n+Math.imul(x,at)|0,n=n+Math.imul(k,ot)|0,o=o+Math.imul(k,at)|0,i=i+Math.imul(S,ut)|0,n=n+Math.imul(S,ht)|0,n=n+Math.imul(E,ut)|0,o=o+Math.imul(E,ht)|0,i=i+Math.imul(w,lt)|0,n=n+Math.imul(w,ct)|0,n=n+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,i=i+Math.imul(v,pt)|0,n=n+Math.imul(v,mt)|0,n=n+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var kt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(j,G),n=Math.imul(j,X),n=n+Math.imul(D,G)|0,o=Math.imul(D,X),i=i+Math.imul(N,Q)|0,n=n+Math.imul(N,tt)|0,n=n+Math.imul(B,Q)|0,o=o+Math.imul(B,tt)|0,i=i+Math.imul(O,rt)|0,n=n+Math.imul(O,it)|0,n=n+Math.imul(C,rt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul($,ot)|0,n=n+Math.imul($,at)|0,n=n+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,i=i+Math.imul(x,ut)|0,n=n+Math.imul(x,ht)|0,n=n+Math.imul(k,ut)|0,o=o+Math.imul(k,ht)|0,i=i+Math.imul(S,lt)|0,n=n+Math.imul(S,ct)|0,n=n+Math.imul(E,lt)|0,o=o+Math.imul(E,ct)|0,i=i+Math.imul(w,pt)|0,n=n+Math.imul(w,mt)|0,n=n+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,i=Math.imul(j,Q),n=Math.imul(j,tt),n=n+Math.imul(D,Q)|0,o=Math.imul(D,tt),i=i+Math.imul(N,rt)|0,n=n+Math.imul(N,it)|0,n=n+Math.imul(B,rt)|0,o=o+Math.imul(B,it)|0,i=i+Math.imul(O,ot)|0,n=n+Math.imul(O,at)|0,n=n+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul($,ut)|0,n=n+Math.imul($,ht)|0,n=n+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,i=i+Math.imul(x,lt)|0,n=n+Math.imul(x,ct)|0,n=n+Math.imul(k,lt)|0,o=o+Math.imul(k,ct)|0,i=i+Math.imul(S,pt)|0,n=n+Math.imul(S,mt)|0,n=n+Math.imul(E,pt)|0,o=o+Math.imul(E,mt)|0;var $t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+($t>>>26)|0,$t&=67108863,i=Math.imul(j,rt),n=Math.imul(j,it),n=n+Math.imul(D,rt)|0,o=Math.imul(D,it),i=i+Math.imul(N,ot)|0,n=n+Math.imul(N,at)|0,n=n+Math.imul(B,ot)|0,o=o+Math.imul(B,at)|0,i=i+Math.imul(O,ut)|0,n=n+Math.imul(O,ht)|0,n=n+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,i=i+Math.imul($,lt)|0,n=n+Math.imul($,ct)|0,n=n+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,i=i+Math.imul(x,pt)|0,n=n+Math.imul(x,mt)|0,n=n+Math.imul(k,pt)|0,o=o+Math.imul(k,mt)|0;var Tt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(j,ot),n=Math.imul(j,at),n=n+Math.imul(D,ot)|0,o=Math.imul(D,at),i=i+Math.imul(N,ut)|0,n=n+Math.imul(N,ht)|0,n=n+Math.imul(B,ut)|0,o=o+Math.imul(B,ht)|0,i=i+Math.imul(O,lt)|0,n=n+Math.imul(O,ct)|0,n=n+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,i=i+Math.imul($,pt)|0,n=n+Math.imul($,mt)|0,n=n+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(j,ut),n=Math.imul(j,ht),n=n+Math.imul(D,ut)|0,o=Math.imul(D,ht),i=i+Math.imul(N,lt)|0,n=n+Math.imul(N,ct)|0,n=n+Math.imul(B,lt)|0,o=o+Math.imul(B,ct)|0,i=i+Math.imul(O,pt)|0,n=n+Math.imul(O,mt)|0,n=n+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(j,lt),n=Math.imul(j,ct),n=n+Math.imul(D,lt)|0,o=Math.imul(D,ct),i=i+Math.imul(N,pt)|0,n=n+Math.imul(N,mt)|0,n=n+Math.imul(B,pt)|0,o=o+Math.imul(B,mt)|0;var Ct=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(j,pt),n=Math.imul(j,mt),n=n+Math.imul(D,pt)|0,o=Math.imul(D,mt);var Lt=(h+i|0)+((8191&n)<<13)|0;return h=(o+(n>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,u[0]=bt,u[1]=vt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=St,u[8]=Et,u[9]=At,u[10]=xt,u[11]=kt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Lt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var i=0,n=0,o=0;o>>26)|0,n+=a>>>26,a&=67108863}r.words[o]=s,i=a,a=n}return 0!==i?r.words[o]=i:r.length--,r.strip()}function b(t,e,r){var i=new v;return i.mulp(t,e,r)}function v(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,i=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):i<63?d(this,t,e):i<1024?m(this,t,e):b(this,t,e),r},v.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,i=0;i>=1;return i},v.prototype.permute=function(t,e,r,i,n,o){for(var a=0;a>>=1)n++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,i=0;i=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=n);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,i=this.clone(),n=t,a=0|n.words[n.length-1],s=this._countBits(a);r=26-s,0!==r&&(n=n.ushln(r),i.iushln(r),a=0|n.words[n.length-1]);var u,h=i.length-n.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|i.words[n.length+c])+(0|i.words[n.length+c-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(n,d,c);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(n,1,c),i.isZero()||(i.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==r&&i.iushrn(r),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),n=t.andln(1),o=r.cmp(i);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(n.isOdd()||a.isOdd())&&(n.iadd(f),a.isub(l)),n.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),n.isub(s),a.isub(u)):(r.isub(e),s.isub(n),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return n=0===e.cmpn(1)?a:s,n.cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var i=0;e.isEven()&&r.isEven();i++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var n=e.cmp(r);if(n<0){var o=e;e=r,r=o}else if(0===n||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var i=0|this.words[r],n=0|t.words[r];if(i!==n){in&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new E(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){E.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var i=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(w,y),w.prototype.split=function(t,e){for(var r=4194303,i=Math.min(t.length,9),n=0;n>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=n,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return g[t]=e,e},E.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},E.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},E.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},E.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},E.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},E.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},E.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},E.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},E.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},E.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},E.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},E.prototype.isqr=function(t){return this.imul(t,t.clone())},E.prototype.sqr=function(t){return this.mul(t,t)},E.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var n=this.m.subn(1),a=0;while(!n.isZero()&&0===n.andln(1))a++,n.iushrn(1);i(!n.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,n),c=this.pow(t,n.addn(1).iushrn(1)),d=this.pow(t,n),p=a;while(0!==d.cmp(s)){for(var m=d,b=0;0!==m.cmp(s);b++)m=m.redSqr();i(b=0;n--){for(var f=e.words[n],l=h-1;l>=0;l--){var c=f>>l&1;a!==i[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===n&&0===l)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}h=26}return a},E.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},E.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},n(A,E),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},a434:function(t,e,r){"use strict";var i=r("23e7"),n=r("23cb"),o=r("a691"),a=r("50c4"),s=r("7b0b"),u=r("65f0"),h=r("8418"),f=r("1dde"),l=r("ae40"),c=f("splice"),d=l("splice",{ACCESSORS:!0,0:0,1:2}),p=Math.max,m=Math.min,b=9007199254740991,v="Maximum allowed length exceeded";i({target:"Array",proto:!0,forced:!c||!d},{splice:function(t,e){var r,i,f,l,c,d,g=s(this),y=a(g.length),w=n(t,y),M=arguments.length;if(0===M?r=i=0:1===M?(r=0,i=y-w):(r=M-2,i=m(p(o(e),0),y-w)),y+r-i>b)throw TypeError(v);for(f=u(g,i),l=0;ly-i+r;l--)delete g[l-1]}else if(r>i)for(l=y-i;l>w;l--)c=l+i-1,d=l+r-1,c in g?g[d]=g[c]:delete g[d];for(l=0;lo)n.push(arguments[o++]);if(i=e,(d(e)||void 0!==t)&&!st(t))return c(e)||(e=function(t,e){if("function"==typeof i&&(e=i.call(this,t,e)),!st(e))return e}),n[1]=e,Z.apply(null,n)}})}H[U][F]||k(H[U],F,H[U].valueOf),B(H,q),I[D]=!0},a630:function(t,e,r){var i=r("23e7"),n=r("4df4"),o=r("1c7e"),a=!o((function(t){Array.from(t)}));i({target:"Array",stat:!0,forced:a},{from:n})},a640:function(t,e,r){"use strict";var i=r("d039");t.exports=function(t,e){var r=[][t];return!!r&&i((function(){r.call(null,e||function(){throw 1},1)}))}},a691:function(t,e){var r=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:r)(t)}},a692:function(t,e,r){"use strict";function i(t){return!!t&&("object"===typeof t||"function"===typeof t)&&"function"===typeof t.then}function n(t){function e(t,e,r,i){function n(e){"function"!==typeof self.postMessage?t.ports[0].postMessage(e):self.postMessage(e)}r?("undefined"!==typeof console&&"error"in console&&console.error("Worker caught an error:",r),n([e,{message:r.message}])):n([e,null,i])}function r(t,e){try{return{res:t(e)}}catch(r){return{err:r}}}function n(t,n,o,a){var s=r(n,a);s.err?e(t,o,s.err):i(s.res)?s.res.then((function(r){e(t,o,null,r)}),(function(r){e(t,o,r)})):e(t,o,null,s.res)}function o(r){var i=r.data;if(Array.isArray(i)&&2===i.length){var o=i[0],a=i[1];"function"!==typeof t?e(r,o,new Error("Please pass a function into register().")):n(r,t,o,a)}}self.addEventListener("message",o)}t.exports=n},a874:function(t,e,r){var i=r("23e7"),n=r("145e"),o=r("44d2");i({target:"Array",proto:!0},{copyWithin:n}),o("copyWithin")},a958:function(t,e,r){(function(e){var i=r("a25c"),n=r("11dc");function o(t){var e=s(t),r=e.toRed(i.mont(t.modulus)).redPow(new i(t.publicExponent)).fromRed();return{blinder:r,unblinder:e.invm(t.modulus)}}function a(t,r){var n=o(r),a=r.modulus.byteLength(),s=(i.mont(r.modulus),new i(t).mul(n.blinder).umod(r.modulus)),u=s.toRed(i.mont(r.prime1)),h=s.toRed(i.mont(r.prime2)),f=r.coefficient,l=r.prime1,c=r.prime2,d=u.redPow(r.exponent1),p=h.redPow(r.exponent2);d=d.fromRed(),p=p.fromRed();var m=d.isub(p).imul(f).umod(l);return m.imul(c),p.iadd(m),new e(p.imul(n.unblinder).umod(r.modulus).toArray(!1,a))}function s(t){var e=t.modulus.byteLength(),r=new i(n(e));while(r.cmp(t.modulus)>=0||!r.umod(t.prime1)||!r.umod(t.prime2))r=new i(n(e));return r}t.exports=a,a.getr=s}).call(this,r("b639").Buffer)},a975:function(t,e,r){"use strict";var i=r("ebb5"),n=r("b727").every,o=i.aTypedArray,a=i.exportTypedArrayMethod;a("every",(function(t){return n(o(this),t,arguments.length>1?arguments[1]:void 0)}))},a981:function(t,e){t.exports="undefined"!==typeof ArrayBuffer&&"undefined"!==typeof DataView},a9e3:function(t,e,r){"use strict";var i=r("83ab"),n=r("da84"),o=r("94ca"),a=r("6eeb"),s=r("5135"),u=r("c6b6"),h=r("7156"),f=r("c04e"),l=r("d039"),c=r("7c73"),d=r("241c").f,p=r("06cf").f,m=r("9bf2").f,b=r("58a8").trim,v="Number",g=n[v],y=g.prototype,w=u(c(y))==v,M=function(t){var e,r,i,n,o,a,s,u,h=f(t,!1);if("string"==typeof h&&h.length>2)if(h=b(h),e=h.charCodeAt(0),43===e||45===e){if(r=h.charCodeAt(2),88===r||120===r)return NaN}else if(48===e){switch(h.charCodeAt(1)){case 66:case 98:i=2,n=49;break;case 79:case 111:i=8,n=55;break;default:return+h}for(o=h.slice(2),a=o.length,s=0;sn)return NaN;return parseInt(o,i)}return+h};if(o(v,!g(" 0o1")||!g("0b1")||g("+0x1"))){for(var _,S=function(t){var e=arguments.length<1?0:t,r=this;return r instanceof S&&(w?l((function(){y.valueOf.call(r)})):u(r)!=v)?h(new g(M(e)),r,S):M(e)},E=i?d(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),A=0;E.length>A;A++)s(g,_=E[A])&&!s(S,_)&&m(S,_,p(g,_));S.prototype=y,y.constructor=S,a(n,v,S)}},aa56:function(t,e,r){"use strict";var i=r("c3c0"),n=i.rotr32;function o(t,e,r,i){return 0===t?a(e,r,i):1===t||3===t?u(e,r,i):2===t?s(e,r,i):void 0}function a(t,e,r){return t&e^~t&r}function s(t,e,r){return t&e^t&r^e&r}function u(t,e,r){return t^e^r}function h(t){return n(t,2)^n(t,13)^n(t,22)}function f(t){return n(t,6)^n(t,11)^n(t,25)}function l(t){return n(t,7)^n(t,18)^t>>>3}function c(t){return n(t,17)^n(t,19)^t>>>10}e.ft_1=o,e.ch32=a,e.maj32=s,e.p32=u,e.s0_256=h,e.s1_256=f,e.g0_256=l,e.g1_256=c},ab13:function(t,e,r){var i=r("b622"),n=i("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(r){try{return e[n]=!1,"/./"[t](e)}catch(i){}}return!1}},ac1f:function(t,e,r){"use strict";var i=r("23e7"),n=r("9263");i({target:"RegExp",proto:!0,forced:/./.exec!==n},{exec:n})},ac4f:function(t,e,r){"use strict";var i;function n(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var o=r("d113").codes,a=o.ERR_MISSING_ARGS,s=o.ERR_STREAM_DESTROYED;function u(t){if(t)throw t}function h(t){return t.setHeader&&"function"===typeof t.abort}function f(t,e,o,a){a=n(a);var u=!1;t.on("close",(function(){u=!0})),void 0===i&&(i=r("42a7")),i(t,{readable:e,writable:o},(function(t){if(t)return a(t);u=!0,a()}));var f=!1;return function(e){if(!u&&!f)return f=!0,h(t)?t.abort():"function"===typeof t.destroy?t.destroy():void a(e||new s("pipe"))}}function l(t){t()}function c(t,e){return t.pipe(e)}function d(t){return t.length?"function"!==typeof t[t.length-1]?u:t.pop():u}function p(){for(var t=arguments.length,e=new Array(t),r=0;r0;return f(t,a,s,(function(t){i||(i=t),t&&o.forEach(l),a||(o.forEach(l),n(i))}))}));return e.reduce(c)}t.exports=p},acac:function(t,e,r){"use strict";var i=r("e2cc"),n=r("f183").getWeakData,o=r("825a"),a=r("861d"),s=r("19aa"),u=r("2266"),h=r("b727"),f=r("5135"),l=r("69f3"),c=l.set,d=l.getterFor,p=h.find,m=h.findIndex,b=0,v=function(t){return t.frozen||(t.frozen=new g)},g=function(){this.entries=[]},y=function(t,e){return p(t.entries,(function(t){return t[0]===e}))};g.prototype={get:function(t){var e=y(this,t);if(e)return e[1]},has:function(t){return!!y(this,t)},set:function(t,e){var r=y(this,t);r?r[1]=e:this.entries.push([t,e])},delete:function(t){var e=m(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,r,h){var l=t((function(t,i){s(t,l,e),c(t,{type:e,id:b++,frozen:void 0}),void 0!=i&&u(i,t[h],t,r)})),p=d(e),m=function(t,e,r){var i=p(t),a=n(o(e),!0);return!0===a?v(i).set(e,r):a[i.id]=r,t};return i(l.prototype,{delete:function(t){var e=p(this);if(!a(t))return!1;var r=n(t);return!0===r?v(e)["delete"](t):r&&f(r,e.id)&&delete r[e.id]},has:function(t){var e=p(this);if(!a(t))return!1;var r=n(t);return!0===r?v(e).has(t):r&&f(r,e.id)}}),i(l.prototype,r?{get:function(t){var e=p(this);if(a(t)){var r=n(t);return!0===r?v(e).get(t):r?r[e.id]:void 0}},set:function(t,e){return m(this,t,e)}}:{add:function(t){return m(this,t,!0)}}),l}}},ad25:function(t,e,r){var i=r("2aee"),n=r("11dc"),o=r("98e6"),a=r("f460"),s=r("83d5"),u=r("0106"),h=r("5291"),f=r("a958"),l=r("8707").Buffer;function c(t,e){var r=t.modulus.byteLength(),i=e.length,h=o("sha1").update(l.alloc(0)).digest(),f=h.length,c=2*f;if(i>r-c-2)throw new Error("message too long");var d=l.alloc(r-i-c-2),p=r-f-1,m=n(f),b=s(l.concat([h,d,l.alloc(1,1),e],p),a(m,p)),v=s(m,a(b,f));return new u(l.concat([l.alloc(1),v,b],r))}function d(t,e,r){var i,n=e.length,o=t.modulus.byteLength();if(n>o-11)throw new Error("message too long");return i=r?l.alloc(o-n-3,255):p(o-n-3),new u(l.concat([l.from([0,r?1:2]),i,l.alloc(1),e],o))}function p(t){var e,r=l.allocUnsafe(t),i=0,o=n(2*t),a=0;while(i=0)throw new Error("data too long for modulus")}return r?f(o,a):h(o,a)}},ad6d:function(t,e,r){"use strict";var i=r("825a");t.exports=function(){var t=i(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},ad71:function(t,e,r){"use strict";(function(e,i){var n=r("966d");t.exports=_;var o,a=r("e3db");_.ReadableState=M;r("faa1").EventEmitter;var s=function(t,e){return t.listeners(e).length},u=r("429b"),h=r("8707").Buffer,f=e.Uint8Array||function(){};function l(t){return h.from(t)}function c(t){return h.isBuffer(t)||t instanceof f}var d=Object.create(r("3a7c"));d.inherits=r("3fb5");var p=r(2),m=void 0;m=p&&p.debuglog?p.debuglog("stream"):function(){};var b,v=r("5e1a"),g=r("4681");d.inherits(_,u);var y=["error","close","destroy","pause","resume"];function w(t,e,r){if("function"===typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?a(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}function M(t,e){o=o||r("b19a"),t=t||{};var i=e instanceof o;this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var n=t.highWaterMark,a=t.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:i&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new v,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(b||(b=r("7d72").StringDecoder),this.decoder=new b(t.encoding),this.encoding=t.encoding)}function _(t){if(o=o||r("b19a"),!(this instanceof _))return new _(t);this._readableState=new M(t,this),this.readable=!0,t&&("function"===typeof t.read&&(this._read=t.read),"function"===typeof t.destroy&&(this._destroy=t.destroy)),u.call(this)}function S(t,e,r,i,n){var o,a=t._readableState;null===e?(a.reading=!1,T(t,a)):(n||(o=A(a,e)),o?t.emit("error",o):a.objectMode||e&&e.length>0?("string"===typeof e||a.objectMode||Object.getPrototypeOf(e)===h.prototype||(e=l(e)),i?a.endEmitted?t.emit("error",new Error("stream.unshift() after end event")):E(t,a,e,!0):a.ended?t.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?E(t,a,e,!1):C(t,a)):E(t,a,e,!1))):i||(a.reading=!1));return x(a)}function E(t,e,r,i){e.flowing&&0===e.length&&!e.sync?(t.emit("data",r),t.read(0)):(e.length+=e.objectMode?1:r.length,i?e.buffer.unshift(r):e.buffer.push(r),e.needReadable&&I(t)),C(t,e)}function A(t,e){var r;return c(e)||"string"===typeof e||void 0===e||t.objectMode||(r=new TypeError("Invalid non-string/buffer chunk")),r}function x(t){return!t.ended&&(t.needReadable||t.length=k?t=k:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function $(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=R(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function T(t,e){if(!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,I(t)}}function I(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(m("emitReadable",e.flowing),e.emittedReadable=!0,e.sync?n.nextTick(O,t):O(t))}function O(t){m("emit readable"),t.emit("readable"),D(t)}function C(t,e){e.readingMore||(e.readingMore=!0,n.nextTick(L,t,e))}function L(t,e){var r=e.length;while(!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=U(t,e.buffer,e.decoder),r);var r}function U(t,e,r){var i;return to.length?o.length:t;if(a===o.length?n+=o:n+=o.slice(0,t),t-=a,0===t){a===o.length?(++i,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(a));break}++i}return e.length-=i,n}function z(t,e){var r=h.allocUnsafe(t),i=e.head,n=1;i.data.copy(r),t-=i.data.length;while(i=i.next){var o=i.data,a=t>o.length?o.length:t;if(o.copy(r,r.length-t,0,a),t-=a,0===t){a===o.length?(++n,i.next?e.head=i.next:e.head=e.tail=null):(e.head=i,i.data=o.slice(a));break}++n}return e.length-=n,r}function K(t){var e=t._readableState;if(e.length>0)throw new Error('"endReadable()" called on non-empty stream');e.endEmitted||(e.ended=!0,n.nextTick(W,e,t))}function W(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit("end"))}function H(t,e){for(var r=0,i=t.length;r=e.highWaterMark||e.ended))return m("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?K(this):I(this),null;if(t=$(t,e),0===t&&e.ended)return 0===e.length&&K(this),null;var i,n=e.needReadable;return m("need readable",n),(0===e.length||e.length-t0?q(t,e):null,null===i?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&K(this)),null!==i&&this.emit("data",i),i},_.prototype._read=function(t){this.emit("error",new Error("_read() is not implemented"))},_.prototype.pipe=function(t,e){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t);break}o.pipesCount+=1,m("pipe count=%d opts=%j",o.pipesCount,e);var a=(!e||!1!==e.end)&&t!==i.stdout&&t!==i.stderr,u=a?f:M;function h(t,e){m("onunpipe"),t===r&&e&&!1===e.hasUnpiped&&(e.hasUnpiped=!0,d())}function f(){m("onend"),t.end()}o.endEmitted?n.nextTick(u):r.once("end",u),t.on("unpipe",h);var l=N(r);t.on("drain",l);var c=!1;function d(){m("cleanup"),t.removeListener("close",g),t.removeListener("finish",y),t.removeListener("drain",l),t.removeListener("error",v),t.removeListener("unpipe",h),r.removeListener("end",f),r.removeListener("end",M),r.removeListener("data",b),c=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||l()}var p=!1;function b(e){m("ondata"),p=!1;var i=t.write(e);!1!==i||p||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==H(o.pipes,t))&&!c&&(m("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,p=!0),r.pause())}function v(e){m("onerror",e),M(),t.removeListener("error",v),0===s(t,"error")&&t.emit("error",e)}function g(){t.removeListener("finish",y),M()}function y(){m("onfinish"),t.removeListener("close",g),M()}function M(){m("unpipe"),r.unpipe(t)}return r.on("data",b),w(t,"error",v),t.once("close",g),t.once("finish",y),t.emit("pipe",r),o.flowing||(m("pipe resume"),r.resume()),t},_.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0||o>0){var f=new n;f.update(h),f.update(t),e&&f.update(e),h=f.digest();var l=0;if(a>0){var c=s.length-a;l=Math.min(a,h.length),h.copy(s,c,0,l),a-=l}if(l0){var d=u.length-o,p=Math.min(o,h.length-l);h.copy(u,d,l,l+p),o-=p}}return h.fill(0),{key:s,iv:u}}t.exports=o},ae93:function(t,e,r){"use strict";var i,n,o,a=r("e163"),s=r("9112"),u=r("5135"),h=r("b622"),f=r("c430"),l=h("iterator"),c=!1,d=function(){return this};[].keys&&(o=[].keys(),"next"in o?(n=a(a(o)),n!==Object.prototype&&(i=n)):c=!0),void 0==i&&(i={}),f||u(i,l)||s(i,l,d),t.exports={IteratorPrototype:i,BUGGY_SAFARI_ITERATORS:c}},af03:function(t,e,r){var i=r("d039");t.exports=function(t){return i((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}))}},b041:function(t,e,r){"use strict";var i=r("00ee"),n=r("f5df");t.exports=i?{}.toString:function(){return"[object "+n(this)+"]"}},b0c0:function(t,e,r){var i=r("83ab"),n=r("9bf2").f,o=Function.prototype,a=o.toString,s=/^\s*function ([^ (]*)/,u="name";i&&!(u in o)&&n(o,u,{configurable:!0,get:function(){try{return a.call(this).match(s)[1]}catch(t){return""}}})},b19a:function(t,e,r){"use strict";var i=r("966d"),n=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=l;var o=Object.create(r("3a7c"));o.inherits=r("3fb5");var a=r("ad71"),s=r("dc14");o.inherits(l,a);for(var u=n(s.prototype),h=0;h>>32-e}function m(t,e,r,i,n,o,a,s){return p(t+(e^r^i)+o+a|0,s)+n|0}function b(t,e,r,i,n,o,a,s){return p(t+(e&r|~e&i)+o+a|0,s)+n|0}function v(t,e,r,i,n,o,a,s){return p(t+((e|~r)^i)+o+a|0,s)+n|0}function g(t,e,r,i,n,o,a,s){return p(t+(e&i|r&~i)+o+a|0,s)+n|0}function y(t,e,r,i,n,o,a,s){return p(t+(e^(r|~i))+o+a|0,s)+n|0}n(d,o),d.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);for(var r=0|this._a,i=0|this._b,n=0|this._c,o=0|this._d,d=0|this._e,w=0|this._a,M=0|this._b,_=0|this._c,S=0|this._d,E=0|this._e,A=0;A<80;A+=1){var x,k;A<16?(x=m(r,i,n,o,d,t[s[A]],l[0],h[A]),k=y(w,M,_,S,E,t[u[A]],c[0],f[A])):A<32?(x=b(r,i,n,o,d,t[s[A]],l[1],h[A]),k=g(w,M,_,S,E,t[u[A]],c[1],f[A])):A<48?(x=v(r,i,n,o,d,t[s[A]],l[2],h[A]),k=v(w,M,_,S,E,t[u[A]],c[2],f[A])):A<64?(x=g(r,i,n,o,d,t[s[A]],l[3],h[A]),k=b(w,M,_,S,E,t[u[A]],c[3],f[A])):(x=y(r,i,n,o,d,t[s[A]],l[4],h[A]),k=m(w,M,_,S,E,t[u[A]],c[4],f[A])),r=d,d=o,o=p(n,10),n=i,i=x,w=E,E=S,S=p(_,10),_=M,M=k}var R=this._b+n+S|0;this._b=this._c+o+E|0,this._c=this._d+d+w|0,this._d=this._e+r+M|0,this._e=this._a+i+_|0,this._a=R},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=i.alloc?i.alloc(20):new i(20);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t.writeInt32LE(this._e,16),t},t.exports=d},b622:function(t,e,r){var i=r("da84"),n=r("5692"),o=r("5135"),a=r("90e3"),s=r("4930"),u=r("fdbf"),h=n("wks"),f=i.Symbol,l=u?f:f&&f.withoutSetter||a;t.exports=function(t){return o(h,t)||(s&&o(f,t)?h[t]=f[t]:h[t]=l("Symbol."+t)),h[t]}},b639:function(t,e,r){"use strict";(function(t){ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -var i=r("1fb5"),n=r("9152"),o=r("e3db");function a(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"===typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(e){return!1}}function s(){return h.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function u(t,e){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|t}function y(t){return+t!=t&&(t=0),h.alloc(+t)}function w(t,e){if(h.isBuffer(t))return t.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!==typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return G(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Q(t).length;default:if(i)return G(t).length;e=(""+e).toLowerCase(),i=!0}}function M(t,e,r){var i=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,e>>>=0,r<=e)return"";t||(t="utf8");while(1)switch(t){case"hex":return P(this,e,r);case"utf8":case"utf-8":return O(this,e,r);case"ascii":return N(this,e,r);case"latin1":case"binary":return B(this,e,r);case"base64":return I(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return j(this,e,r);default:if(i)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}function _(t,e,r){var i=t[e];t[e]=t[r],t[r]=i}function S(t,e,r,i,n){if(0===t.length)return-1;if("string"===typeof r?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=n?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(n)return-1;r=t.length-1}else if(r<0){if(!n)return-1;r=0}if("string"===typeof e&&(e=h.from(e,i)),h.isBuffer(e))return 0===e.length?-1:E(t,e,r,i,n);if("number"===typeof e)return e&=255,h.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):E(t,[e],r,i,n);throw new TypeError("val must be string, number or Buffer")}function E(t,e,r,i,n){var o,a=1,s=t.length,u=e.length;if(void 0!==i&&(i=String(i).toLowerCase(),"ucs2"===i||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,r/=2}function h(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(n){var f=-1;for(o=r;os&&(r=s-u),o=r;o>=0;o--){for(var l=!0,c=0;cn&&(i=n)):i=n;var o=e.length;if(o%2!==0)throw new TypeError("Invalid hex string");i>o/2&&(i=o/2);for(var a=0;a239?4:h>223?3:h>191?2:1;if(n+l<=r)switch(l){case 1:h<128&&(f=h);break;case 2:o=t[n+1],128===(192&o)&&(u=(31&h)<<6|63&o,u>127&&(f=u));break;case 3:o=t[n+1],a=t[n+2],128===(192&o)&&128===(192&a)&&(u=(15&h)<<12|(63&o)<<6|63&a,u>2047&&(u<55296||u>57343)&&(f=u));break;case 4:o=t[n+1],a=t[n+2],s=t[n+3],128===(192&o)&&128===(192&a)&&128===(192&s)&&(u=(15&h)<<18|(63&o)<<12|(63&a)<<6|63&s,u>65535&&u<1114112&&(f=u))}null===f?(f=65533,l=1):f>65535&&(f-=65536,i.push(f>>>10&1023|55296),f=56320|1023&f),i.push(f),n+=l}return L(i)}e.Buffer=h,e.SlowBuffer=y,e.INSPECT_MAX_BYTES=50,h.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:a(),e.kMaxLength=s(),h.poolSize=8192,h._augment=function(t){return t.__proto__=h.prototype,t},h.from=function(t,e,r){return f(null,t,e,r)},h.TYPED_ARRAY_SUPPORT&&(h.prototype.__proto__=Uint8Array.prototype,h.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&h[Symbol.species]===h&&Object.defineProperty(h,Symbol.species,{value:null,configurable:!0})),h.alloc=function(t,e,r){return c(null,t,e,r)},h.allocUnsafe=function(t){return d(null,t)},h.allocUnsafeSlow=function(t){return d(null,t)},h.isBuffer=function(t){return!(null==t||!t._isBuffer)},h.compare=function(t,e){if(!h.isBuffer(t)||!h.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,i=e.length,n=0,o=Math.min(r,i);n0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},h.prototype.compare=function(t,e,r,i,n){if(!h.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===i&&(i=0),void 0===n&&(n=this.length),e<0||r>t.length||i<0||n>this.length)throw new RangeError("out of range index");if(i>=n&&e>=r)return 0;if(i>=n)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,i>>>=0,n>>>=0,this===t)return 0;for(var o=n-i,a=r-e,s=Math.min(o,a),u=this.slice(i,n),f=t.slice(e,r),l=0;ln)&&(r=n),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return A(this,t,e,r);case"utf8":case"utf-8":return x(this,t,e,r);case"ascii":return k(this,t,e,r);case"latin1":case"binary":return R(this,t,e,r);case"base64":return $(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var C=4096;function L(t){var e=t.length;if(e<=C)return String.fromCharCode.apply(String,t);var r="",i=0;while(ii)&&(r=i);for(var n="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function q(t,e,r,i,n,o){if(!h.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>n||et.length)throw new RangeError("Index out of range")}function U(t,e,r,i){e<0&&(e=65535+e+1);for(var n=0,o=Math.min(t.length-r,2);n>>8*(i?n:1-n)}function F(t,e,r,i){e<0&&(e=4294967295+e+1);for(var n=0,o=Math.min(t.length-r,4);n>>8*(i?n:3-n)&255}function z(t,e,r,i,n,o){if(r+i>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function K(t,e,r,i,o){return o||z(t,e,r,4,34028234663852886e22,-34028234663852886e22),n.write(t,e,r,i,23,4),r+4}function W(t,e,r,i,o){return o||z(t,e,r,8,17976931348623157e292,-17976931348623157e292),n.write(t,e,r,i,52,8),r+8}h.prototype.slice=function(t,e){var r,i=this.length;if(t=~~t,e=void 0===e?i:~~e,t<0?(t+=i,t<0&&(t=0)):t>i&&(t=i),e<0?(e+=i,e<0&&(e=0)):e>i&&(e=i),e0&&(n*=256))i+=this[t+--e]*n;return i},h.prototype.readUInt8=function(t,e){return e||D(t,1,this.length),this[t]},h.prototype.readUInt16LE=function(t,e){return e||D(t,2,this.length),this[t]|this[t+1]<<8},h.prototype.readUInt16BE=function(t,e){return e||D(t,2,this.length),this[t]<<8|this[t+1]},h.prototype.readUInt32LE=function(t,e){return e||D(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},h.prototype.readUInt32BE=function(t,e){return e||D(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},h.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||D(t,e,this.length);var i=this[t],n=1,o=0;while(++o=n&&(i-=Math.pow(2,8*e)),i},h.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||D(t,e,this.length);var i=e,n=1,o=this[t+--i];while(i>0&&(n*=256))o+=this[t+--i]*n;return n*=128,o>=n&&(o-=Math.pow(2,8*e)),o},h.prototype.readInt8=function(t,e){return e||D(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},h.prototype.readInt16LE=function(t,e){e||D(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},h.prototype.readInt16BE=function(t,e){e||D(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},h.prototype.readInt32LE=function(t,e){return e||D(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},h.prototype.readInt32BE=function(t,e){return e||D(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},h.prototype.readFloatLE=function(t,e){return e||D(t,4,this.length),n.read(this,t,!0,23,4)},h.prototype.readFloatBE=function(t,e){return e||D(t,4,this.length),n.read(this,t,!1,23,4)},h.prototype.readDoubleLE=function(t,e){return e||D(t,8,this.length),n.read(this,t,!0,52,8)},h.prototype.readDoubleBE=function(t,e){return e||D(t,8,this.length),n.read(this,t,!1,52,8)},h.prototype.writeUIntLE=function(t,e,r,i){if(t=+t,e|=0,r|=0,!i){var n=Math.pow(2,8*r)-1;q(this,t,e,r,n,0)}var o=1,a=0;this[e]=255&t;while(++a=0&&(a*=256))this[e+o]=t/a&255;return e+r},h.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,1,255,0),h.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},h.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,2,65535,0),h.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):U(this,t,e,!0),e+2},h.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,2,65535,0),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):U(this,t,e,!1),e+2},h.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,4,4294967295,0),h.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):F(this,t,e,!0),e+4},h.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,4,4294967295,0),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},h.prototype.writeIntLE=function(t,e,r,i){if(t=+t,e|=0,!i){var n=Math.pow(2,8*r-1);q(this,t,e,r,n-1,-n)}var o=0,a=1,s=0;this[e]=255&t;while(++o>0)-s&255;return e+r},h.prototype.writeIntBE=function(t,e,r,i){if(t=+t,e|=0,!i){var n=Math.pow(2,8*r-1);q(this,t,e,r,n-1,-n)}var o=r-1,a=1,s=0;this[e+o]=255&t;while(--o>=0&&(a*=256))t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},h.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,1,127,-128),h.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},h.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,2,32767,-32768),h.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):U(this,t,e,!0),e+2},h.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,2,32767,-32768),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):U(this,t,e,!1),e+2},h.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,4,2147483647,-2147483648),h.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):F(this,t,e,!0),e+4},h.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||q(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),h.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},h.prototype.writeFloatLE=function(t,e,r){return K(this,t,e,!0,r)},h.prototype.writeFloatBE=function(t,e,r){return K(this,t,e,!1,r)},h.prototype.writeDoubleLE=function(t,e,r){return W(this,t,e,!0,r)},h.prototype.writeDoubleBE=function(t,e,r){return W(this,t,e,!1,r)},h.prototype.copy=function(t,e,r,i){if(r||(r=0),i||0===i||(i=this.length),e>=t.length&&(e=t.length),e||(e=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-e=0;--n)t[n+e]=this[n+r];else if(o<1e3||!h.TYPED_ARRAY_SUPPORT)for(n=0;n>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"===typeof t)for(o=e;o55295&&r<57344){if(!n){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===i){(e-=3)>-1&&o.push(239,191,189);continue}n=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),n=r;continue}r=65536+(n-55296<<10|r-56320)}else n&&(e-=3)>-1&&o.push(239,191,189);if(n=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function X(t){for(var e=[],r=0;r>8,n=r%256,o.push(n),o.push(i)}return o}function Q(t){return i.toByteArray(Z(t))}function tt(t,e,r,i){for(var n=0;n=e.length||n>=t.length)break;e[n+r]=t[n]}return n}function et(t){return t!==t}}).call(this,r("c8ba"))},b64b:function(t,e,r){var i=r("23e7"),n=r("7b0b"),o=r("df75"),a=r("d039"),s=a((function(){o(1)}));i({target:"Object",stat:!0,forced:s},{keys:function(t){return o(n(t))}})},b672:function(t,e,r){var i=r("8707").Buffer;function n(t,e){this._block=i.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}n.prototype.update=function(t,e){"string"===typeof t&&(e=e||"utf8",t=i.from(t,e));for(var r=this._block,n=this._blockSize,o=t.length,a=this._len,s=0;s=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var i=(4294967295&r)>>>0,n=(r-i)/4294967296;this._block.writeUInt32BE(n,this._blockSize-8),this._block.writeUInt32BE(i,this._blockSize-4)}this._update(this._block);var o=this._hash();return t?o.toString(t):o},n.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=n},b692:function(t,e,r){var i=r("39a9").Buffer,n=r("98e6"),o=r("34d5"),a=r("3fb5"),s=r("6fe7"),u=r("980c"),h=r("b4e8");function f(t){o.Writable.call(this);var e=h[t];if(!e)throw new Error("Unknown message digest");this._hashType=e.hash,this._hash=n(e.hash),this._tag=e.id,this._signType=e.sign}function l(t){o.Writable.call(this);var e=h[t];if(!e)throw new Error("Unknown message digest");this._hash=n(e.hash),this._tag=e.id,this._signType=e.sign}function c(t){return new f(t)}function d(t){return new l(t)}Object.keys(h).forEach((function(t){h[t].id=i.from(h[t].id,"hex"),h[t.toLowerCase()]=h[t]})),a(f,o.Writable),f.prototype._write=function(t,e,r){this._hash.update(t),r()},f.prototype.update=function(t,e){return"string"===typeof t&&(t=i.from(t,e)),this._hash.update(t),this},f.prototype.sign=function(t,e){this.end();var r=this._hash.digest(),i=s(r,t,this._hashType,this._signType,this._tag);return e?i.toString(e):i},a(l,o.Writable),l.prototype._write=function(t,e,r){this._hash.update(t),r()},l.prototype.update=function(t,e){return"string"===typeof t&&(t=i.from(t,e)),this._hash.update(t),this},l.prototype.verify=function(t,e,r){"string"===typeof e&&(e=i.from(e,r)),this.end();var n=this._hash.digest();return u(e,n,t,this._signType,this._tag)},t.exports={Sign:c,Verify:d,createSign:c,createVerify:d}},b727:function(t,e,r){var i=r("0366"),n=r("44ad"),o=r("7b0b"),a=r("50c4"),s=r("65f0"),u=[].push,h=function(t){var e=1==t,r=2==t,h=3==t,f=4==t,l=6==t,c=5==t||l;return function(d,p,m,b){for(var v,g,y=o(d),w=n(y),M=i(p,m,3),_=a(w.length),S=0,E=b||s,A=e?E(d,_):r?E(d,0):void 0;_>S;S++)if((c||S in w)&&(v=w[S],g=M(v,S,y),t))if(e)A[S]=g;else if(g)switch(t){case 3:return!0;case 5:return v;case 6:return S;case 2:u.call(A,v)}else if(f)return!1;return l?-1:h||f?f:A}};t.exports={forEach:h(0),map:h(1),filter:h(2),some:h(3),every:h(4),find:h(5),findIndex:h(6)}},b73f:function(t,e,r){"use strict";var i=r("80af"),n=r("f3a3"),o=n.assert;function a(t,e){if(t instanceof a)return t;this._importDER(t,e)||(o(t.r&&t.s,"Signature without r or s"),this.r=new i(t.r,16),this.s=new i(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}function s(){this.place=0}function u(t,e){var r=t[e.place++];if(!(128&r))return r;var i=15&r;if(0===i||i>4)return!1;for(var n=0,o=0,a=e.place;o>>=0;return!(n<=127)&&(e.place=a,n)}function h(t){var e=0,r=t.length-1;while(!t[e]&&!(128&t[e+1])&&e>>3);t.push(128|r);while(--r)t.push(e>>>(r<<3)&255);t.push(e)}}t.exports=a,a.prototype._importDER=function(t,e){t=n.toArray(t,e);var r=new s;if(48!==t[r.place++])return!1;var o=u(t,r);if(!1===o)return!1;if(o+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var a=u(t,r);if(!1===a)return!1;var h=t.slice(r.place,a+r.place);if(r.place+=a,2!==t[r.place++])return!1;var f=u(t,r);if(!1===f)return!1;if(t.length!==f+r.place)return!1;var l=t.slice(r.place,f+r.place);if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}return this.r=new i(h),this.s=new i(l),this.recoveryParam=null,!0},a.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=h(e),r=h(r);while(!r[0]&&!(128&r[1]))r=r.slice(1);var i=[2];f(i,e.length),i=i.concat(e),i.push(2),f(i,r.length);var o=i.concat(r),a=[48];return f(a,o.length),a=a.concat(o),n.encode(a,t)}},b7d1:function(t,e,r){(function(e){function r(t,e){if(i("noDeprecation"))return t;var r=!1;function n(){if(!r){if(i("throwDeprecation"))throw new Error(e);i("traceDeprecation")?console.trace(e):console.warn(e),r=!0}return t.apply(this,arguments)}return n}function i(t){try{if(!e.localStorage)return!1}catch(i){return!1}var r=e.localStorage[t];return null!=r&&"true"===String(r).toLowerCase()}t.exports=r}).call(this,r("c8ba"))},b837:function(t,e,r){var i=r("3fb5"),n=r("4fd1"),o=r("b672"),a=r("8707").Buffer,s=new Array(160);function u(){this.init(),this._w=s,o.call(this,128,112)}i(u,n),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var t=a.allocUnsafe(48);function e(e,r,i){t.writeInt32BE(e,i),t.writeInt32BE(r,i+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=u},b9a8:function(t,e,r){"use strict";var i=r("80af"),n=r("6aa2"),o=r("f3a3"),a=r("0cbb"),s=r("fdac"),u=o.assert,h=r("bb34"),f=r("b73f");function l(t){if(!(this instanceof l))return new l(t);"string"===typeof t&&(u(a.hasOwnProperty(t),"Unknown curve "+t),t=a[t]),t instanceof a.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}t.exports=l,l.prototype.keyPair=function(t){return new h(this,t)},l.prototype.keyFromPrivate=function(t,e){return h.fromPrivate(this,t,e)},l.prototype.keyFromPublic=function(t,e){return h.fromPublic(this,t,e)},l.prototype.genKeyPair=function(t){t||(t={});var e=new n({hash:this.hash,pers:t.pers,persEnc:t.persEnc||"utf8",entropy:t.entropy||s(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||"utf8",nonce:this.n.toArray()}),r=this.n.byteLength(),o=this.n.sub(new i(2));do{var a=new i(e.generate(r));if(!(a.cmp(o)>0))return a.iaddn(1),this.keyFromPrivate(a)}while(1)},l.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},l.prototype.sign=function(t,e,r,o){"object"===typeof r&&(o=r,r=null),o||(o={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new i(t,16));for(var a=this.n.byteLength(),s=e.getPrivate().toArray("be",a),u=t.toArray("be",a),h=new n({hash:this.hash,entropy:s,nonce:u,pers:o.pers,persEnc:o.persEnc||"utf8"}),l=this.n.sub(new i(1)),c=0;1;c++){var d=o.k?o.k(c):new i(h.generate(this.n.byteLength()));if(d=this._truncateToN(d,!0),!(d.cmpn(1)<=0||d.cmp(l)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var m=p.getX(),b=m.umod(this.n);if(0!==b.cmpn(0)){var v=d.invm(this.n).mul(b.mul(e.getPrivate()).iadd(t));if(v=v.umod(this.n),0!==v.cmpn(0)){var g=(p.getY().isOdd()?1:0)|(0!==m.cmp(b)?2:0);return o.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),g^=1),new f({r:b,s:v,recoveryParam:g})}}}}}},l.prototype.verify=function(t,e,r,n){t=this._truncateToN(new i(t,16)),r=this.keyFromPublic(r,n),e=new f(e,"hex");var o=e.r,a=e.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var s=a.invm(this.n),u=s.mul(t).umod(this.n),h=s.mul(o).umod(this.n);if(!this.curve._maxwellTrick){var l=this.g.mulAdd(u,r.getPublic(),h);return!l.isInfinity()&&0===l.getX().umod(this.n).cmp(o)}l=this.g.jmulAdd(u,r.getPublic(),h);return!l.isInfinity()&&l.eqXToP(o)},l.prototype.recoverPubKey=function(t,e,r,n){u((3&r)===r,"The recovery param is more than two bits"),e=new f(e,n);var o=this.n,a=new i(t),s=e.r,h=e.s,l=1&r,c=r>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&c)throw new Error("Unable to find sencond key candinate");s=c?this.curve.pointFromX(s.add(this.curve.n),l):this.curve.pointFromX(s,l);var d=e.r.invm(o),p=o.sub(a).mul(d).umod(o),m=h.mul(d).umod(o);return this.g.mulAdd(p,s,m)},l.prototype.getKeyRecoveryParam=function(t,e,r,i){if(e=new f(e,i),null!==e.recoveryParam)return e.recoveryParam;for(var n=0;n<4;n++){var o;try{o=this.recoverPubKey(t,e,n)}catch(t){continue}if(o.eq(r))return n}throw new Error("Unable to find valid recovery factor")}},b9b5:function(t,e,r){"use strict";var i=r("9d8a").codes.ERR_INVALID_OPT_VALUE;function n(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}function o(t,e,r,o){var a=n(e,o,r);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0){var s=o?r:"highWaterMark";throw new i(s,a)}return Math.floor(a)}return t.objectMode?16:16384}t.exports={getHighWaterMark:o}},bac2:function(t,e,r){var i={ECB:r("0145"),CBC:r("c119"),CFB:r("3505"),CFB8:r("62c9"),CFB1:r("5239"),OFB:r("5165"),CTR:r("6ade"),GCM:r("6ade")},n=r("e85f");for(var o in n)n[o].module=i[n[o].mode];t.exports=n},bb2f:function(t,e,r){var i=r("d039");t.exports=!i((function(){return Object.isExtensible(Object.preventExtensions({}))}))},bb34:function(t,e,r){"use strict";var i=r("80af"),n=r("f3a3"),o=n.assert;function a(t,e){this.ec=t,this.priv=null,this.pub=null,e.priv&&this._importPrivate(e.priv,e.privEnc),e.pub&&this._importPublic(e.pub,e.pubEnc)}t.exports=a,a.fromPublic=function(t,e,r){return e instanceof a?e:new a(t,{pub:e,pubEnc:r})},a.fromPrivate=function(t,e,r){return e instanceof a?e:new a(t,{priv:e,privEnc:r})},a.prototype.validate=function(){var t=this.getPublic();return t.isInfinity()?{result:!1,reason:"Invalid public key"}:t.validate()?t.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},a.prototype.getPublic=function(t,e){return"string"===typeof t&&(e=t,t=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),e?this.pub.encode(e,t):this.pub},a.prototype.getPrivate=function(t){return"hex"===t?this.priv.toString(16,2):this.priv},a.prototype._importPrivate=function(t,e){this.priv=new i(t,e||16),this.priv=this.priv.umod(this.ec.curve.n)},a.prototype._importPublic=function(t,e){if(t.x||t.y)return"mont"===this.ec.curve.type?o(t.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||o(t.x&&t.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(t.x,t.y));this.pub=this.ec.curve.decodePoint(t,e)},a.prototype.derive=function(t){return t.mul(this.priv).getX()},a.prototype.sign=function(t,e,r){return this.ec.sign(t,this,e,r)},a.prototype.verify=function(t,e){return this.ec.verify(t,e,this)},a.prototype.inspect=function(){return""}},bb44:function(t,e,r){"use strict";var i=r("c3c0"),n=r("edc9"),o=i.rotl32,a=i.sum32,s=i.sum32_3,u=i.sum32_4,h=n.BlockHash;function f(){if(!(this instanceof f))return new f;h.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function l(t,e,r,i){return t<=15?e^r^i:t<=31?e&r|~e&i:t<=47?(e|~r)^i:t<=63?e&i|r&~i:e^(r|~i)}function c(t){return t<=15?0:t<=31?1518500249:t<=47?1859775393:t<=63?2400959708:2840853838}function d(t){return t<=15?1352829926:t<=31?1548603684:t<=47?1836072691:t<=63?2053994217:0}i.inherits(f,h),e.ripemd160=f,f.blockSize=512,f.outSize=160,f.hmacStrength=192,f.padLength=64,f.prototype._update=function(t,e){for(var r=this.h[0],i=this.h[1],n=this.h[2],h=this.h[3],f=this.h[4],g=r,y=i,w=n,M=h,_=f,S=0;S<80;S++){var E=a(o(u(r,l(S,i,n,h),t[p[S]+e],c(S)),b[S]),f);r=f,f=h,h=o(n,10),n=i,i=E,E=a(o(u(g,l(79-S,y,w,M),t[m[S]+e],d(S)),v[S]),_),g=_,_=M,M=o(w,10),w=y,y=E}E=s(this.h[1],n,M),this.h[1]=s(this.h[2],h,_),this.h[2]=s(this.h[3],f,g),this.h[3]=s(this.h[4],r,y),this.h[4]=s(this.h[0],i,w),this.h[0]=E},f.prototype._digest=function(t){return"hex"===t?i.toHex32(this.h,"little"):i.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],b=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],v=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},bc12:function(t,e,r){(function(t){(function(t,e){"use strict";function i(t,e){if(!t)throw new Error(e||"Assertion failed")}function n(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function o(t,e,r){if(o.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&("le"!==e&&"be"!==e||(r=e,e=10),this._init(t||0,e||10,r||"be"))}var a;"object"===typeof t?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;try{a=r(12).Buffer}catch(x){}function s(t,e,r){for(var i=0,n=Math.min(t.length,r),o=e;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return i}function u(t,e,r,i){for(var n=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var n=0;"-"===t[0]&&n++,16===e?this._parseHex(t,n):this._parseBase(t,e,n),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(i("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)n=s(t,r,r+6),this.words[i]|=n<>>26-o&4194303,o+=24,o>=26&&(o-=26,i++);r+6!==e&&(n=s(t,e,r+6),this.words[i]|=n<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=e)i++;i--,n=n/e|0;for(var o=t.length-r,a=o%i,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>n}return e}function d(t,e,r){r.negative=e.negative^t.negative;var i=t.length+e.length|0;r.length=i,i=i-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;n=0|t.words[p],o=0|e.words[d],a=n*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,n+=2,n>=26&&(n-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,i=t):(r=t,i=this);for(var n=0,o=0;o>>26;for(;0!==n&&o>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,i,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=t):(r=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,b=0|a[2],v=8191&b,g=b>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],S=8191&_,E=_>>>13,A=0|a[5],x=8191&A,k=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,L=0|a[8],N=8191&L,B=L>>>13,P=0|a[9],j=8191&P,D=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],K=8191&z,W=z>>>13,H=0|s[2],Z=8191&H,Y=H>>>13,V=0|s[3],G=8191&V,X=V>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,it=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,i=Math.imul(l,U),n=Math.imul(l,F),n=n+Math.imul(c,U)|0,o=Math.imul(c,F);var bt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(p,U),n=Math.imul(p,F),n=n+Math.imul(m,U)|0,o=Math.imul(m,F),i=i+Math.imul(l,K)|0,n=n+Math.imul(l,W)|0,n=n+Math.imul(c,K)|0,o=o+Math.imul(c,W)|0;var vt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,U),n=Math.imul(v,F),n=n+Math.imul(g,U)|0,o=Math.imul(g,F),i=i+Math.imul(p,K)|0,n=n+Math.imul(p,W)|0,n=n+Math.imul(m,K)|0,o=o+Math.imul(m,W)|0,i=i+Math.imul(l,Z)|0,n=n+Math.imul(l,Y)|0,n=n+Math.imul(c,Z)|0,o=o+Math.imul(c,Y)|0;var gt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,i=Math.imul(w,U),n=Math.imul(w,F),n=n+Math.imul(M,U)|0,o=Math.imul(M,F),i=i+Math.imul(v,K)|0,n=n+Math.imul(v,W)|0,n=n+Math.imul(g,K)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(p,Z)|0,n=n+Math.imul(p,Y)|0,n=n+Math.imul(m,Z)|0,o=o+Math.imul(m,Y)|0,i=i+Math.imul(l,G)|0,n=n+Math.imul(l,X)|0,n=n+Math.imul(c,G)|0,o=o+Math.imul(c,X)|0;var yt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(S,U),n=Math.imul(S,F),n=n+Math.imul(E,U)|0,o=Math.imul(E,F),i=i+Math.imul(w,K)|0,n=n+Math.imul(w,W)|0,n=n+Math.imul(M,K)|0,o=o+Math.imul(M,W)|0,i=i+Math.imul(v,Z)|0,n=n+Math.imul(v,Y)|0,n=n+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(p,G)|0,n=n+Math.imul(p,X)|0,n=n+Math.imul(m,G)|0,o=o+Math.imul(m,X)|0,i=i+Math.imul(l,Q)|0,n=n+Math.imul(l,tt)|0,n=n+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(x,U),n=Math.imul(x,F),n=n+Math.imul(k,U)|0,o=Math.imul(k,F),i=i+Math.imul(S,K)|0,n=n+Math.imul(S,W)|0,n=n+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,i=i+Math.imul(w,Z)|0,n=n+Math.imul(w,Y)|0,n=n+Math.imul(M,Z)|0,o=o+Math.imul(M,Y)|0,i=i+Math.imul(v,G)|0,n=n+Math.imul(v,X)|0,n=n+Math.imul(g,G)|0,o=o+Math.imul(g,X)|0,i=i+Math.imul(p,Q)|0,n=n+Math.imul(p,tt)|0,n=n+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,i=i+Math.imul(l,rt)|0,n=n+Math.imul(l,it)|0,n=n+Math.imul(c,rt)|0,o=o+Math.imul(c,it)|0;var Mt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul($,U),n=Math.imul($,F),n=n+Math.imul(T,U)|0,o=Math.imul(T,F),i=i+Math.imul(x,K)|0,n=n+Math.imul(x,W)|0,n=n+Math.imul(k,K)|0,o=o+Math.imul(k,W)|0,i=i+Math.imul(S,Z)|0,n=n+Math.imul(S,Y)|0,n=n+Math.imul(E,Z)|0,o=o+Math.imul(E,Y)|0,i=i+Math.imul(w,G)|0,n=n+Math.imul(w,X)|0,n=n+Math.imul(M,G)|0,o=o+Math.imul(M,X)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(v,tt)|0,n=n+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(p,rt)|0,n=n+Math.imul(p,it)|0,n=n+Math.imul(m,rt)|0,o=o+Math.imul(m,it)|0,i=i+Math.imul(l,ot)|0,n=n+Math.imul(l,at)|0,n=n+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(O,U),n=Math.imul(O,F),n=n+Math.imul(C,U)|0,o=Math.imul(C,F),i=i+Math.imul($,K)|0,n=n+Math.imul($,W)|0,n=n+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,i=i+Math.imul(x,Z)|0,n=n+Math.imul(x,Y)|0,n=n+Math.imul(k,Z)|0,o=o+Math.imul(k,Y)|0,i=i+Math.imul(S,G)|0,n=n+Math.imul(S,X)|0,n=n+Math.imul(E,G)|0,o=o+Math.imul(E,X)|0,i=i+Math.imul(w,Q)|0,n=n+Math.imul(w,tt)|0,n=n+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,i=i+Math.imul(v,rt)|0,n=n+Math.imul(v,it)|0,n=n+Math.imul(g,rt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(p,ot)|0,n=n+Math.imul(p,at)|0,n=n+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,i=i+Math.imul(l,ut)|0,n=n+Math.imul(l,ht)|0,n=n+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var St=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(N,U),n=Math.imul(N,F),n=n+Math.imul(B,U)|0,o=Math.imul(B,F),i=i+Math.imul(O,K)|0,n=n+Math.imul(O,W)|0,n=n+Math.imul(C,K)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul($,Z)|0,n=n+Math.imul($,Y)|0,n=n+Math.imul(T,Z)|0,o=o+Math.imul(T,Y)|0,i=i+Math.imul(x,G)|0,n=n+Math.imul(x,X)|0,n=n+Math.imul(k,G)|0,o=o+Math.imul(k,X)|0,i=i+Math.imul(S,Q)|0,n=n+Math.imul(S,tt)|0,n=n+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,i=i+Math.imul(w,rt)|0,n=n+Math.imul(w,it)|0,n=n+Math.imul(M,rt)|0,o=o+Math.imul(M,it)|0,i=i+Math.imul(v,ot)|0,n=n+Math.imul(v,at)|0,n=n+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(p,ut)|0,n=n+Math.imul(p,ht)|0,n=n+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,i=i+Math.imul(l,lt)|0,n=n+Math.imul(l,ct)|0,n=n+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var Et=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(j,U),n=Math.imul(j,F),n=n+Math.imul(D,U)|0,o=Math.imul(D,F),i=i+Math.imul(N,K)|0,n=n+Math.imul(N,W)|0,n=n+Math.imul(B,K)|0,o=o+Math.imul(B,W)|0,i=i+Math.imul(O,Z)|0,n=n+Math.imul(O,Y)|0,n=n+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul($,G)|0,n=n+Math.imul($,X)|0,n=n+Math.imul(T,G)|0,o=o+Math.imul(T,X)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(x,tt)|0,n=n+Math.imul(k,Q)|0,o=o+Math.imul(k,tt)|0,i=i+Math.imul(S,rt)|0,n=n+Math.imul(S,it)|0,n=n+Math.imul(E,rt)|0,o=o+Math.imul(E,it)|0,i=i+Math.imul(w,ot)|0,n=n+Math.imul(w,at)|0,n=n+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,i=i+Math.imul(v,ut)|0,n=n+Math.imul(v,ht)|0,n=n+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,i=i+Math.imul(p,lt)|0,n=n+Math.imul(p,ct)|0,n=n+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,i=i+Math.imul(l,pt)|0,n=n+Math.imul(l,mt)|0,n=n+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(j,K),n=Math.imul(j,W),n=n+Math.imul(D,K)|0,o=Math.imul(D,W),i=i+Math.imul(N,Z)|0,n=n+Math.imul(N,Y)|0,n=n+Math.imul(B,Z)|0,o=o+Math.imul(B,Y)|0,i=i+Math.imul(O,G)|0,n=n+Math.imul(O,X)|0,n=n+Math.imul(C,G)|0,o=o+Math.imul(C,X)|0,i=i+Math.imul($,Q)|0,n=n+Math.imul($,tt)|0,n=n+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,i=i+Math.imul(x,rt)|0,n=n+Math.imul(x,it)|0,n=n+Math.imul(k,rt)|0,o=o+Math.imul(k,it)|0,i=i+Math.imul(S,ot)|0,n=n+Math.imul(S,at)|0,n=n+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,i=i+Math.imul(w,ut)|0,n=n+Math.imul(w,ht)|0,n=n+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,i=i+Math.imul(v,lt)|0,n=n+Math.imul(v,ct)|0,n=n+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,i=i+Math.imul(p,pt)|0,n=n+Math.imul(p,mt)|0,n=n+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var xt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(j,Z),n=Math.imul(j,Y),n=n+Math.imul(D,Z)|0,o=Math.imul(D,Y),i=i+Math.imul(N,G)|0,n=n+Math.imul(N,X)|0,n=n+Math.imul(B,G)|0,o=o+Math.imul(B,X)|0,i=i+Math.imul(O,Q)|0,n=n+Math.imul(O,tt)|0,n=n+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul($,rt)|0,n=n+Math.imul($,it)|0,n=n+Math.imul(T,rt)|0,o=o+Math.imul(T,it)|0,i=i+Math.imul(x,ot)|0,n=n+Math.imul(x,at)|0,n=n+Math.imul(k,ot)|0,o=o+Math.imul(k,at)|0,i=i+Math.imul(S,ut)|0,n=n+Math.imul(S,ht)|0,n=n+Math.imul(E,ut)|0,o=o+Math.imul(E,ht)|0,i=i+Math.imul(w,lt)|0,n=n+Math.imul(w,ct)|0,n=n+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,i=i+Math.imul(v,pt)|0,n=n+Math.imul(v,mt)|0,n=n+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var kt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(j,G),n=Math.imul(j,X),n=n+Math.imul(D,G)|0,o=Math.imul(D,X),i=i+Math.imul(N,Q)|0,n=n+Math.imul(N,tt)|0,n=n+Math.imul(B,Q)|0,o=o+Math.imul(B,tt)|0,i=i+Math.imul(O,rt)|0,n=n+Math.imul(O,it)|0,n=n+Math.imul(C,rt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul($,ot)|0,n=n+Math.imul($,at)|0,n=n+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,i=i+Math.imul(x,ut)|0,n=n+Math.imul(x,ht)|0,n=n+Math.imul(k,ut)|0,o=o+Math.imul(k,ht)|0,i=i+Math.imul(S,lt)|0,n=n+Math.imul(S,ct)|0,n=n+Math.imul(E,lt)|0,o=o+Math.imul(E,ct)|0,i=i+Math.imul(w,pt)|0,n=n+Math.imul(w,mt)|0,n=n+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,i=Math.imul(j,Q),n=Math.imul(j,tt),n=n+Math.imul(D,Q)|0,o=Math.imul(D,tt),i=i+Math.imul(N,rt)|0,n=n+Math.imul(N,it)|0,n=n+Math.imul(B,rt)|0,o=o+Math.imul(B,it)|0,i=i+Math.imul(O,ot)|0,n=n+Math.imul(O,at)|0,n=n+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul($,ut)|0,n=n+Math.imul($,ht)|0,n=n+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,i=i+Math.imul(x,lt)|0,n=n+Math.imul(x,ct)|0,n=n+Math.imul(k,lt)|0,o=o+Math.imul(k,ct)|0,i=i+Math.imul(S,pt)|0,n=n+Math.imul(S,mt)|0,n=n+Math.imul(E,pt)|0,o=o+Math.imul(E,mt)|0;var $t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+($t>>>26)|0,$t&=67108863,i=Math.imul(j,rt),n=Math.imul(j,it),n=n+Math.imul(D,rt)|0,o=Math.imul(D,it),i=i+Math.imul(N,ot)|0,n=n+Math.imul(N,at)|0,n=n+Math.imul(B,ot)|0,o=o+Math.imul(B,at)|0,i=i+Math.imul(O,ut)|0,n=n+Math.imul(O,ht)|0,n=n+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,i=i+Math.imul($,lt)|0,n=n+Math.imul($,ct)|0,n=n+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,i=i+Math.imul(x,pt)|0,n=n+Math.imul(x,mt)|0,n=n+Math.imul(k,pt)|0,o=o+Math.imul(k,mt)|0;var Tt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(j,ot),n=Math.imul(j,at),n=n+Math.imul(D,ot)|0,o=Math.imul(D,at),i=i+Math.imul(N,ut)|0,n=n+Math.imul(N,ht)|0,n=n+Math.imul(B,ut)|0,o=o+Math.imul(B,ht)|0,i=i+Math.imul(O,lt)|0,n=n+Math.imul(O,ct)|0,n=n+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,i=i+Math.imul($,pt)|0,n=n+Math.imul($,mt)|0,n=n+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(j,ut),n=Math.imul(j,ht),n=n+Math.imul(D,ut)|0,o=Math.imul(D,ht),i=i+Math.imul(N,lt)|0,n=n+Math.imul(N,ct)|0,n=n+Math.imul(B,lt)|0,o=o+Math.imul(B,ct)|0,i=i+Math.imul(O,pt)|0,n=n+Math.imul(O,mt)|0,n=n+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(j,lt),n=Math.imul(j,ct),n=n+Math.imul(D,lt)|0,o=Math.imul(D,ct),i=i+Math.imul(N,pt)|0,n=n+Math.imul(N,mt)|0,n=n+Math.imul(B,pt)|0,o=o+Math.imul(B,mt)|0;var Ct=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(j,pt),n=Math.imul(j,mt),n=n+Math.imul(D,pt)|0,o=Math.imul(D,mt);var Lt=(h+i|0)+((8191&n)<<13)|0;return h=(o+(n>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,u[0]=bt,u[1]=vt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=St,u[8]=Et,u[9]=At,u[10]=xt,u[11]=kt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Lt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var i=0,n=0,o=0;o>>26)|0,n+=a>>>26,a&=67108863}r.words[o]=s,i=a,a=n}return 0!==i?r.words[o]=i:r.length--,r.strip()}function b(t,e,r){var i=new v;return i.mulp(t,e,r)}function v(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,i=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):i<63?d(this,t,e):i<1024?m(this,t,e):b(this,t,e),r},v.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,i=0;i>=1;return i},v.prototype.permute=function(t,e,r,i,n,o){for(var a=0;a>>=1)n++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,i=0;i=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=n);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,i=this.clone(),n=t,a=0|n.words[n.length-1],s=this._countBits(a);r=26-s,0!==r&&(n=n.ushln(r),i.iushln(r),a=0|n.words[n.length-1]);var u,h=i.length-n.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|i.words[n.length+c])+(0|i.words[n.length+c-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(n,d,c);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(n,1,c),i.isZero()||(i.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==r&&i.iushrn(r),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),n=t.andln(1),o=r.cmp(i);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(n.isOdd()||a.isOdd())&&(n.iadd(f),a.isub(l)),n.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),n.isub(s),a.isub(u)):(r.isub(e),s.isub(n),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return n=0===e.cmpn(1)?a:s,n.cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var i=0;e.isEven()&&r.isEven();i++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var n=e.cmp(r);if(n<0){var o=e;e=r,r=o}else if(0===n||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var i=0|this.words[r],n=0|t.words[r];if(i!==n){in&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new E(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){E.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var i=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(w,y),w.prototype.split=function(t,e){for(var r=4194303,i=Math.min(t.length,9),n=0;n>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=n,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return g[t]=e,e},E.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},E.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},E.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},E.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},E.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},E.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},E.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},E.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},E.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},E.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},E.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},E.prototype.isqr=function(t){return this.imul(t,t.clone())},E.prototype.sqr=function(t){return this.mul(t,t)},E.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var n=this.m.subn(1),a=0;while(!n.isZero()&&0===n.andln(1))a++,n.iushrn(1);i(!n.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,n),c=this.pow(t,n.addn(1).iushrn(1)),d=this.pow(t,n),p=a;while(0!==d.cmp(s)){for(var m=d,b=0;0!==m.cmp(s);b++)m=m.redSqr();i(b=0;n--){for(var f=e.words[n],l=h-1;l>=0;l--){var c=f>>l&1;a!==i[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===n&&0===l)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}h=26}return a},E.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},E.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},n(A,E),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},bd9d:function(t,e){function r(t){var e,r=t.length;while(r--){if(e=t.readUInt8(r),255!==e){e++,t.writeUInt8(e,r);break}t.writeUInt8(0,r)}}t.exports=r},c04e:function(t,e,r){var i=r("861d");t.exports=function(t,e){if(!i(t))return t;var r,n;if(e&&"function"==typeof(r=t.toString)&&!i(n=r.call(t)))return n;if("function"==typeof(r=t.valueOf)&&!i(n=r.call(t)))return n;if(!e&&"function"==typeof(r=t.toString)&&!i(n=r.call(t)))return n;throw TypeError("Can't convert object to primitive value")}},c119:function(t,e,r){var i=r("8c8a");e.encrypt=function(t,e){var r=i(e,t._prev);return t._prev=t._cipher.encryptBlock(r),t._prev},e.decrypt=function(t,e){var r=t._prev;t._prev=e;var n=t._cipher.decryptBlock(e);return i(n,r)}},c1ac:function(t,e,r){"use strict";var i=r("ebb5"),n=r("b727").filter,o=r("4840"),a=i.aTypedArray,s=i.aTypedArrayConstructor,u=i.exportTypedArrayMethod;u("filter",(function(t){var e=n(a(this),t,arguments.length>1?arguments[1]:void 0),r=o(this,this.constructor),i=0,u=e.length,h=new(s(r))(u);while(u>i)h[i]=e[i++];return h}))},c24d:function(t){t.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},c2ae:function(t,e,r){t.exports=r("e372").PassThrough},c3c0:function(t,e,r){"use strict";var i=r("da3e"),n=r("3fb5");function o(t,e){return 55296===(64512&t.charCodeAt(e))&&(!(e<0||e+1>=t.length)&&56320===(64512&t.charCodeAt(e+1)))}function a(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if("string"===typeof t)if(e){if("hex"===e)for(t=t.replace(/[^a-z0-9]+/gi,""),t.length%2!==0&&(t="0"+t),n=0;n>6|192,r[i++]=63&a|128):o(t,n)?(a=65536+((1023&a)<<10)+(1023&t.charCodeAt(++n)),r[i++]=a>>18|240,r[i++]=a>>12&63|128,r[i++]=a>>6&63|128,r[i++]=63&a|128):(r[i++]=a>>12|224,r[i++]=a>>6&63|128,r[i++]=63&a|128)}else for(n=0;n>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24;return e>>>0}function h(t,e){for(var r="",i=0;i>>0}return a}function d(t,e){for(var r=new Array(4*t.length),i=0,n=0;i>>24,r[n+1]=o>>>16&255,r[n+2]=o>>>8&255,r[n+3]=255&o):(r[n+3]=o>>>24,r[n+2]=o>>>16&255,r[n+1]=o>>>8&255,r[n]=255&o)}return r}function p(t,e){return t>>>e|t<<32-e}function m(t,e){return t<>>32-e}function b(t,e){return t+e>>>0}function v(t,e,r){return t+e+r>>>0}function g(t,e,r,i){return t+e+r+i>>>0}function y(t,e,r,i,n){return t+e+r+i+n>>>0}function w(t,e,r,i){var n=t[e],o=t[e+1],a=i+o>>>0,s=(a>>0,t[e+1]=a}function M(t,e,r,i){var n=e+i>>>0,o=(n>>0}function _(t,e,r,i){var n=e+i;return n>>>0}function S(t,e,r,i,n,o,a,s){var u=0,h=e;h=h+i>>>0,u+=h>>0,u+=h>>0,u+=h>>0}function E(t,e,r,i,n,o,a,s){var u=e+i+o+s;return u>>>0}function A(t,e,r,i,n,o,a,s,u,h){var f=0,l=e;l=l+i>>>0,f+=l>>0,f+=l>>0,f+=l>>0,f+=l>>0}function x(t,e,r,i,n,o,a,s,u,h){var f=e+i+o+s+h;return f>>>0}function k(t,e,r){var i=e<<32-r|t>>>r;return i>>>0}function R(t,e,r){var i=t<<32-r|e>>>r;return i>>>0}function $(t,e,r){return t>>>r}function T(t,e,r){var i=t<<32-r|e>>>r;return i>>>0}e.inherits=n,e.toArray=a,e.toHex=s,e.htonl=u,e.toHex32=h,e.zero2=f,e.zero8=l,e.join32=c,e.split32=d,e.rotr32=p,e.rotl32=m,e.sum32=b,e.sum32_3=v,e.sum32_4=g,e.sum32_5=y,e.sum64=w,e.sum64_hi=M,e.sum64_lo=_,e.sum64_4_hi=S,e.sum64_4_lo=E,e.sum64_5_hi=A,e.sum64_5_lo=x,e.rotr64_hi=k,e.rotr64_lo=R,e.shr64_hi=$,e.shr64_lo=T},c430:function(t,e){t.exports=!1},c6b6:function(t,e){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},c6cd:function(t,e,r){var i=r("da84"),n=r("ce4e"),o="__core-js_shared__",a=i[o]||n(o,{});t.exports=a},c8ba:function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(i){"object"===typeof window&&(r=window)}t.exports=r},ca84:function(t,e,r){var i=r("5135"),n=r("fc6a"),o=r("4d64").indexOf,a=r("d012");t.exports=function(t,e){var r,s=n(t),u=0,h=[];for(r in s)!i(a,r)&&i(s,r)&&h.push(r);while(e.length>u)i(s,r=e[u++])&&(~o(h,r)||h.push(r));return h}},ca91:function(t,e,r){"use strict";var i=r("ebb5"),n=r("d58f").left,o=i.aTypedArray,a=i.exportTypedArrayMethod;a("reduce",(function(t){return n(o(this),t,arguments.length,arguments.length>1?arguments[1]:void 0)}))},caad:function(t,e,r){"use strict";var i=r("23e7"),n=r("4d64").includes,o=r("44d2"),a=r("ae40"),s=a("indexOf",{ACCESSORS:!0,1:0});i({target:"Array",proto:!0,forced:!s},{includes:function(t){return n(this,t,arguments.length>1?arguments[1]:void 0)}}),o("includes")},cc12:function(t,e,r){var i=r("da84"),n=r("861d"),o=i.document,a=n(o)&&n(o.createElement);t.exports=function(t){return a?o.createElement(t):{}}},cd26:function(t,e,r){"use strict";var i=r("ebb5"),n=i.aTypedArray,o=i.exportTypedArrayMethod,a=Math.floor;o("reverse",(function(){var t,e=this,r=n(e).length,i=a(r/2),o=0;while(o0)if("string"===typeof e||a.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=h(e)),i)a.endEmitted?A(t,new E):I(t,a,e,!0);else if(a.ended)A(t,new _);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(e=a.decoder.write(e),a.objectMode||0!==e.length?I(t,a,e,!1):D(t,a)):I(t,a,e,!1)}else i||(a.reading=!1,D(t,a));return!a.ended&&(a.length=C?t=C:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function N(t,e){return t<=0||0===e.length&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=L(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function B(t,e){if(l("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?P(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,j(t)))}}function P(t){var e=t._readableState;l("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(l("emitReadable",e.flowing),e.emittedReadable=!0,i.nextTick(j,t))}function j(t){var e=t._readableState;l("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,H(t)}function D(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(q,t,e))}function q(t,e){while(!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function z(t){l("readable nexttick read 0"),t.read(0)}function K(t,e){e.resumeScheduled||(e.resumeScheduled=!0,i.nextTick(W,t,e))}function W(t,e){l("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),H(t),e.flowing&&!e.reading&&t.read(0)}function H(t){var e=t._readableState;l("flow",e.flowing);while(e.flowing&&null!==t.read());}function Z(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function Y(t){var e=t._readableState;l("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,i.nextTick(V,e,t))}function V(t,e){if(l("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function G(t,e){for(var r=0,i=t.length;r=e.highWaterMark:e.length>0)||e.ended))return l("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?Y(this):P(this),null;if(t=N(t,e),0===t&&e.ended)return 0===e.length&&Y(this),null;var i,n=e.needReadable;return l("need readable",n),(0===e.length||e.length-t0?Z(t,e):null,null===i?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&Y(this)),null!==i&&this.emit("data",i),i},$.prototype._read=function(t){A(this,new S("_read()"))},$.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t);break}n.pipesCount+=1,l("pipe count=%d opts=%j",n.pipesCount,e);var a=(!e||!1!==e.end)&&t!==i.stdout&&t!==i.stderr,s=a?h:g;function u(t,e){l("onunpipe"),t===r&&e&&!1===e.hasUnpiped&&(e.hasUnpiped=!0,d())}function h(){l("onend"),t.end()}n.endEmitted?i.nextTick(s):r.once("end",s),t.on("unpipe",u);var f=U(r);t.on("drain",f);var c=!1;function d(){l("cleanup"),t.removeListener("close",b),t.removeListener("finish",v),t.removeListener("drain",f),t.removeListener("error",m),t.removeListener("unpipe",u),r.removeListener("end",h),r.removeListener("end",g),r.removeListener("data",p),c=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||f()}function p(e){l("ondata");var i=t.write(e);l("dest.write",i),!1===i&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==G(n.pipes,t))&&!c&&(l("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function m(e){l("onerror",e),g(),t.removeListener("error",m),0===o(t,"error")&&A(t,e)}function b(){t.removeListener("finish",v),g()}function v(){l("onfinish"),t.removeListener("close",b),g()}function g(){l("unpipe"),r.unpipe(t)}return r.on("data",p),k(t,"error",m),t.once("close",b),t.once("finish",v),t.emit("pipe",r),n.flowing||(l("pipe resume"),r.resume()),t},$.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,l("on readable",n.length,n.reading),n.length?P(this):n.reading||i.nextTick(z,this))),r},$.prototype.addListener=$.prototype.on,$.prototype.removeListener=function(t,e){var r=a.prototype.removeListener.call(this,t,e);return"readable"===t&&i.nextTick(F,this),r},$.prototype.removeAllListeners=function(t){var e=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||i.nextTick(F,this),e},$.prototype.resume=function(){var t=this._readableState;return t.flowing||(l("resume"),t.flowing=!t.readableListening,K(this,t)),t.paused=!1,this},$.prototype.pause=function(){return l("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(l("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},$.prototype.wrap=function(t){var e=this,r=this._readableState,i=!1;for(var n in t.on("end",(function(){if(l("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(n){if(l("wrapped data"),r.decoder&&(n=r.decoder.write(n)),(!r.objectMode||null!==n&&void 0!==n)&&(r.objectMode||n&&n.length)){var o=e.push(n);o||(i=!0,t.pause())}})),t)void 0===this[n]&&"function"===typeof t[n]&&(this[n]=function(e){return function(){return t[e].apply(t,arguments)}}(n));for(var o=0;o>6],n=0===(32&r);if(31===(31&r)){var o=r;r=0;while(128===(128&o)){if(o=t.readUInt8(e),t.isError(o))return o;r<<=7,r|=127&o}}else r&=31;var a=s.tag[r];return{cls:i,primitive:n,tag:r,tagStr:a}}function l(t,e,r){var i=t.readUInt8(r);if(t.isError(i))return i;if(!e&&128===i)return null;if(0===(128&i))return i;var n=127&i;if(n>4)return t.error("length octect is too long");i=0;for(var o=0;o=49&&a<=54?a-49+10:a>=17&&a<=22?a-17+10:15&a}return i}function u(t,e,r,i){for(var n=0,o=Math.min(t.length,r),a=e;a=49?s-49+10:s>=17?s-17+10:s}return n}o.isBN=function(t){return t instanceof o||null!==t&&"object"===typeof t&&t.constructor.wordSize===o.wordSize&&Array.isArray(t.words)},o.max=function(t,e){return t.cmp(e)>0?t:e},o.min=function(t,e){return t.cmp(e)<0?t:e},o.prototype._init=function(t,e,r){if("number"===typeof t)return this._initNumber(t,e,r);if("object"===typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),i(e===(0|e)&&e>=2&&e<=36),t=t.toString().replace(/\s+/g,"");var n=0;"-"===t[0]&&n++,16===e?this._parseHex(t,n):this._parseBase(t,e,n),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(i(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},o.prototype._initArray=function(t,e,r){if(i("number"===typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var n=0;n=0;n-=3)a=t[n]|t[n-1]<<8|t[n-2]<<16,this.words[o]|=a<>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);else if("le"===r)for(n=0,o=0;n>>26-s&67108863,s+=24,s>=26&&(s-=26,o++);return this.strip()},o.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)n=s(t,r,r+6),this.words[i]|=n<>>26-o&4194303,o+=24,o>=26&&(o-=26,i++);r+6!==e&&(n=s(t,e,r+6),this.words[i]|=n<>>26-o&4194303),this.strip()},o.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var i=0,n=1;n<=67108863;n*=e)i++;i--,n=n/e|0;for(var o=t.length-r,a=o%i,s=Math.min(o,o-a)+r,h=0,f=r;f1&&0===this.words[this.length-1])this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function c(t){for(var e=new Array(t.bitLength()),r=0;r>>n}return e}function d(t,e,r){r.negative=e.negative^t.negative;var i=t.length+e.length|0;r.length=i,i=i-1|0;var n=0|t.words[0],o=0|e.words[0],a=n*o,s=67108863&a,u=a/67108864|0;r.words[0]=s;for(var h=1;h>>26,l=67108863&u,c=Math.min(h,e.length-1),d=Math.max(0,h-t.length+1);d<=c;d++){var p=h-d|0;n=0|t.words[p],o=0|e.words[d],a=n*o+l,f+=a/67108864|0,l=67108863&a}r.words[h]=0|l,u=0|f}return 0!==u?r.words[h]=0|u:r.length--,r.strip()}o.prototype.toString=function(t,e){var r;if(t=t||10,e=0|e||1,16===t||"hex"===t){r="";for(var n=0,o=0,a=0;a>>24-n&16777215,r=0!==o||a!==this.length-1?h[6-u.length]+u+r:u+r,n+=2,n>=26&&(n-=26,a--)}0!==o&&(r=o.toString(16)+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var c=f[t],d=l[t];r="";var p=this.clone();p.negative=0;while(!p.isZero()){var m=p.modn(d).toString(t);p=p.idivn(d),r=p.isZero()?m+r:h[c-m.length]+m+r}this.isZero()&&(r="0"+r);while(r.length%e!==0)r="0"+r;return 0!==this.negative&&(r="-"+r),r}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(t,e){return i("undefined"!==typeof a),this.toArrayLike(a,t,e)},o.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},o.prototype.toArrayLike=function(t,e,r){var n=this.byteLength(),o=r||Math.max(1,n);i(n<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var a,s,u="le"===e,h=new t(o),f=this.clone();if(u){for(s=0;!f.isZero();s++)a=f.andln(255),f.iushrn(8),h[s]=a;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},o.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0===(8191&e)&&(r+=13,e>>>=13),0===(127&e)&&(r+=7,e>>>=7),0===(15&e)&&(r+=4,e>>>=4),0===(3&e)&&(r+=2,e>>>=2),0===(1&e)&&r++,r},o.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},o.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},o.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},o.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},o.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var i=0;it.length?this.clone().ixor(t):t.clone().ixor(this)},o.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},o.prototype.inotn=function(t){i("number"===typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var n=0;n0&&(this.words[n]=~this.words[n]&67108863>>26-r),this.strip()},o.prototype.notn=function(t){return this.clone().inotn(t)},o.prototype.setn=function(t,e){i("number"===typeof t&&t>=0);var r=t/26|0,n=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,i=t):(r=t,i=this);for(var n=0,o=0;o>>26;for(;0!==n&&o>>26;if(this.length=r.length,0!==n)this.words[this.length]=n,this.length++;else if(r!==this)for(;ot.length?this.clone().iadd(t):t.clone().iadd(this)},o.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,i,n=this.cmp(t);if(0===n)return this.negative=0,this.length=1,this.words[0]=0,this;n>0?(r=this,i=t):(r=t,i=this);for(var o=0,a=0;a>26,this.words[a]=67108863&e;for(;0!==o&&a>26,this.words[a]=67108863&e;if(0===o&&a>>13,d=0|a[1],p=8191&d,m=d>>>13,b=0|a[2],v=8191&b,g=b>>>13,y=0|a[3],w=8191&y,M=y>>>13,_=0|a[4],S=8191&_,E=_>>>13,A=0|a[5],x=8191&A,k=A>>>13,R=0|a[6],$=8191&R,T=R>>>13,I=0|a[7],O=8191&I,C=I>>>13,L=0|a[8],N=8191&L,B=L>>>13,P=0|a[9],j=8191&P,D=P>>>13,q=0|s[0],U=8191&q,F=q>>>13,z=0|s[1],K=8191&z,W=z>>>13,H=0|s[2],Z=8191&H,Y=H>>>13,V=0|s[3],G=8191&V,X=V>>>13,J=0|s[4],Q=8191&J,tt=J>>>13,et=0|s[5],rt=8191&et,it=et>>>13,nt=0|s[6],ot=8191&nt,at=nt>>>13,st=0|s[7],ut=8191&st,ht=st>>>13,ft=0|s[8],lt=8191&ft,ct=ft>>>13,dt=0|s[9],pt=8191&dt,mt=dt>>>13;r.negative=t.negative^e.negative,r.length=19,i=Math.imul(l,U),n=Math.imul(l,F),n=n+Math.imul(c,U)|0,o=Math.imul(c,F);var bt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(bt>>>26)|0,bt&=67108863,i=Math.imul(p,U),n=Math.imul(p,F),n=n+Math.imul(m,U)|0,o=Math.imul(m,F),i=i+Math.imul(l,K)|0,n=n+Math.imul(l,W)|0,n=n+Math.imul(c,K)|0,o=o+Math.imul(c,W)|0;var vt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(vt>>>26)|0,vt&=67108863,i=Math.imul(v,U),n=Math.imul(v,F),n=n+Math.imul(g,U)|0,o=Math.imul(g,F),i=i+Math.imul(p,K)|0,n=n+Math.imul(p,W)|0,n=n+Math.imul(m,K)|0,o=o+Math.imul(m,W)|0,i=i+Math.imul(l,Z)|0,n=n+Math.imul(l,Y)|0,n=n+Math.imul(c,Z)|0,o=o+Math.imul(c,Y)|0;var gt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(gt>>>26)|0,gt&=67108863,i=Math.imul(w,U),n=Math.imul(w,F),n=n+Math.imul(M,U)|0,o=Math.imul(M,F),i=i+Math.imul(v,K)|0,n=n+Math.imul(v,W)|0,n=n+Math.imul(g,K)|0,o=o+Math.imul(g,W)|0,i=i+Math.imul(p,Z)|0,n=n+Math.imul(p,Y)|0,n=n+Math.imul(m,Z)|0,o=o+Math.imul(m,Y)|0,i=i+Math.imul(l,G)|0,n=n+Math.imul(l,X)|0,n=n+Math.imul(c,G)|0,o=o+Math.imul(c,X)|0;var yt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(yt>>>26)|0,yt&=67108863,i=Math.imul(S,U),n=Math.imul(S,F),n=n+Math.imul(E,U)|0,o=Math.imul(E,F),i=i+Math.imul(w,K)|0,n=n+Math.imul(w,W)|0,n=n+Math.imul(M,K)|0,o=o+Math.imul(M,W)|0,i=i+Math.imul(v,Z)|0,n=n+Math.imul(v,Y)|0,n=n+Math.imul(g,Z)|0,o=o+Math.imul(g,Y)|0,i=i+Math.imul(p,G)|0,n=n+Math.imul(p,X)|0,n=n+Math.imul(m,G)|0,o=o+Math.imul(m,X)|0,i=i+Math.imul(l,Q)|0,n=n+Math.imul(l,tt)|0,n=n+Math.imul(c,Q)|0,o=o+Math.imul(c,tt)|0;var wt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(wt>>>26)|0,wt&=67108863,i=Math.imul(x,U),n=Math.imul(x,F),n=n+Math.imul(k,U)|0,o=Math.imul(k,F),i=i+Math.imul(S,K)|0,n=n+Math.imul(S,W)|0,n=n+Math.imul(E,K)|0,o=o+Math.imul(E,W)|0,i=i+Math.imul(w,Z)|0,n=n+Math.imul(w,Y)|0,n=n+Math.imul(M,Z)|0,o=o+Math.imul(M,Y)|0,i=i+Math.imul(v,G)|0,n=n+Math.imul(v,X)|0,n=n+Math.imul(g,G)|0,o=o+Math.imul(g,X)|0,i=i+Math.imul(p,Q)|0,n=n+Math.imul(p,tt)|0,n=n+Math.imul(m,Q)|0,o=o+Math.imul(m,tt)|0,i=i+Math.imul(l,rt)|0,n=n+Math.imul(l,it)|0,n=n+Math.imul(c,rt)|0,o=o+Math.imul(c,it)|0;var Mt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,i=Math.imul($,U),n=Math.imul($,F),n=n+Math.imul(T,U)|0,o=Math.imul(T,F),i=i+Math.imul(x,K)|0,n=n+Math.imul(x,W)|0,n=n+Math.imul(k,K)|0,o=o+Math.imul(k,W)|0,i=i+Math.imul(S,Z)|0,n=n+Math.imul(S,Y)|0,n=n+Math.imul(E,Z)|0,o=o+Math.imul(E,Y)|0,i=i+Math.imul(w,G)|0,n=n+Math.imul(w,X)|0,n=n+Math.imul(M,G)|0,o=o+Math.imul(M,X)|0,i=i+Math.imul(v,Q)|0,n=n+Math.imul(v,tt)|0,n=n+Math.imul(g,Q)|0,o=o+Math.imul(g,tt)|0,i=i+Math.imul(p,rt)|0,n=n+Math.imul(p,it)|0,n=n+Math.imul(m,rt)|0,o=o+Math.imul(m,it)|0,i=i+Math.imul(l,ot)|0,n=n+Math.imul(l,at)|0,n=n+Math.imul(c,ot)|0,o=o+Math.imul(c,at)|0;var _t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(_t>>>26)|0,_t&=67108863,i=Math.imul(O,U),n=Math.imul(O,F),n=n+Math.imul(C,U)|0,o=Math.imul(C,F),i=i+Math.imul($,K)|0,n=n+Math.imul($,W)|0,n=n+Math.imul(T,K)|0,o=o+Math.imul(T,W)|0,i=i+Math.imul(x,Z)|0,n=n+Math.imul(x,Y)|0,n=n+Math.imul(k,Z)|0,o=o+Math.imul(k,Y)|0,i=i+Math.imul(S,G)|0,n=n+Math.imul(S,X)|0,n=n+Math.imul(E,G)|0,o=o+Math.imul(E,X)|0,i=i+Math.imul(w,Q)|0,n=n+Math.imul(w,tt)|0,n=n+Math.imul(M,Q)|0,o=o+Math.imul(M,tt)|0,i=i+Math.imul(v,rt)|0,n=n+Math.imul(v,it)|0,n=n+Math.imul(g,rt)|0,o=o+Math.imul(g,it)|0,i=i+Math.imul(p,ot)|0,n=n+Math.imul(p,at)|0,n=n+Math.imul(m,ot)|0,o=o+Math.imul(m,at)|0,i=i+Math.imul(l,ut)|0,n=n+Math.imul(l,ht)|0,n=n+Math.imul(c,ut)|0,o=o+Math.imul(c,ht)|0;var St=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(St>>>26)|0,St&=67108863,i=Math.imul(N,U),n=Math.imul(N,F),n=n+Math.imul(B,U)|0,o=Math.imul(B,F),i=i+Math.imul(O,K)|0,n=n+Math.imul(O,W)|0,n=n+Math.imul(C,K)|0,o=o+Math.imul(C,W)|0,i=i+Math.imul($,Z)|0,n=n+Math.imul($,Y)|0,n=n+Math.imul(T,Z)|0,o=o+Math.imul(T,Y)|0,i=i+Math.imul(x,G)|0,n=n+Math.imul(x,X)|0,n=n+Math.imul(k,G)|0,o=o+Math.imul(k,X)|0,i=i+Math.imul(S,Q)|0,n=n+Math.imul(S,tt)|0,n=n+Math.imul(E,Q)|0,o=o+Math.imul(E,tt)|0,i=i+Math.imul(w,rt)|0,n=n+Math.imul(w,it)|0,n=n+Math.imul(M,rt)|0,o=o+Math.imul(M,it)|0,i=i+Math.imul(v,ot)|0,n=n+Math.imul(v,at)|0,n=n+Math.imul(g,ot)|0,o=o+Math.imul(g,at)|0,i=i+Math.imul(p,ut)|0,n=n+Math.imul(p,ht)|0,n=n+Math.imul(m,ut)|0,o=o+Math.imul(m,ht)|0,i=i+Math.imul(l,lt)|0,n=n+Math.imul(l,ct)|0,n=n+Math.imul(c,lt)|0,o=o+Math.imul(c,ct)|0;var Et=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Et>>>26)|0,Et&=67108863,i=Math.imul(j,U),n=Math.imul(j,F),n=n+Math.imul(D,U)|0,o=Math.imul(D,F),i=i+Math.imul(N,K)|0,n=n+Math.imul(N,W)|0,n=n+Math.imul(B,K)|0,o=o+Math.imul(B,W)|0,i=i+Math.imul(O,Z)|0,n=n+Math.imul(O,Y)|0,n=n+Math.imul(C,Z)|0,o=o+Math.imul(C,Y)|0,i=i+Math.imul($,G)|0,n=n+Math.imul($,X)|0,n=n+Math.imul(T,G)|0,o=o+Math.imul(T,X)|0,i=i+Math.imul(x,Q)|0,n=n+Math.imul(x,tt)|0,n=n+Math.imul(k,Q)|0,o=o+Math.imul(k,tt)|0,i=i+Math.imul(S,rt)|0,n=n+Math.imul(S,it)|0,n=n+Math.imul(E,rt)|0,o=o+Math.imul(E,it)|0,i=i+Math.imul(w,ot)|0,n=n+Math.imul(w,at)|0,n=n+Math.imul(M,ot)|0,o=o+Math.imul(M,at)|0,i=i+Math.imul(v,ut)|0,n=n+Math.imul(v,ht)|0,n=n+Math.imul(g,ut)|0,o=o+Math.imul(g,ht)|0,i=i+Math.imul(p,lt)|0,n=n+Math.imul(p,ct)|0,n=n+Math.imul(m,lt)|0,o=o+Math.imul(m,ct)|0,i=i+Math.imul(l,pt)|0,n=n+Math.imul(l,mt)|0,n=n+Math.imul(c,pt)|0,o=o+Math.imul(c,mt)|0;var At=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(At>>>26)|0,At&=67108863,i=Math.imul(j,K),n=Math.imul(j,W),n=n+Math.imul(D,K)|0,o=Math.imul(D,W),i=i+Math.imul(N,Z)|0,n=n+Math.imul(N,Y)|0,n=n+Math.imul(B,Z)|0,o=o+Math.imul(B,Y)|0,i=i+Math.imul(O,G)|0,n=n+Math.imul(O,X)|0,n=n+Math.imul(C,G)|0,o=o+Math.imul(C,X)|0,i=i+Math.imul($,Q)|0,n=n+Math.imul($,tt)|0,n=n+Math.imul(T,Q)|0,o=o+Math.imul(T,tt)|0,i=i+Math.imul(x,rt)|0,n=n+Math.imul(x,it)|0,n=n+Math.imul(k,rt)|0,o=o+Math.imul(k,it)|0,i=i+Math.imul(S,ot)|0,n=n+Math.imul(S,at)|0,n=n+Math.imul(E,ot)|0,o=o+Math.imul(E,at)|0,i=i+Math.imul(w,ut)|0,n=n+Math.imul(w,ht)|0,n=n+Math.imul(M,ut)|0,o=o+Math.imul(M,ht)|0,i=i+Math.imul(v,lt)|0,n=n+Math.imul(v,ct)|0,n=n+Math.imul(g,lt)|0,o=o+Math.imul(g,ct)|0,i=i+Math.imul(p,pt)|0,n=n+Math.imul(p,mt)|0,n=n+Math.imul(m,pt)|0,o=o+Math.imul(m,mt)|0;var xt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(xt>>>26)|0,xt&=67108863,i=Math.imul(j,Z),n=Math.imul(j,Y),n=n+Math.imul(D,Z)|0,o=Math.imul(D,Y),i=i+Math.imul(N,G)|0,n=n+Math.imul(N,X)|0,n=n+Math.imul(B,G)|0,o=o+Math.imul(B,X)|0,i=i+Math.imul(O,Q)|0,n=n+Math.imul(O,tt)|0,n=n+Math.imul(C,Q)|0,o=o+Math.imul(C,tt)|0,i=i+Math.imul($,rt)|0,n=n+Math.imul($,it)|0,n=n+Math.imul(T,rt)|0,o=o+Math.imul(T,it)|0,i=i+Math.imul(x,ot)|0,n=n+Math.imul(x,at)|0,n=n+Math.imul(k,ot)|0,o=o+Math.imul(k,at)|0,i=i+Math.imul(S,ut)|0,n=n+Math.imul(S,ht)|0,n=n+Math.imul(E,ut)|0,o=o+Math.imul(E,ht)|0,i=i+Math.imul(w,lt)|0,n=n+Math.imul(w,ct)|0,n=n+Math.imul(M,lt)|0,o=o+Math.imul(M,ct)|0,i=i+Math.imul(v,pt)|0,n=n+Math.imul(v,mt)|0,n=n+Math.imul(g,pt)|0,o=o+Math.imul(g,mt)|0;var kt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(kt>>>26)|0,kt&=67108863,i=Math.imul(j,G),n=Math.imul(j,X),n=n+Math.imul(D,G)|0,o=Math.imul(D,X),i=i+Math.imul(N,Q)|0,n=n+Math.imul(N,tt)|0,n=n+Math.imul(B,Q)|0,o=o+Math.imul(B,tt)|0,i=i+Math.imul(O,rt)|0,n=n+Math.imul(O,it)|0,n=n+Math.imul(C,rt)|0,o=o+Math.imul(C,it)|0,i=i+Math.imul($,ot)|0,n=n+Math.imul($,at)|0,n=n+Math.imul(T,ot)|0,o=o+Math.imul(T,at)|0,i=i+Math.imul(x,ut)|0,n=n+Math.imul(x,ht)|0,n=n+Math.imul(k,ut)|0,o=o+Math.imul(k,ht)|0,i=i+Math.imul(S,lt)|0,n=n+Math.imul(S,ct)|0,n=n+Math.imul(E,lt)|0,o=o+Math.imul(E,ct)|0,i=i+Math.imul(w,pt)|0,n=n+Math.imul(w,mt)|0,n=n+Math.imul(M,pt)|0,o=o+Math.imul(M,mt)|0;var Rt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Rt>>>26)|0,Rt&=67108863,i=Math.imul(j,Q),n=Math.imul(j,tt),n=n+Math.imul(D,Q)|0,o=Math.imul(D,tt),i=i+Math.imul(N,rt)|0,n=n+Math.imul(N,it)|0,n=n+Math.imul(B,rt)|0,o=o+Math.imul(B,it)|0,i=i+Math.imul(O,ot)|0,n=n+Math.imul(O,at)|0,n=n+Math.imul(C,ot)|0,o=o+Math.imul(C,at)|0,i=i+Math.imul($,ut)|0,n=n+Math.imul($,ht)|0,n=n+Math.imul(T,ut)|0,o=o+Math.imul(T,ht)|0,i=i+Math.imul(x,lt)|0,n=n+Math.imul(x,ct)|0,n=n+Math.imul(k,lt)|0,o=o+Math.imul(k,ct)|0,i=i+Math.imul(S,pt)|0,n=n+Math.imul(S,mt)|0,n=n+Math.imul(E,pt)|0,o=o+Math.imul(E,mt)|0;var $t=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+($t>>>26)|0,$t&=67108863,i=Math.imul(j,rt),n=Math.imul(j,it),n=n+Math.imul(D,rt)|0,o=Math.imul(D,it),i=i+Math.imul(N,ot)|0,n=n+Math.imul(N,at)|0,n=n+Math.imul(B,ot)|0,o=o+Math.imul(B,at)|0,i=i+Math.imul(O,ut)|0,n=n+Math.imul(O,ht)|0,n=n+Math.imul(C,ut)|0,o=o+Math.imul(C,ht)|0,i=i+Math.imul($,lt)|0,n=n+Math.imul($,ct)|0,n=n+Math.imul(T,lt)|0,o=o+Math.imul(T,ct)|0,i=i+Math.imul(x,pt)|0,n=n+Math.imul(x,mt)|0,n=n+Math.imul(k,pt)|0,o=o+Math.imul(k,mt)|0;var Tt=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,i=Math.imul(j,ot),n=Math.imul(j,at),n=n+Math.imul(D,ot)|0,o=Math.imul(D,at),i=i+Math.imul(N,ut)|0,n=n+Math.imul(N,ht)|0,n=n+Math.imul(B,ut)|0,o=o+Math.imul(B,ht)|0,i=i+Math.imul(O,lt)|0,n=n+Math.imul(O,ct)|0,n=n+Math.imul(C,lt)|0,o=o+Math.imul(C,ct)|0,i=i+Math.imul($,pt)|0,n=n+Math.imul($,mt)|0,n=n+Math.imul(T,pt)|0,o=o+Math.imul(T,mt)|0;var It=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(It>>>26)|0,It&=67108863,i=Math.imul(j,ut),n=Math.imul(j,ht),n=n+Math.imul(D,ut)|0,o=Math.imul(D,ht),i=i+Math.imul(N,lt)|0,n=n+Math.imul(N,ct)|0,n=n+Math.imul(B,lt)|0,o=o+Math.imul(B,ct)|0,i=i+Math.imul(O,pt)|0,n=n+Math.imul(O,mt)|0,n=n+Math.imul(C,pt)|0,o=o+Math.imul(C,mt)|0;var Ot=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,i=Math.imul(j,lt),n=Math.imul(j,ct),n=n+Math.imul(D,lt)|0,o=Math.imul(D,ct),i=i+Math.imul(N,pt)|0,n=n+Math.imul(N,mt)|0,n=n+Math.imul(B,pt)|0,o=o+Math.imul(B,mt)|0;var Ct=(h+i|0)+((8191&n)<<13)|0;h=(o+(n>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,i=Math.imul(j,pt),n=Math.imul(j,mt),n=n+Math.imul(D,pt)|0,o=Math.imul(D,mt);var Lt=(h+i|0)+((8191&n)<<13)|0;return h=(o+(n>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,u[0]=bt,u[1]=vt,u[2]=gt,u[3]=yt,u[4]=wt,u[5]=Mt,u[6]=_t,u[7]=St,u[8]=Et,u[9]=At,u[10]=xt,u[11]=kt,u[12]=Rt,u[13]=$t,u[14]=Tt,u[15]=It,u[16]=Ot,u[17]=Ct,u[18]=Lt,0!==h&&(u[19]=h,r.length++),r};function m(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var i=0,n=0,o=0;o>>26)|0,n+=a>>>26,a&=67108863}r.words[o]=s,i=a,a=n}return 0!==i?r.words[o]=i:r.length--,r.strip()}function b(t,e,r){var i=new v;return i.mulp(t,e,r)}function v(t,e){this.x=t,this.y=e}Math.imul||(p=d),o.prototype.mulTo=function(t,e){var r,i=this.length+t.length;return r=10===this.length&&10===t.length?p(this,t,e):i<63?d(this,t,e):i<1024?m(this,t,e):b(this,t,e),r},v.prototype.makeRBT=function(t){for(var e=new Array(t),r=o.prototype._countBits(t)-1,i=0;i>=1;return i},v.prototype.permute=function(t,e,r,i,n,o){for(var a=0;a>>=1)n++;return 1<>>=13,r[2*a+1]=8191&o,o>>>=13;for(a=2*e;a>=26,e+=n/67108864|0,e+=o>>>26,this.words[r]=67108863&o}return 0!==e&&(this.words[r]=e,this.length++),this},o.prototype.muln=function(t){return this.clone().imuln(t)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(t){var e=c(t);if(0===e.length)return new o(1);for(var r=this,i=0;i=0);var e,r=t%26,n=(t-r)/26,o=67108863>>>26-r<<26-r;if(0!==r){var a=0;for(e=0;e>>26-r}a&&(this.words[e]=a,this.length++)}if(0!==n){for(e=this.length-1;e>=0;e--)this.words[e+n]=this.words[e];for(e=0;e=0),n=e?(e-e%26)/26:0;var o=t%26,a=Math.min((t-o)/26,this.length),s=67108863^67108863>>>o<a)for(this.length-=a,h=0;h=0&&(0!==f||h>=n);h--){var l=0|this.words[h];this.words[h]=f<<26-o|l>>>o,f=l&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(t,e,r){return i(0===this.negative),this.iushrn(t,e,r)},o.prototype.shln=function(t){return this.clone().ishln(t)},o.prototype.ushln=function(t){return this.clone().iushln(t)},o.prototype.shrn=function(t){return this.clone().ishrn(t)},o.prototype.ushrn=function(t){return this.clone().iushrn(t)},o.prototype.testn=function(t){i("number"===typeof t&&t>=0);var e=t%26,r=(t-e)/26,n=1<=0);var e=t%26,r=(t-e)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var n=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},o.prototype.isubn=function(t){if(i("number"===typeof t),i(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(u/67108864|0),this.words[n+r]=67108863&o}for(;n>26,this.words[n+r]=67108863&o;if(0===s)return this.strip();for(i(-1===s),s=0,n=0;n>26,this.words[n]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(t,e){var r=this.length-t.length,i=this.clone(),n=t,a=0|n.words[n.length-1],s=this._countBits(a);r=26-s,0!==r&&(n=n.ushln(r),i.iushln(r),a=0|n.words[n.length-1]);var u,h=i.length-n.length;if("mod"!==e){u=new o(null),u.length=h+1,u.words=new Array(u.length);for(var f=0;f=0;c--){var d=67108864*(0|i.words[n.length+c])+(0|i.words[n.length+c-1]);d=Math.min(d/a|0,67108863),i._ishlnsubmul(n,d,c);while(0!==i.negative)d--,i.negative=0,i._ishlnsubmul(n,1,c),i.isZero()||(i.negative^=1);u&&(u.words[c]=d)}return u&&u.strip(),i.strip(),"div"!==e&&0!==r&&i.iushrn(r),{div:u||null,mod:i}},o.prototype.divmod=function(t,e,r){return i(!t.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(n=s.div.neg()),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.iadd(t)),{div:n,mod:a}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(n=s.div.neg()),{div:n,mod:s.mod}):0!==(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(a=s.mod.neg(),r&&0!==a.negative&&a.isub(t)),{div:s.div,mod:a}):t.length>this.length||this.cmp(t)<0?{div:new o(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new o(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new o(this.modn(t.words[0]))}:this._wordDiv(t,e);var n,a,s},o.prototype.div=function(t){return this.divmod(t,"div",!1).div},o.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},o.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},o.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,i=t.ushrn(1),n=t.andln(1),o=r.cmp(i);return o<0||1===n&&0===o?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},o.prototype.modn=function(t){i(t<=67108863);for(var e=(1<<26)%t,r=0,n=this.length-1;n>=0;n--)r=(e*r+(0|this.words[n]))%t;return r},o.prototype.idivn=function(t){i(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var n=(0|this.words[r])+67108864*e;this.words[r]=n/t|0,e=n%t}return this.strip()},o.prototype.divn=function(t){return this.clone().idivn(t)},o.prototype.egcd=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n=new o(1),a=new o(0),s=new o(0),u=new o(1),h=0;while(e.isEven()&&r.isEven())e.iushrn(1),r.iushrn(1),++h;var f=r.clone(),l=e.clone();while(!e.isZero()){for(var c=0,d=1;0===(e.words[0]&d)&&c<26;++c,d<<=1);if(c>0){e.iushrn(c);while(c-- >0)(n.isOdd()||a.isOdd())&&(n.iadd(f),a.isub(l)),n.iushrn(1),a.iushrn(1)}for(var p=0,m=1;0===(r.words[0]&m)&&p<26;++p,m<<=1);if(p>0){r.iushrn(p);while(p-- >0)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(l)),s.iushrn(1),u.iushrn(1)}e.cmp(r)>=0?(e.isub(r),n.isub(s),a.isub(u)):(r.isub(e),s.isub(n),u.isub(a))}return{a:s,b:u,gcd:r.iushln(h)}},o.prototype._invmp=function(t){i(0===t.negative),i(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();var n,a=new o(1),s=new o(0),u=r.clone();while(e.cmpn(1)>0&&r.cmpn(1)>0){for(var h=0,f=1;0===(e.words[0]&f)&&h<26;++h,f<<=1);if(h>0){e.iushrn(h);while(h-- >0)a.isOdd()&&a.iadd(u),a.iushrn(1)}for(var l=0,c=1;0===(r.words[0]&c)&&l<26;++l,c<<=1);if(l>0){r.iushrn(l);while(l-- >0)s.isOdd()&&s.iadd(u),s.iushrn(1)}e.cmp(r)>=0?(e.isub(r),a.isub(s)):(r.isub(e),s.isub(a))}return n=0===e.cmpn(1)?a:s,n.cmpn(0)<0&&n.iadd(t),n},o.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var i=0;e.isEven()&&r.isEven();i++)e.iushrn(1),r.iushrn(1);do{while(e.isEven())e.iushrn(1);while(r.isEven())r.iushrn(1);var n=e.cmp(r);if(n<0){var o=e;e=r,r=o}else if(0===n||0===r.cmpn(1))break;e.isub(r)}while(1);return r.iushln(i)},o.prototype.invm=function(t){return this.egcd(t).a.umod(t)},o.prototype.isEven=function(){return 0===(1&this.words[0])},o.prototype.isOdd=function(){return 1===(1&this.words[0])},o.prototype.andln=function(t){return this.words[0]&t},o.prototype.bincn=function(t){i("number"===typeof t);var e=t%26,r=(t-e)/26,n=1<>>26,s&=67108863,this.words[a]=s}return 0!==o&&(this.words[a]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),i(t<=67108863,"Number is too big");var n=0|this.words[0];e=n===t?0:nt.length)return 1;if(this.length=0;r--){var i=0|this.words[r],n=0|t.words[r];if(i!==n){in&&(e=1);break}}return e},o.prototype.gtn=function(t){return 1===this.cmpn(t)},o.prototype.gt=function(t){return 1===this.cmp(t)},o.prototype.gten=function(t){return this.cmpn(t)>=0},o.prototype.gte=function(t){return this.cmp(t)>=0},o.prototype.ltn=function(t){return-1===this.cmpn(t)},o.prototype.lt=function(t){return-1===this.cmp(t)},o.prototype.lten=function(t){return this.cmpn(t)<=0},o.prototype.lte=function(t){return this.cmp(t)<=0},o.prototype.eqn=function(t){return 0===this.cmpn(t)},o.prototype.eq=function(t){return 0===this.cmp(t)},o.red=function(t){return new E(t)},o.prototype.toRed=function(t){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(t){return this.red=t,this},o.prototype.forceRed=function(t){return i(!this.red,"Already a number in reduction context"),this._forceRed(t)},o.prototype.redAdd=function(t){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},o.prototype.redIAdd=function(t){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},o.prototype.redSub=function(t){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},o.prototype.redISub=function(t){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},o.prototype.redShl=function(t){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},o.prototype.redMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},o.prototype.redIMul=function(t){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(t){return i(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function y(t,e){this.name=t,this.p=new o(e,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function w(){y.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function M(){y.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){y.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){y.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(t){if("string"===typeof t){var e=o._prime(t);this.m=e.p,this.prime=e}else i(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function A(t){E.call(this,t),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}y.prototype._tmp=function(){var t=new o(null);return t.words=new Array(Math.ceil(this.n/13)),t},y.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),e=r.bitLength()}while(e>this.n);var i=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},y.prototype.split=function(t,e){t.iushrn(this.n,0,e)},y.prototype.imulK=function(t){return t.imul(this.k)},n(w,y),w.prototype.split=function(t,e){for(var r=4194303,i=Math.min(t.length,9),n=0;n>>22,o=a}o>>>=22,t.words[n-10]=o,0===o&&t.length>10?t.length-=10:t.length-=9},w.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=n,e=i}return 0!==e&&(t.words[t.length++]=e),t},o._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new w;else if("p224"===t)e=new M;else if("p192"===t)e=new _;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new S}return g[t]=e,e},E.prototype._verify1=function(t){i(0===t.negative,"red works only with positives"),i(t.red,"red works only with red numbers")},E.prototype._verify2=function(t,e){i(0===(t.negative|e.negative),"red works only with positives"),i(t.red&&t.red===e.red,"red works only with red numbers")},E.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},E.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},E.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},E.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},E.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},E.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},E.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},E.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},E.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},E.prototype.isqr=function(t){return this.imul(t,t.clone())},E.prototype.sqr=function(t){return this.mul(t,t)},E.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(i(e%2===1),3===e){var r=this.m.add(new o(1)).iushrn(2);return this.pow(t,r)}var n=this.m.subn(1),a=0;while(!n.isZero()&&0===n.andln(1))a++,n.iushrn(1);i(!n.isZero());var s=new o(1).toRed(this),u=s.redNeg(),h=this.m.subn(1).iushrn(1),f=this.m.bitLength();f=new o(2*f*f).toRed(this);while(0!==this.pow(f,h).cmp(u))f.redIAdd(u);var l=this.pow(f,n),c=this.pow(t,n.addn(1).iushrn(1)),d=this.pow(t,n),p=a;while(0!==d.cmp(s)){for(var m=d,b=0;0!==m.cmp(s);b++)m=m.redSqr();i(b=0;n--){for(var f=e.words[n],l=h-1;l>=0;l--){var c=f>>l&1;a!==i[0]&&(a=this.sqr(a)),0!==c||0!==s?(s<<=1,s|=c,u++,(u===r||0===n&&0===l)&&(a=this.mul(a,i[s]),u=0,s=0)):u=0}h=26}return a},E.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},E.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},o.mont=function(t){return new A(t)},n(A,E),A.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},A.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},A.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),o=n;return n.cmp(this.m)>=0?o=n.isub(this.m):n.cmpn(0)<0&&(o=n.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new o(0)._forceRed(this);var r=t.mul(e),i=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),n=r.isub(i).iushrn(this.shift),a=n;return n.cmp(this.m)>=0?a=n.isub(this.m):n.cmpn(0)<0&&(a=n.iadd(this.m)),a._forceRed(this)},A.prototype.invm=function(t){var e=this.imod(t._invmp(this.m).mul(this.r2));return e._forceRed(this)}})(t,this)}).call(this,r("62e4")(t))},d113:function(t,e,r){"use strict";function i(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var n={};function o(t,e,r){function o(t,r,i){return"string"===typeof e?e:e(t,r,i)}r||(r=Error);var a=function(t){function e(e,r,i){return t.call(this,o(e,r,i))||this}return i(e,t),e}(r);a.prototype.name=r.name,a.prototype.code=t,n[t]=a}function a(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map((function(t){return String(t)})),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}function s(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function u(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function h(t,e,r){return"number"!==typeof r&&(r=0),!(r+e.length>t.length)&&-1!==t.indexOf(e,r)}o("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),o("ERR_INVALID_ARG_TYPE",(function(t,e,r){var i,n;if("string"===typeof e&&s(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be",u(t," argument"))n="The ".concat(t," ").concat(i," ").concat(a(e,"type"));else{var o=h(t,".")?"property":"argument";n='The "'.concat(t,'" ').concat(o," ").concat(i," ").concat(a(e,"type"))}return n+=". Received type ".concat(typeof r),n}),TypeError),o("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),o("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),o("ERR_STREAM_PREMATURE_CLOSE","Premature close"),o("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),o("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),o("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),o("ERR_STREAM_WRITE_AFTER_END","write after end"),o("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),o("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),o("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.codes=n},d139:function(t,e,r){"use strict";var i=r("ebb5"),n=r("b727").find,o=i.aTypedArray,a=i.exportTypedArrayMethod;a("find",(function(t){return n(o(this),t,arguments.length>1?arguments[1]:void 0)}))},d17b:function(t,e,r){t.exports=r("e372").Transform},d1c8:function(t,e,r){var i=r("3fb5");function n(t){this._reporterState={obj:null,path:[],options:t||{},errors:[]}}function o(t,e){this.path=t,this.rethrow(e)}e.Reporter=n,n.prototype.isError=function(t){return t instanceof o},n.prototype.save=function(){var t=this._reporterState;return{obj:t.obj,pathLen:t.path.length}},n.prototype.restore=function(t){var e=this._reporterState;e.obj=t.obj,e.path=e.path.slice(0,t.pathLen)},n.prototype.enterKey=function(t){return this._reporterState.path.push(t)},n.prototype.exitKey=function(t){var e=this._reporterState;e.path=e.path.slice(0,t-1)},n.prototype.leaveKey=function(t,e,r){var i=this._reporterState;this.exitKey(t),null!==i.obj&&(i.obj[e]=r)},n.prototype.path=function(){return this._reporterState.path.join("/")},n.prototype.enterObject=function(){var t=this._reporterState,e=t.obj;return t.obj={},e},n.prototype.leaveObject=function(t){var e=this._reporterState,r=e.obj;return e.obj=t,r},n.prototype.error=function(t){var e,r=this._reporterState,i=t instanceof o;if(e=i?t:new o(r.path.map((function(t){return"["+JSON.stringify(t)+"]"})).join(""),t.message||t,t.stack),!r.options.partial)throw e;return i||r.errors.push(e),e},n.prototype.wrapResult=function(t){var e=this._reporterState;return e.options.partial?{result:this.isError(t)?null:t,errors:e.errors}:t},i(o,Error),o.prototype.rethrow=function(t){if(this.message=t+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,o),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},d1e7:function(t,e,r){"use strict";var i={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!i.call({1:2},1);e.f=o?function(t){var e=n(this,t);return!!e&&e.enumerable}:i},d28b:function(t,e,r){var i=r("746f");i("iterator")},d2bb:function(t,e,r){var i=r("825a"),n=r("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,t.call(r,[]),e=r instanceof Array}catch(o){}return function(r,o){return i(r),n(o),e?t.call(r,o):r.__proto__=o,r}}():void 0)},d3b7:function(t,e,r){var i=r("00ee"),n=r("6eeb"),o=r("b041");i||n(Object.prototype,"toString",o,{unsafe:!0})},d424:function(t,e,r){"use strict";var i=r("3fb5"),n=r("8707").Buffer,o=r("6430"),a=n.alloc(128),s=64;function u(t,e){o.call(this,"digest"),"string"===typeof e&&(e=n.from(e)),this._alg=t,this._key=e,e.length>s?e=t(e):e.length=0:l>c;c+=d)c in f&&(u=r(u,f[c],c,h));return u}};t.exports={left:s(!1),right:s(!0)}},d5d6:function(t,e,r){"use strict";var i=r("ebb5"),n=r("b727").forEach,o=i.aTypedArray,a=i.exportTypedArrayMethod;a("forEach",(function(t){n(o(this),t,arguments.length>1?arguments[1]:void 0)}))},d70e:function(t){t.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')},d784:function(t,e,r){"use strict";r("ac1f");var i=r("6eeb"),n=r("d039"),o=r("b622"),a=r("9263"),s=r("9112"),u=o("species"),h=!n((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")})),f=function(){return"$0"==="a".replace(/./,"$0")}(),l=o("replace"),c=function(){return!!/./[l]&&""===/./[l]("a","$0")}(),d=!n((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]}));t.exports=function(t,e,r,l){var p=o(t),m=!n((function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})),b=m&&!n((function(){var e=!1,r=/a/;return"split"===t&&(r={},r.constructor={},r.constructor[u]=function(){return r},r.flags="",r[p]=/./[p]),r.exec=function(){return e=!0,null},r[p](""),!e}));if(!m||!b||"replace"===t&&(!h||!f||c)||"split"===t&&!d){var v=/./[p],g=r(p,""[t],(function(t,e,r,i,n){return e.exec===a?m&&!n?{done:!0,value:v.call(e,r,i)}:{done:!0,value:t.call(r,e,i)}:{done:!1}}),{REPLACE_KEEPS_$0:f,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:c}),y=g[0],w=g[1];i(String.prototype,t,y),i(RegExp.prototype,p,2==e?function(t,e){return w.call(t,this,e)}:function(t){return w.call(t,this)})}l&&s(RegExp.prototype[p],"sham",!0)}},d81d:function(t,e,r){"use strict";var i=r("23e7"),n=r("b727").map,o=r("1dde"),a=r("ae40"),s=o("map"),u=a("map");i({target:"Array",proto:!0,forced:!s||!u},{map:function(t){return n(this,t,arguments.length>1?arguments[1]:void 0)}})},da3e:function(t,e){function r(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=r,r.equal=function(t,e,r){if(t!=e)throw new Error(r||"Assertion failed: "+t+" != "+e)}},da84:function(t,e,r){(function(e){var r=function(t){return t&&t.Math==Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof e&&e)||Function("return this")()}).call(this,r("c8ba"))},dc14:function(t,e,r){"use strict";(function(e,i){var n=r("966d");function o(t){var e=this;this.next=null,this.entry=null,this.finish=function(){B(e,t)}}t.exports=y;var a,s=!e.browser&&["v0.10","v0.9."].indexOf(e.version.slice(0,5))>-1?setImmediate:n.nextTick;y.WritableState=g;var u=Object.create(r("3a7c"));u.inherits=r("3fb5");var h={deprecate:r("b7d1")},f=r("429b"),l=r("8707").Buffer,c=i.Uint8Array||function(){};function d(t){return l.from(t)}function p(t){return l.isBuffer(t)||t instanceof c}var m,b=r("4681");function v(){}function g(t,e){a=a||r("b19a"),t=t||{};var i=e instanceof a;this.objectMode=!!t.objectMode,i&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var n=t.highWaterMark,s=t.writableHighWaterMark,u=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:i&&(s||0===s)?s:u,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var h=!1===t.decodeStrings;this.decodeStrings=!h,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){k(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function y(t){if(a=a||r("b19a"),!m.call(y,this)&&!(this instanceof a))return new y(t);this._writableState=new g(t,this),this.writable=!0,t&&("function"===typeof t.write&&(this._write=t.write),"function"===typeof t.writev&&(this._writev=t.writev),"function"===typeof t.destroy&&(this._destroy=t.destroy),"function"===typeof t.final&&(this._final=t.final)),f.call(this)}function w(t,e){var r=new Error("write after end");t.emit("error",r),n.nextTick(e,r)}function M(t,e,r,i){var o=!0,a=!1;return null===r?a=new TypeError("May not write null values to stream"):"string"===typeof r||void 0===r||e.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(t.emit("error",a),n.nextTick(i,a),o=!1),o}function _(t,e,r){return t.objectMode||!1===t.decodeStrings||"string"!==typeof e||(e=l.from(e,r)),e}function S(t,e,r,i,n,o){if(!r){var a=_(e,i,n);i!==a&&(r=!0,n="buffer",i=a)}var s=e.objectMode?1:i.length;e.length+=s;var u=e.length-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(y.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),y.prototype._write=function(t,e,r){r(new Error("_write() is not implemented"))},y.prototype._writev=null,y.prototype.end=function(t,e,r){var i=this._writableState;"function"===typeof t?(r=t,t=null,e=null):"function"===typeof e&&(r=e,e=null),null!==t&&void 0!==t&&this.write(t,e),i.corked&&(i.corked=1,this.uncork()),i.ending||i.finished||N(this,i,r)},Object.defineProperty(y.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),y.prototype.destroy=b.destroy,y.prototype._undestroy=b.undestroy,y.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,r("4362"),r("c8ba"))},ddb0:function(t,e,r){var i=r("da84"),n=r("fdbc"),o=r("e260"),a=r("9112"),s=r("b622"),u=s("iterator"),h=s("toStringTag"),f=o.values;for(var l in n){var c=i[l],d=c&&c.prototype;if(d){if(d[u]!==f)try{a(d,u,f)}catch(m){d[u]=f}if(d[h]||a(d,h,l),n[l])for(var p in o)if(d[p]!==o[p])try{a(d,p,o[p])}catch(m){d[p]=o[p]}}}},df75:function(t,e,r){var i=r("ca84"),n=r("7839");t.exports=Object.keys||function(t){return i(t,n)}},df7c:function(t,e,r){(function(t){function r(t,e){for(var r=0,i=t.length-1;i>=0;i--){var n=t[i];"."===n?t.splice(i,1):".."===n?(t.splice(i,1),r++):r&&(t.splice(i,1),r--)}if(e)for(;r--;r)t.unshift("..");return t}function i(t){"string"!==typeof t&&(t+="");var e,r=0,i=-1,n=!0;for(e=t.length-1;e>=0;--e)if(47===t.charCodeAt(e)){if(!n){r=e+1;break}}else-1===i&&(n=!1,i=e+1);return-1===i?"":t.slice(r,i)}function n(t,e){if(t.filter)return t.filter(e);for(var r=[],i=0;i=-1&&!i;o--){var a=o>=0?arguments[o]:t.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(e=a+"/"+e,i="/"===a.charAt(0))}return e=r(n(e.split("/"),(function(t){return!!t})),!i).join("/"),(i?"/":"")+e||"."},e.normalize=function(t){var i=e.isAbsolute(t),a="/"===o(t,-1);return t=r(n(t.split("/"),(function(t){return!!t})),!i).join("/"),t||i||(t="."),t&&a&&(t+="/"),(i?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(n(t,(function(t,e){if("string"!==typeof t)throw new TypeError("Arguments to path.join must be strings");return t})).join("/"))},e.relative=function(t,r){function i(t){for(var e=0;e=0;r--)if(""!==t[r])break;return e>r?[]:t.slice(e,r-e+1)}t=e.resolve(t).substr(1),r=e.resolve(r).substr(1);for(var n=i(t.split("/")),o=i(r.split("/")),a=Math.min(n.length,o.length),s=a,u=0;u=1;--o)if(e=t.charCodeAt(o),47===e){if(!n){i=o;break}}else n=!1;return-1===i?r?"/":".":r&&1===i?"/":t.slice(0,i)},e.basename=function(t,e){var r=i(t);return e&&r.substr(-1*e.length)===e&&(r=r.substr(0,r.length-e.length)),r},e.extname=function(t){"string"!==typeof t&&(t+="");for(var e=-1,r=0,i=-1,n=!0,o=0,a=t.length-1;a>=0;--a){var s=t.charCodeAt(a);if(47!==s)-1===i&&(n=!1,i=a+1),46===s?-1===e?e=a:1!==o&&(o=1):-1!==e&&(o=-1);else if(!n){r=a+1;break}}return-1===e||-1===i||0===o||1===o&&e===i-1&&e===r+1?"":t.slice(e,i)};var o="b"==="ab".substr(-1)?function(t,e,r){return t.substr(e,r)}:function(t,e,r){return e<0&&(e=t.length+e),t.substr(e,r)}}).call(this,r("4362"))},e01a:function(t,e,r){"use strict";var i=r("23e7"),n=r("83ab"),o=r("da84"),a=r("5135"),s=r("861d"),u=r("9bf2").f,h=r("e893"),f=o.Symbol;if(n&&"function"==typeof f&&(!("description"in f.prototype)||void 0!==f().description)){var l={},c=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof c?new f(t):void 0===t?f():f(t);return""===t&&(l[e]=!0),e};h(c,f);var d=c.prototype=f.prototype;d.constructor=c;var p=d.toString,m="Symbol(test)"==String(f("test")),b=/^Symbol\((.*)\)[^)]+$/;u(d,"description",{configurable:!0,get:function(){var t=s(this)?this.valueOf():this,e=p.call(t);if(a(l,t))return"";var r=m?e.slice(7,-1):e.replace(b,"$1");return""===r?void 0:r}}),i({global:!0,forced:!0},{Symbol:c})}},e07b:function(t,e,r){var i=r("5a76"),n=r("b5ca"),o=r("69f2"),a=r("8707").Buffer,s=r("7d2a"),u=r("9f9d"),h=r("8be6"),f=a.alloc(128),l={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function c(t,e,r){var i=d(t),n="sha512"===t||"sha384"===t?128:64;e.length>n?e=i(e):e.length=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==r?{value:i,done:!1}:"values"==r?{value:e[i],done:!1}:{value:[i,e[i]],done:!1}}),"values"),o.Arguments=o.Array,n("keys"),n("values"),n("entries")},e2cc:function(t,e,r){var i=r("6eeb");t.exports=function(t,e,r){for(var n in e)i(t,n,e[n],r);return t}},e372:function(t,e,r){e=t.exports=r("ad71"),e.Stream=e,e.Readable=e,e.Writable=r("dc14"),e.Duplex=r("b19a"),e.Transform=r("27bf"),e.PassThrough=r("780f")},e3db:function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},e538:function(t,e,r){var i=r("b622");e.f=i},e58c:function(t,e,r){"use strict";var i=r("fc6a"),n=r("a691"),o=r("50c4"),a=r("a640"),s=r("ae40"),u=Math.min,h=[].lastIndexOf,f=!!h&&1/[1].lastIndexOf(1,-0)<0,l=a("lastIndexOf"),c=s("indexOf",{ACCESSORS:!0,1:0}),d=f||!l||!c;t.exports=d?function(t){if(f)return h.apply(this,arguments)||0;var e=i(this),r=o(e.length),a=r-1;for(arguments.length>1&&(a=u(a,n(arguments[1]))),a<0&&(a=r+a);a>=0;a--)if(a in e&&e[a]===t)return a||0;return-1}:h},e666:function(t,e,r){"use strict";(function(e){var i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=h;var n=r("4250"),o=r("19ea");r("3fb5")(h,n);for(var a=i(o.prototype),s=0;s1?arguments[1]:void 0)}))},e95a:function(t,e,r){var i=r("b622"),n=r("3f8c"),o=i("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(n.Array===t||a[o]===t)}},ea53:function(t,e,r){"use strict";var i=r("80af"),n=r("f3a3"),o=n.getNAF,a=n.getJSF,s=n.assert;function u(t,e){this.type=t,this.p=new i(e.p,16),this.red=e.prime?i.red(e.prime):i.mont(this.p),this.zero=new i(0).toRed(this.red),this.one=new i(1).toRed(this.red),this.two=new i(2).toRed(this.red),this.n=e.n&&new i(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function h(t,e){this.curve=t,this.type=e,this.precomputed=null}t.exports=u,u.prototype.point=function(){throw new Error("Not implemented")},u.prototype.validate=function(){throw new Error("Not implemented")},u.prototype._fixedNafMul=function(t,e){s(t.precomputed);var r=t._getDoubles(),i=o(e,1,this._bitLength),n=(1<=u;e--)h=(h<<1)+i[e];a.push(h)}for(var f=this.jpoint(null,null,null),l=this.jpoint(null,null,null),c=n;c>0;c--){for(u=0;u=0;h--){for(e=0;h>=0&&0===a[h];h--)e++;if(h>=0&&e++,u=u.dblp(e),h<0)break;var f=a[h];s(0!==f),u="affine"===t.type?f>0?u.mixedAdd(n[f-1>>1]):u.mixedAdd(n[-f-1>>1].neg()):f>0?u.add(n[f-1>>1]):u.add(n[-f-1>>1].neg())}return"affine"===t.type?u.toP():u},u.prototype._wnafMulAdd=function(t,e,r,i,n){for(var s=this._wnafT1,u=this._wnafT2,h=this._wnafT3,f=0,l=0;l=1;l-=2){var p=l-1,m=l;if(1===s[p]&&1===s[m]){var b=[e[p],null,null,e[m]];0===e[p].y.cmp(e[m].y)?(b[1]=e[p].add(e[m]),b[2]=e[p].toJ().mixedAdd(e[m].neg())):0===e[p].y.cmp(e[m].y.redNeg())?(b[1]=e[p].toJ().mixedAdd(e[m]),b[2]=e[p].add(e[m].neg())):(b[1]=e[p].toJ().mixedAdd(e[m]),b[2]=e[p].toJ().mixedAdd(e[m].neg()));var v=[-3,-1,-5,-7,0,7,5,1,3],g=a(r[p],r[m]);f=Math.max(g[0].length,f),h[p]=new Array(f),h[m]=new Array(f);for(var y=0;y=0;l--){var E=0;while(l>=0){var A=!0;for(y=0;y=0&&E++,_=_.dblp(E),l<0)break;for(y=0;y0?c=u[y][x-1>>1]:x<0&&(c=u[y][-x-1>>1].neg()),_="affine"===c.type?_.mixedAdd(c):_.add(c))}}for(l=0;l=Math.ceil((t.bitLength()+1)/e.step)},h.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],i=this,n=0;n=this._delta8){t=this.pending;var r=t.length%this._delta8;this.pending=t.slice(t.length-r,t.length),0===this.pending.length&&(this.pending=null),t=i.join32(t,0,t.length-r,this.endian);for(var n=0;n>>24&255,i[n++]=t>>>16&255,i[n++]=t>>>8&255,i[n++]=255&t}else for(i[n++]=255&t,i[n++]=t>>>8&255,i[n++]=t>>>16&255,i[n++]=t>>>24&255,i[n++]=0,i[n++]=0,i[n++]=0,i[n++]=0,o=8;o(n>>1)-1?(n>>1)-u:u,o.isubn(s)):s=0,i[a]=s,o.iushrn(1)}return i}function u(t,e){var r=[[],[]];t=t.clone(),e=e.clone();var i=0,n=0;while(t.cmpn(-i)>0||e.cmpn(-n)>0){var o,a,s=t.andln(3)+i&3,u=e.andln(3)+n&3;if(3===s&&(s=-1),3===u&&(u=-1),0===(1&s))o=0;else{var h=t.andln(7)+i&7;o=3!==h&&5!==h||2!==u?s:-s}if(r[0].push(o),0===(1&u))a=0;else{h=e.andln(7)+n&7;a=3!==h&&5!==h||2!==s?u:-u}r[1].push(a),2*i===o+1&&(i=1-i),2*n===a+1&&(n=1-n),t.iushrn(1),e.iushrn(1)}return r}function h(t,e,r){var i="_"+e;t.prototype[e]=function(){return void 0!==this[i]?this[i]:this[i]=r.call(this)}}function f(t){return"string"===typeof t?i.toArray(t,"hex"):t}function l(t){return new n(t,"hex","le")}i.assert=o,i.toArray=a.toArray,i.zero2=a.zero2,i.toHex=a.toHex,i.encode=a.encode,i.getNAF=s,i.getJSF=u,i.cachedProperty=h,i.parseBytes=f,i.intFromLE=l},f460:function(t,e,r){var i=r("98e6"),n=r("8707").Buffer;function o(t){var e=n.allocUnsafe(4);return e.writeUInt32BE(t,0),e}t.exports=function(t,e){var r,a=n.alloc(0),s=0;while(a.length>>32-e}function h(t,e,r,i,n,o,a){return u(t+(e&r|~e&i)+n+o|0,a)+e|0}function f(t,e,r,i,n,o,a){return u(t+(e&i|r&~i)+n+o|0,a)+e|0}function l(t,e,r,i,n,o,a){return u(t+(e^r^i)+n+o|0,a)+e|0}function c(t,e,r,i,n,o,a){return u(t+(r^(e|~i))+n+o|0,a)+e|0}i(s,n),s.prototype._update=function(){for(var t=a,e=0;e<16;++e)t[e]=this._block.readInt32LE(4*e);var r=this._a,i=this._b,n=this._c,o=this._d;r=h(r,i,n,o,t[0],3614090360,7),o=h(o,r,i,n,t[1],3905402710,12),n=h(n,o,r,i,t[2],606105819,17),i=h(i,n,o,r,t[3],3250441966,22),r=h(r,i,n,o,t[4],4118548399,7),o=h(o,r,i,n,t[5],1200080426,12),n=h(n,o,r,i,t[6],2821735955,17),i=h(i,n,o,r,t[7],4249261313,22),r=h(r,i,n,o,t[8],1770035416,7),o=h(o,r,i,n,t[9],2336552879,12),n=h(n,o,r,i,t[10],4294925233,17),i=h(i,n,o,r,t[11],2304563134,22),r=h(r,i,n,o,t[12],1804603682,7),o=h(o,r,i,n,t[13],4254626195,12),n=h(n,o,r,i,t[14],2792965006,17),i=h(i,n,o,r,t[15],1236535329,22),r=f(r,i,n,o,t[1],4129170786,5),o=f(o,r,i,n,t[6],3225465664,9),n=f(n,o,r,i,t[11],643717713,14),i=f(i,n,o,r,t[0],3921069994,20),r=f(r,i,n,o,t[5],3593408605,5),o=f(o,r,i,n,t[10],38016083,9),n=f(n,o,r,i,t[15],3634488961,14),i=f(i,n,o,r,t[4],3889429448,20),r=f(r,i,n,o,t[9],568446438,5),o=f(o,r,i,n,t[14],3275163606,9),n=f(n,o,r,i,t[3],4107603335,14),i=f(i,n,o,r,t[8],1163531501,20),r=f(r,i,n,o,t[13],2850285829,5),o=f(o,r,i,n,t[2],4243563512,9),n=f(n,o,r,i,t[7],1735328473,14),i=f(i,n,o,r,t[12],2368359562,20),r=l(r,i,n,o,t[5],4294588738,4),o=l(o,r,i,n,t[8],2272392833,11),n=l(n,o,r,i,t[11],1839030562,16),i=l(i,n,o,r,t[14],4259657740,23),r=l(r,i,n,o,t[1],2763975236,4),o=l(o,r,i,n,t[4],1272893353,11),n=l(n,o,r,i,t[7],4139469664,16),i=l(i,n,o,r,t[10],3200236656,23),r=l(r,i,n,o,t[13],681279174,4),o=l(o,r,i,n,t[0],3936430074,11),n=l(n,o,r,i,t[3],3572445317,16),i=l(i,n,o,r,t[6],76029189,23),r=l(r,i,n,o,t[9],3654602809,4),o=l(o,r,i,n,t[12],3873151461,11),n=l(n,o,r,i,t[15],530742520,16),i=l(i,n,o,r,t[2],3299628645,23),r=c(r,i,n,o,t[0],4096336452,6),o=c(o,r,i,n,t[7],1126891415,10),n=c(n,o,r,i,t[14],2878612391,15),i=c(i,n,o,r,t[5],4237533241,21),r=c(r,i,n,o,t[12],1700485571,6),o=c(o,r,i,n,t[3],2399980690,10),n=c(n,o,r,i,t[10],4293915773,15),i=c(i,n,o,r,t[1],2240044497,21),r=c(r,i,n,o,t[8],1873313359,6),o=c(o,r,i,n,t[15],4264355552,10),n=c(n,o,r,i,t[6],2734768916,15),i=c(i,n,o,r,t[13],1309151649,21),r=c(r,i,n,o,t[4],4149444226,6),o=c(o,r,i,n,t[11],3174756917,10),n=c(n,o,r,i,t[2],718787259,15),i=c(i,n,o,r,t[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+i|0,this._c=this._c+n|0,this._d=this._d+o|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var t=o.allocUnsafe(16);return t.writeInt32LE(this._a,0),t.writeInt32LE(this._b,4),t.writeInt32LE(this._c,8),t.writeInt32LE(this._d,12),t},t.exports=s},f5df:function(t,e,r){var i=r("00ee"),n=r("c6b6"),o=r("b622"),a=o("toStringTag"),s="Arguments"==n(function(){return arguments}()),u=function(t,e){try{return t[e]}catch(r){}};t.exports=i?n:function(t){var e,r,i;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=u(e=Object(t),a))?r:s?n(e):"Object"==(i=n(e))&&"function"==typeof e.callee?"Arguments":i}},f772:function(t,e,r){var i=r("5692"),n=r("90e3"),o=i("keys");t.exports=function(t){return o[t]||(o[t]=n(t))}},f83c:function(t,e){t.exports=function(){throw new Error("Readable.from is not available in the browser")}},f8cd:function(t,e,r){var i=r("a691");t.exports=function(t){var e=i(t);if(e<0)throw RangeError("The argument can't be less than 0");return e}},faa1:function(t,e,r){"use strict";var i,n="object"===typeof Reflect?Reflect:null,o=n&&"function"===typeof n.apply?n.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)};function a(t){console&&console.warn&&console.warn(t)}i=n&&"function"===typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var s=Number.isNaN||function(t){return t!==t};function u(){u.init.call(this)}t.exports=u,t.exports.once=w,u.EventEmitter=u,u.prototype._events=void 0,u.prototype._eventsCount=0,u.prototype._maxListeners=void 0;var h=10;function f(t){if("function"!==typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function l(t){return void 0===t._maxListeners?u.defaultMaxListeners:t._maxListeners}function c(t,e,r,i){var n,o,s;if(f(r),o=t._events,void 0===o?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,r.listener?r.listener:r),o=t._events),s=o[e]),void 0===s)s=o[e]=r,++t._eventsCount;else if("function"===typeof s?s=o[e]=i?[r,s]:[s,r]:i?s.unshift(r):s.push(r),n=l(t),n>0&&s.length>n&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=t,u.type=e,u.count=s.length,a(u)}return t}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(t,e,r){var i={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},n=d.bind(i);return n.listener=r,i.wrapFn=n,n}function m(t,e,r){var i=t._events;if(void 0===i)return[];var n=i[e];return void 0===n?[]:"function"===typeof n?r?[n.listener||n]:[n]:r?y(n):v(n,n.length)}function b(t){var e=this._events;if(void 0!==e){var r=e[t];if("function"===typeof r)return 1;if(void 0!==r)return r.length}return 0}function v(t,e){for(var r=new Array(e),i=0;i0&&(a=e[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=n[t];if(void 0===u)return!1;if("function"===typeof u)o(u,this,e);else{var h=u.length,f=v(u,h);for(r=0;r=0;o--)if(r[o]===e||r[o].listener===e){a=r[o].listener,n=o;break}if(n<0)return this;0===n?r.shift():g(r,n),1===r.length&&(i[t]=r[0]),void 0!==i.removeListener&&this.emit("removeListener",t,a||e)}return this},u.prototype.off=u.prototype.removeListener,u.prototype.removeAllListeners=function(t){var e,r,i;if(r=this._events,void 0===r)return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[t]&&(0===--this._eventsCount?this._events=Object.create(null):delete r[t]),this;if(0===arguments.length){var n,o=Object.keys(r);for(i=0;i=0;i--)this.removeListener(t,e[i]);return this},u.prototype.listeners=function(t){return m(this,t,!0)},u.prototype.rawListeners=function(t){return m(this,t,!1)},u.listenerCount=function(t,e){return"function"===typeof t.listenerCount?t.listenerCount(e):b.call(t,e)},u.prototype.listenerCount=b,u.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]}},fb2c:function(t,e,r){var i=r("74e8");i("Uint32",(function(t){return function(e,r,i){return t(this,e,r,i)}}))},fb6a:function(t,e,r){"use strict";var i=r("23e7"),n=r("861d"),o=r("e8b5"),a=r("23cb"),s=r("50c4"),u=r("fc6a"),h=r("8418"),f=r("b622"),l=r("1dde"),c=r("ae40"),d=l("slice"),p=c("slice",{ACCESSORS:!0,0:0,1:2}),m=f("species"),b=[].slice,v=Math.max;i({target:"Array",proto:!0,forced:!d||!p},{slice:function(t,e){var r,i,f,l=u(this),c=s(l.length),d=a(t,c),p=a(void 0===e?c:e,c);if(o(l)&&(r=l.constructor,"function"!=typeof r||r!==Array&&!o(r.prototype)?n(r)&&(r=r[m],null===r&&(r=void 0)):r=void 0,r===Array||void 0===r))return b.call(l,d,p);for(i=new(void 0===r?Array:r)(v(p-d,0)),f=0;d0;return f(t,a,s,(function(t){i||(i=t),t&&o.forEach(l),a||(o.forEach(l),n(i))}))}));return e.reduce(c)}t.exports=p},fc6a:function(t,e,r){var i=r("44ad"),n=r("1d80");t.exports=function(t){return i(n(t))}},fd87:function(t,e,r){var i=r("74e8");i("Int8",(function(t){return function(e,r,i){return t(this,e,r,i)}}))},fda6:function(t,e,r){var i=r("8947"),n=r("4228"),o=r("e85f");function a(){return Object.keys(o)}e.createCipher=e.Cipher=i.createCipher,e.createCipheriv=e.Cipheriv=i.createCipheriv,e.createDecipher=e.Decipher=n.createDecipher,e.createDecipheriv=e.Decipheriv=n.createDecipheriv,e.listCiphers=e.getCiphers=a},fdac:function(t,e,r){var i;function n(t){this.rand=t}if(t.exports=function(t){return i||(i=new n(null)),i.generate(t)},t.exports.Rand=n,n.prototype.generate=function(t){return this._rand(t)},n.prototype._rand=function(t){if(this.rand.getBytes)return this.rand.getBytes(t);for(var e=new Uint8Array(t),r=0;r 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n var res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n var value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","\n// We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n// https://github.com/kripken/emscripten/issues/5820\n// In addition, When you use emcc's modularization, it still expects to export a global object called `Module`,\n// which is able to be used/called before the WASM is loaded.\n// The modularization below exports a promise that loads and resolves to the actual sql.js module.\n// That way, this module can't be used before the WASM is finished loading.\n\n// We are going to define a function that a user will call to start loading initializing our Sql.js library\n// However, that function might be called multiple times, and on subsequent calls, we don't actually want it to instantiate a new instance of the Module\n// Instead, we want to return the previously loaded module\n\n// TODO: Make this not declare a global if used in the browser\nvar initSqlJsPromise = undefined;\n\nvar initSqlJs = function (moduleConfig) {\n\n if (initSqlJsPromise){\n return initSqlJsPromise;\n }\n // If we're here, we've never called this function before\n initSqlJsPromise = new Promise(function (resolveModule, reject) {\n\n // We are modularizing this manually because the current modularize setting in Emscripten has some issues:\n // https://github.com/kripken/emscripten/issues/5820\n\n // The way to affect the loading of emcc compiled modules is to create a variable called `Module` and add\n // properties to it, like `preRun`, `postRun`, etc\n // We are using that to get notified when the WASM has finished loading.\n // Only then will we return our promise\n\n // If they passed in a moduleConfig object, use that\n // Otherwise, initialize Module to the empty object\n var Module = typeof moduleConfig !== 'undefined' ? moduleConfig : {};\n\n // EMCC only allows for a single onAbort function (not an array of functions)\n // So if the user defined their own onAbort function, we remember it and call it\n var originalOnAbortFunction = Module['onAbort'];\n Module['onAbort'] = function (errorThatCausedAbort) {\n reject(new Error(errorThatCausedAbort));\n if (originalOnAbortFunction){\n originalOnAbortFunction(errorThatCausedAbort);\n }\n };\n\n Module['postRun'] = Module['postRun'] || [];\n Module['postRun'].push(function () {\n // When Emscripted calls postRun, this promise resolves with the built Module\n resolveModule(Module);\n });\n\n // There is a section of code in the emcc-generated code below that looks like this:\n // (Note that this is lowercase `module`)\n // if (typeof module !== 'undefined') {\n // module['exports'] = Module;\n // }\n // When that runs, it's going to overwrite our own modularization export efforts in shell-post.js!\n // The only way to tell emcc not to emit it is to pass the MODULARIZE=1 or MODULARIZE_INSTANCE=1 flags,\n // but that carries with it additional unnecessary baggage/bugs we don't want either.\n // So, we have three options:\n // 1) We undefine `module`\n // 2) We remember what `module['exports']` was at the beginning of this function and we restore it later\n // 3) We write a script to remove those lines of code as part of the Make process.\n //\n // Since those are the only lines of code that care about module, we will undefine it. It's the most straightforward\n // of the options, and has the side effect of reducing emcc's efforts to modify the module if its output were to change in the future.\n // That's a nice side effect since we're handling the modularization efforts ourselves\n module = undefined;\n\n // The emcc-generated code and shell-post.js code goes below,\n // meaning that all of it runs inside of this promise. If anything throws an exception, our promise will abort\n\nvar e;e||(e=typeof Module !== 'undefined' ? Module : {});null;\ne.onRuntimeInitialized=function(){function a(h,l){this.Ra=h;this.db=l;this.Qa=1;this.lb=[]}function b(h,l){this.db=l;l=ba(h)+1;this.eb=ca(l);if(null===this.eb)throw Error(\"Unable to allocate memory for the SQL string\");k(h,n,this.eb,l);this.jb=this.eb;this.$a=this.pb=null}function c(h){this.filename=\"dbfile_\"+(4294967295*Math.random()>>>0);if(null!=h){var l=this.filename,p=l?r(\"//\"+l):\"/\";l=da(!0,!0);p=ea(p,(void 0!==l?l:438)&4095|32768,0);if(h){if(\"string\"===typeof h){for(var q=Array(h.length),B=\n0,ha=h.length;Bc;++c)f.parameters.push(d[\"viii\"[c]]);\nc=new WebAssembly.Function(f,a)}else{d=[1,0,1,96];f={i:127,j:126,f:125,d:124};d.push(3);for(c=0;3>c;++c)d.push(f[\"iii\"[c]]);d.push(0);d[1]=d.length-2;c=new Uint8Array([0,97,115,109,1,0,0,0].concat(d,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0]));c=new WebAssembly.Module(c);c=(new WebAssembly.Instance(c,{e:{f:a}})).exports.f}K.set(b,c)}Ka.set(a,b);a=b}return a}var La;e.wasmBinary&&(La=e.wasmBinary);var noExitRuntime=e.noExitRuntime||!0;\"object\"!==typeof WebAssembly&&I(\"no native wasm support detected\");\nfunction qa(a){var b=\"i32\";\"*\"===b.charAt(b.length-1)&&(b=\"i32\");switch(b){case \"i1\":z[a>>0]=0;break;case \"i8\":z[a>>0]=0;break;case \"i16\":Ma[a>>1]=0;break;case \"i32\":L[a>>2]=0;break;case \"i64\":M=[0,(N=0,1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];L[a>>2]=M[0];L[a+4>>2]=M[1];break;case \"float\":Na[a>>2]=0;break;case \"double\":Oa[a>>3]=0;break;default:I(\"invalid type for setValue: \"+b)}}\nfunction x(a,b){b=b||\"i8\";\"*\"===b.charAt(b.length-1)&&(b=\"i32\");switch(b){case \"i1\":return z[a>>0];case \"i8\":return z[a>>0];case \"i16\":return Ma[a>>1];case \"i32\":return L[a>>2];case \"i64\":return L[a>>2];case \"float\":return Na[a>>2];case \"double\":return Oa[a>>3];default:I(\"invalid type for getValue: \"+b)}return null}var Pa,Qa=!1;function assert(a,b){a||I(\"Assertion failed: \"+b)}function Ra(a){var b=e[\"_\"+a];assert(b,\"Cannot call unknown function \"+a+\", make sure it is exported\");return b}\nfunction Sa(a,b,c,d){var f={string:function(u){var C=0;if(null!==u&&void 0!==u&&0!==u){var H=(u.length<<2)+1;C=y(H);k(u,n,C,H)}return C},array:function(u){var C=y(u.length);z.set(u,C);return C}},g=Ra(a),m=[];a=0;if(d)for(var t=0;t=d);)++c;if(16f?d+=String.fromCharCode(f):(f-=65536,d+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else d+=String.fromCharCode(f)}return d}function A(a,b){return a?Wa(n,a,b):\"\"}\nfunction k(a,b,c,d){if(!(0=m){var t=a.charCodeAt(++g);m=65536+((m&1023)<<10)|t&1023}if(127>=m){if(c>=d)break;b[c++]=m}else{if(2047>=m){if(c+1>=d)break;b[c++]=192|m>>6}else{if(65535>=m){if(c+2>=d)break;b[c++]=224|m>>12}else{if(c+3>=d)break;b[c++]=240|m>>18;b[c++]=128|m>>12&63}b[c++]=128|m>>6&63}b[c++]=128|m&63}}b[c]=0;return c-f}\nfunction ba(a){for(var b=0,c=0;c=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}return b}function Xa(a){var b=ba(a)+1,c=ca(b);c&&k(a,z,c,b);return c}var Ya,z,n,Ma,L,Na,Oa;\nfunction Za(){var a=Pa.buffer;Ya=a;e.HEAP8=z=new Int8Array(a);e.HEAP16=Ma=new Int16Array(a);e.HEAP32=L=new Int32Array(a);e.HEAPU8=n=new Uint8Array(a);e.HEAPU16=new Uint16Array(a);e.HEAPU32=new Uint32Array(a);e.HEAPF32=Na=new Float32Array(a);e.HEAPF64=Oa=new Float64Array(a)}var K,$a=[],ab=[],bb=[];function cb(){var a=e.preRun.shift();$a.unshift(a)}var db=0,eb=null,fb=null;e.preloadedImages={};e.preloadedAudios={};\nfunction I(a){if(e.onAbort)e.onAbort(a);J(a);Qa=!0;throw new WebAssembly.RuntimeError(\"abort(\"+a+\"). Build with -s ASSERTIONS=1 for more info.\");}function gb(){return O.startsWith(\"data:application/octet-stream;base64,\")}var O;O=\"sql-wasm.wasm\";if(!gb()){var hb=O;O=e.locateFile?e.locateFile(hb,G):G+hb}function ib(){var a=O;try{if(a==O&&La)return new Uint8Array(La);if(Fa)return Fa(a);throw\"both async and sync fetching of the wasm failed\";}catch(b){I(b)}}\nfunction jb(){if(!La&&(ya||za)){if(\"function\"===typeof fetch&&!O.startsWith(\"file://\"))return fetch(O,{credentials:\"same-origin\"}).then(function(a){if(!a.ok)throw\"failed to load wasm binary file at '\"+O+\"'\";return a.arrayBuffer()}).catch(function(){return ib()});if(Ea)return new Promise(function(a,b){Ea(O,function(c){a(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return ib()})}var N,M;\nfunction kb(a){for(;0>2]=60*g;L[pb()>>2]=Number(b!=f);c=a(c);d=a(d);c=Xa(c);d=Xa(d);f>2]=c,L[qb()+4>>2]=d):(L[qb()>>2]=d,L[qb()+4>>2]=c)}}var nb;\nfunction ub(a,b){for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];\".\"===f?a.splice(d,1):\"..\"===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift(\"..\");return a}function r(a){var b=\"/\"===a.charAt(0),c=\"/\"===a.substr(-1);(a=ub(a.split(\"/\").filter(function(d){return!!d}),!b).join(\"/\"))||b||(a=\".\");a&&c&&(a+=\"/\");return(b?\"/\":\"\")+a}\nfunction vb(a){var b=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return\".\";b&&(b=b.substr(0,b.length-1));return a+b}function xb(a){if(\"/\"===a)return\"/\";a=r(a);a=a.replace(/\\/$/,\"\");var b=a.lastIndexOf(\"/\");return-1===b?a:a.substr(b+1)}\nfunction yb(){if(\"object\"===typeof crypto&&\"function\"===typeof crypto.getRandomValues){var a=new Uint8Array(1);return function(){crypto.getRandomValues(a);return a[0]}}if(Aa)try{var b=require(\"crypto\");return function(){return b.randomBytes(1)[0]}}catch(c){}return function(){I(\"randomDevice\")}}\nfunction zb(){for(var a=\"\",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:\"/\";if(\"string\"!==typeof b)throw new TypeError(\"Arguments to path.resolve must be strings\");if(!b)return\"\";a=b+\"/\"+a;b=\"/\"===b.charAt(0)}a=ub(a.split(\"/\").filter(function(d){return!!d}),!b).join(\"/\");return(b?\"/\":\"\")+a||\".\"}var Ab=[];function Bb(a,b){Ab[a]={input:[],output:[],cb:b};Cb(a,Db)}\nvar Db={open:function(a){var b=Ab[a.node.rdev];if(!b)throw new P(43);a.tty=b;a.seekable=!1},close:function(a){a.tty.cb.flush(a.tty)},flush:function(a){a.tty.cb.flush(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.cb.xb)throw new P(60);for(var f=0,g=0;g=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.Oa,a.Oa=new Uint8Array(b),0=a.node.Sa)return 0;a=Math.min(a.node.Sa-f,d);if(8b)throw new P(28);return b},sb:function(a,b,c){Q.vb(a.node,b+c);a.node.Sa=Math.max(a.node.Sa,b+c)},hb:function(a,b,c,d,f,g){if(0!==b)throw new P(28);if(32768!==(a.node.mode&61440))throw new P(43);a=a.node.Oa;if(g&2||a.buffer!==Ya){if(0>>0)%U.length}function Rb(a){var b=Qb(a.parent.id,a.name);if(U[b]===a)U[b]=a.bb;else for(b=U[b];b;){if(b.bb===a){b.bb=a.bb;break}b=b.bb}}\nfunction Jb(a,b){var c;if(c=(c=Sb(a,\"x\"))?c:a.Ma.lookup?0:2)throw new P(c,a);for(c=U[Qb(a.id,b)];c;c=c.bb){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.Ma.lookup(a,b)}function Hb(a,b,c,d){a=new Tb(a,b,c,d);b=Qb(a.parent.id,a.name);a.bb=U[b];return U[b]=a}function R(a){return 16384===(a&61440)}var Ub={r:0,\"r+\":2,w:577,\"w+\":578,a:1089,\"a+\":1090};function Vb(a){var b=[\"r\",\"w\",\"rw\"][a&3];a&512&&(b+=\"w\");return b}\nfunction Sb(a,b){if(Nb)return 0;if(!b.includes(\"r\")||a.mode&292){if(b.includes(\"w\")&&!(a.mode&146)||b.includes(\"x\")&&!(a.mode&73))return 2}else return 2;return 0}function Wb(a,b){try{return Jb(a,b),20}catch(c){}return Sb(a,\"wx\")}function Xb(a,b,c){try{var d=Jb(a,b)}catch(f){return f.Pa}if(a=Sb(a,\"wx\"))return a;if(c){if(!R(d.mode))return 54;if(d===d.parent||\"/\"===Pb(d))return 10}else if(R(d.mode))return 31;return 0}function Yb(a){var b=4096;for(a=a||0;a<=b;a++)if(!S[a])return a;throw new P(33);}\nfunction Zb(a,b){$b||($b=function(){},$b.prototype={});var c=new $b,d;for(d in a)c[d]=a[d];a=c;b=Yb(b);a.fd=b;return S[b]=a}var Gb={open:function(a){a.Na=Lb[a.node.rdev].Na;a.Na.open&&a.Na.open(a)},Za:function(){throw new P(70);}};function Cb(a,b){Lb[a]={Na:b}}\nfunction ac(a,b){var c=\"/\"===b,d=!b;if(c&&Kb)throw new P(10);if(!c&&!d){var f=W(b,{wb:!1});b=f.path;f=f.node;if(f.ab)throw new P(10);if(!R(f.mode))throw new P(54);}b={type:a,Tb:{},yb:b,Lb:[]};a=a.Wa(b);a.Wa=b;b.root=a;c?Kb=a:f&&(f.ab=b,f.Wa&&f.Wa.Lb.push(b))}function ea(a,b,c){var d=W(a,{parent:!0}).node;a=xb(a);if(!a||\".\"===a||\"..\"===a)throw new P(28);var f=Wb(d,a);if(f)throw new P(f);if(!d.Ma.gb)throw new P(63);return d.Ma.gb(d,a,b,c)}\nfunction X(a,b){return ea(a,(void 0!==b?b:511)&1023|16384,0)}function bc(a,b,c){\"undefined\"===typeof c&&(c=b,b=438);ea(a,b|8192,c)}function cc(a,b){if(!zb(a))throw new P(44);var c=W(b,{parent:!0}).node;if(!c)throw new P(44);b=xb(b);var d=Wb(c,b);if(d)throw new P(d);if(!c.Ma.symlink)throw new P(63);c.Ma.symlink(c,b,a)}\nfunction ua(a){var b=W(a,{parent:!0}).node,c=xb(a),d=Jb(b,c),f=Xb(b,c,!1);if(f)throw new P(f);if(!b.Ma.unlink)throw new P(63);if(d.ab)throw new P(10);try{V.willDeletePath&&V.willDeletePath(a)}catch(g){J(\"FS.trackingDelegate['willDeletePath']('\"+a+\"') threw an exception: \"+g.message)}b.Ma.unlink(b,c);Rb(d);try{if(V.onDeletePath)V.onDeletePath(a)}catch(g){J(\"FS.trackingDelegate['onDeletePath']('\"+a+\"') threw an exception: \"+g.message)}}\nfunction Ob(a){a=W(a).node;if(!a)throw new P(44);if(!a.Ma.readlink)throw new P(28);return zb(Pb(a.parent),a.Ma.readlink(a))}function dc(a,b){a=W(a,{Ya:!b}).node;if(!a)throw new P(44);if(!a.Ma.Ua)throw new P(63);return a.Ma.Ua(a)}function ec(a){return dc(a,!0)}function fa(a,b){a=\"string\"===typeof a?W(a,{Ya:!0}).node:a;if(!a.Ma.Ta)throw new P(63);a.Ma.Ta(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})}\nfunction fc(a){a=\"string\"===typeof a?W(a,{Ya:!0}).node:a;if(!a.Ma.Ta)throw new P(63);a.Ma.Ta(a,{timestamp:Date.now()})}function hc(a,b){if(0>b)throw new P(28);a=\"string\"===typeof a?W(a,{Ya:!0}).node:a;if(!a.Ma.Ta)throw new P(63);if(R(a.mode))throw new P(31);if(32768!==(a.mode&61440))throw new P(28);var c=Sb(a,\"w\");if(c)throw new P(c);a.Ma.Ta(a,{size:b,timestamp:Date.now()})}\nfunction v(a,b,c,d){if(\"\"===a)throw new P(44);if(\"string\"===typeof b){var f=Ub[b];if(\"undefined\"===typeof f)throw Error(\"Unknown file open mode: \"+b);b=f}c=b&64?(\"undefined\"===typeof c?438:c)&4095|32768:0;if(\"object\"===typeof a)var g=a;else{a=r(a);try{g=W(a,{Ya:!(b&131072)}).node}catch(m){}}f=!1;if(b&64)if(g){if(b&128)throw new P(20);}else g=ea(a,c,0),f=!0;if(!g)throw new P(44);8192===(g.mode&61440)&&(b&=-513);if(b&65536&&!R(g.mode))throw new P(54);if(!f&&(c=g?40960===(g.mode&61440)?32:R(g.mode)&&\n(\"r\"!==Vb(b)||b&512)?31:Sb(g,Vb(b)):44))throw new P(c);b&512&&hc(g,0);b&=-131713;d=Zb({node:g,path:Pb(g),flags:b,seekable:!0,position:0,Na:g.Na,Qb:[],error:!1},d);d.Na.open&&d.Na.open(d);!e.logReadFiles||b&1||(Kc||(Kc={}),a in Kc||(Kc[a]=1,J(\"FS.trackingDelegate error on read file: \"+a)));try{V.onOpenFile&&(g=0,1!==(b&2097155)&&(g|=1),0!==(b&2097155)&&(g|=2),V.onOpenFile(a,g))}catch(m){J(\"FS.trackingDelegate['onOpenFile']('\"+a+\"', flags) threw an exception: \"+m.message)}return d}\nfunction la(a){if(null===a.fd)throw new P(8);a.ob&&(a.ob=null);try{a.Na.close&&a.Na.close(a)}catch(b){throw b;}finally{S[a.fd]=null}a.fd=null}function Lc(a,b,c){if(null===a.fd)throw new P(8);if(!a.seekable||!a.Na.Za)throw new P(70);if(0!=c&&1!=c&&2!=c)throw new P(28);a.position=a.Na.Za(a,b,c);a.Qb=[]}\nfunction Nc(a,b,c,d,f){if(0>d||0>f)throw new P(28);if(null===a.fd)throw new P(8);if(1===(a.flags&2097155))throw new P(8);if(R(a.node.mode))throw new P(31);if(!a.Na.read)throw new P(28);var g=\"undefined\"!==typeof f;if(!g)f=a.position;else if(!a.seekable)throw new P(70);b=a.Na.read(a,b,c,d,f);g||(a.position+=b);return b}\nfunction ka(a,b,c,d,f,g){if(0>d||0>f)throw new P(28);if(null===a.fd)throw new P(8);if(0===(a.flags&2097155))throw new P(8);if(R(a.node.mode))throw new P(31);if(!a.Na.write)throw new P(28);a.seekable&&a.flags&1024&&Lc(a,0,2);var m=\"undefined\"!==typeof f;if(!m)f=a.position;else if(!a.seekable)throw new P(70);b=a.Na.write(a,b,c,d,f,g);m||(a.position+=b);try{if(a.path&&V.onWriteToFile)V.onWriteToFile(a.path)}catch(t){J(\"FS.trackingDelegate['onWriteToFile']('\"+a.path+\"') threw an exception: \"+t.message)}return b}\nfunction ta(a){var b={encoding:\"binary\"};b=b||{};b.flags=b.flags||0;b.encoding=b.encoding||\"binary\";if(\"utf8\"!==b.encoding&&\"binary\"!==b.encoding)throw Error('Invalid encoding type \"'+b.encoding+'\"');var c,d=v(a,b.flags);a=dc(a).size;var f=new Uint8Array(a);Nc(d,f,0,a,0);\"utf8\"===b.encoding?c=Wa(f,0):\"binary\"===b.encoding&&(c=f);la(d);return c}\nfunction Oc(){P||(P=function(a,b){this.node=b;this.Pb=function(c){this.Pa=c};this.Pb(a);this.message=\"FS error\"},P.prototype=Error(),P.prototype.constructor=P,[44].forEach(function(a){Ib[a]=new P(a);Ib[a].stack=\"\"}))}var Pc;function da(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c}\nfunction Qc(a,b,c){a=r(\"/dev/\"+a);var d=da(!!b,!!c);Rc||(Rc=64);var f=Rc++<<8|0;Cb(f,{open:function(g){g.seekable=!1},close:function(){c&&c.buffer&&c.buffer.length&&c(10)},read:function(g,m,t,w){for(var u=0,C=0;C>2]=d.dev;L[c+4>>2]=0;L[c+8>>2]=d.ino;L[c+12>>2]=d.mode;L[c+16>>2]=d.nlink;L[c+20>>2]=d.uid;L[c+24>>2]=d.gid;L[c+28>>2]=d.rdev;L[c+32>>2]=0;M=[d.size>>>0,(N=d.size,1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];L[c+40>>2]=M[0];L[c+44>>2]=M[1];L[c+48>>2]=4096;L[c+52>>2]=d.blocks;L[c+56>>2]=d.atime.getTime()/1E3|0;L[c+60>>2]=\n0;L[c+64>>2]=d.mtime.getTime()/1E3|0;L[c+68>>2]=0;L[c+72>>2]=d.ctime.getTime()/1E3|0;L[c+76>>2]=0;M=[d.ino>>>0,(N=d.ino,1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];L[c+80>>2]=M[0];L[c+84>>2]=M[1];return 0}var Uc=void 0;function Vc(){Uc+=4;return L[Uc-4>>2]}function Z(a){a=S[a];if(!a)throw new P(8);return a}var Wc;\nAa?Wc=function(){var a=process.hrtime();return 1E3*a[0]+a[1]/1E6}:\"undefined\"!==typeof dateNow?Wc=dateNow:Wc=function(){return performance.now()};var Xc={};function Yc(){if(!Zc){var a={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:(\"object\"===typeof navigator&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\",_:xa||\"./this.program\"},b;for(b in Xc)void 0===Xc[b]?delete a[b]:a[b]=Xc[b];var c=[];for(b in a)c.push(b+\"=\"+a[b]);Zc=c}return Zc}var Zc;\nfunction Tb(a,b,c,d){a||(a=this);this.parent=a;this.Wa=a.Wa;this.ab=null;this.id=Mb++;this.name=b;this.mode=c;this.Ma={};this.Na={};this.rdev=d}Object.defineProperties(Tb.prototype,{read:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}}});Oc();U=Array(4096);ac(Q,\"/\");X(\"/tmp\");X(\"/home\");X(\"/home/web_user\");\n(function(){X(\"/dev\");Cb(259,{read:function(){return 0},write:function(b,c,d,f){return f}});bc(\"/dev/null\",259);Bb(1280,Eb);Bb(1536,Fb);bc(\"/dev/tty\",1280);bc(\"/dev/tty1\",1536);var a=yb();Qc(\"random\",a);Qc(\"urandom\",a);X(\"/dev/shm\");X(\"/dev/shm/tmp\")})();\n(function(){X(\"/proc\");var a=X(\"/proc/self\");X(\"/proc/self/fd\");ac({Wa:function(){var b=Hb(a,\"fd\",16895,73);b.Ma={lookup:function(c,d){var f=S[+d];if(!f)throw new P(8);c={parent:null,Wa:{yb:\"fake\"},Ma:{readlink:function(){return f.path}}};return c.parent=c}};return b}},\"/proc/self/fd\")})();function ma(a,b){var c=Array(ba(a)+1);a=k(a,c,0,c.length);b&&(c.length=a);return c}\nvar cd={a:function(a,b,c,d){I(\"Assertion failed: \"+A(a)+\", at: \"+[b?A(b):\"unknown filename\",c,d?A(d):\"unknown function\"])},s:function(a,b){mb();a=new Date(1E3*L[a>>2]);L[b>>2]=a.getSeconds();L[b+4>>2]=a.getMinutes();L[b+8>>2]=a.getHours();L[b+12>>2]=a.getDate();L[b+16>>2]=a.getMonth();L[b+20>>2]=a.getFullYear()-1900;L[b+24>>2]=a.getDay();var c=new Date(a.getFullYear(),0,1);L[b+28>>2]=(a.getTime()-c.getTime())/864E5|0;L[b+36>>2]=-(60*a.getTimezoneOffset());var d=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();\nc=c.getTimezoneOffset();a=(d!=c&&a.getTimezoneOffset()==Math.min(c,d))|0;L[b+32>>2]=a;a=L[qb()+(a?4:0)>>2];L[b+40>>2]=a;return b},F:function(a,b){try{a=A(a);if(b&-8)var c=-28;else{var d;(d=W(a,{Ya:!0}).node)?(a=\"\",b&4&&(a+=\"r\"),b&2&&(a+=\"w\"),b&1&&(a+=\"x\"),c=a&&Sb(d,a)?-2:0):c=-44}return c}catch(f){return\"undefined\"!==typeof Y&&f instanceof P||I(f),-f.Pa}},h:function(a,b){try{return a=A(a),fa(a,b),0}catch(c){return\"undefined\"!==typeof Y&&c instanceof P||I(c),-c.Pa}},y:function(a){try{return a=A(a),\nfc(a),0}catch(b){return\"undefined\"!==typeof Y&&b instanceof P||I(b),-b.Pa}},i:function(a,b){try{var c=S[a];if(!c)throw new P(8);fa(c.node,b);return 0}catch(d){return\"undefined\"!==typeof Y&&d instanceof P||I(d),-d.Pa}},z:function(a){try{var b=S[a];if(!b)throw new P(8);fc(b.node);return 0}catch(c){return\"undefined\"!==typeof Y&&c instanceof P||I(c),-c.Pa}},b:function(a,b,c){Uc=c;try{var d=Z(a);switch(b){case 0:var f=Vc();return 0>f?-28:v(d.path,d.flags,0,f).fd;case 1:case 2:return 0;case 3:return d.flags;\ncase 4:return f=Vc(),d.flags|=f,0;case 12:return f=Vc(),Ma[f+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return L[$c()>>2]=28,-1;default:return-28}}catch(g){return\"undefined\"!==typeof Y&&g instanceof P||I(g),-g.Pa}},j:function(a,b){try{var c=Z(a);return Tc(dc,c.path,b)}catch(d){return\"undefined\"!==typeof Y&&d instanceof P||I(d),-d.Pa}},E:function(a,b,c){try{var d=S[a];if(!d)throw new P(8);if(0===(d.flags&2097155))throw new P(28);hc(d.node,c);return 0}catch(f){return\"undefined\"!==\ntypeof Y&&f instanceof P||I(f),-f.Pa}},C:function(a,b){try{if(0===b)return-28;if(b=c)var d=-28;else{var f=\nOb(a),g=Math.min(c,ba(f)),m=z[b+g];k(f,n,b,c+1);z[b+g]=m;d=g}return d}catch(t){return\"undefined\"!==typeof Y&&t instanceof P||I(t),-t.Pa}},u:function(a){try{a=A(a);var b=W(a,{parent:!0}).node,c=xb(a),d=Jb(b,c),f=Xb(b,c,!0);if(f)throw new P(f);if(!b.Ma.rmdir)throw new P(63);if(d.ab)throw new P(10);try{V.willDeletePath&&V.willDeletePath(a)}catch(g){J(\"FS.trackingDelegate['willDeletePath']('\"+a+\"') threw an exception: \"+g.message)}b.Ma.rmdir(b,c);Rb(d);try{if(V.onDeletePath)V.onDeletePath(a)}catch(g){J(\"FS.trackingDelegate['onDeletePath']('\"+\na+\"') threw an exception: \"+g.message)}return 0}catch(g){return\"undefined\"!==typeof Y&&g instanceof P||I(g),-g.Pa}},e:function(a,b){try{return a=A(a),Tc(dc,a,b)}catch(c){return\"undefined\"!==typeof Y&&c instanceof P||I(c),-c.Pa}},w:function(a){try{return a=A(a),ua(a),0}catch(b){return\"undefined\"!==typeof Y&&b instanceof P||I(b),-b.Pa}},l:function(){return 2147483648},n:function(a,b,c){n.copyWithin(a,b,b+c)},c:function(a){var b=n.length;a>>>=0;if(2147483648=c;c*=2){var d=b*\n(1+.2/c);d=Math.min(d,a+100663296);d=Math.max(a,d);0>>16);Za();var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},r:function(a){for(var b=Wc();Wc()-b>2]=g;for(g=0;g>0]=d.charCodeAt(g);z[f>>0]=0;c+=d.length+1});return 0}catch(d){return\"undefined\"!==typeof Y&&d instanceof P||I(d),d.Pa}},q:function(a,b){try{var c=\nYc();L[a>>2]=c.length;var d=0;c.forEach(function(f){d+=f.length+1});L[b>>2]=d;return 0}catch(f){return\"undefined\"!==typeof Y&&f instanceof P||I(f),f.Pa}},f:function(a){try{var b=Z(a);la(b);return 0}catch(c){return\"undefined\"!==typeof Y&&c instanceof P||I(c),c.Pa}},o:function(a,b){try{var c=Z(a);z[b>>0]=c.tty?2:R(c.mode)?3:40960===(c.mode&61440)?7:4;return 0}catch(d){return\"undefined\"!==typeof Y&&d instanceof P||I(d),d.Pa}},t:function(a,b,c,d){try{a:{for(var f=Z(a),g=a=0;g>\n2],t=Nc(f,z,L[b+8*g>>2],m,void 0);if(0>t){var w=-1;break a}a+=t;if(t>2]=w;return 0}catch(u){return\"undefined\"!==typeof Y&&u instanceof P||I(u),u.Pa}},m:function(a,b,c,d,f){try{var g=Z(a);a=4294967296*c+(b>>>0);if(-9007199254740992>=a||9007199254740992<=a)return-61;Lc(g,a,d);M=[g.position>>>0,(N=g.position,1<=+Math.abs(N)?0>>0:~~+Math.ceil((N-+(~~N>>>0))/4294967296)>>>0:0)];L[f>>2]=M[0];L[f+4>>2]=M[1];g.ob&&0===a&&0===d&&(g.ob=\nnull);return 0}catch(m){return\"undefined\"!==typeof Y&&m instanceof P||I(m),m.Pa}},D:function(a){try{var b=Z(a);return b.Na&&b.Na.fsync?-b.Na.fsync(b):0}catch(c){return\"undefined\"!==typeof Y&&c instanceof P||I(c),c.Pa}},v:function(a,b,c,d){try{a:{for(var f=Z(a),g=a=0;g>2],L[b+(8*g+4)>>2],void 0);if(0>m){var t=-1;break a}a+=m}t=a}L[d>>2]=t;return 0}catch(w){return\"undefined\"!==typeof Y&&w instanceof P||I(w),w.Pa}},g:function(a){var b=Date.now();L[a>>2]=b/1E3|0;L[a+4>>2]=\nb%1E3*1E3|0;return 0},K:function(a){var b=Date.now()/1E3|0;a&&(L[a>>2]=b);return b},B:function(a,b){if(b){var c=b+8;b=1E3*L[c>>2];b+=L[c+4>>2]/1E3}else b=Date.now();a=A(a);try{var d=W(a,{Ya:!0}).node;d.Ma.Ta(d,{timestamp:Math.max(b,b)});var f=0}catch(g){if(!(g instanceof P)){b:{f=Error();if(!f.stack){try{throw Error();}catch(m){f=m}if(!f.stack){f=\"(no stack trace available)\";break b}}f=f.stack.toString()}e.extraStackTrace&&(f+=\"\\n\"+e.extraStackTrace());f=lb(f);throw g+\" : \"+f;}f=g.Pa;L[$c()>>2]=f;\nf=-1}return f}};\n(function(){function a(f){e.asm=f.exports;Pa=e.asm.L;Za();K=e.asm.Da;ab.unshift(e.asm.M);db--;e.monitorRunDependencies&&e.monitorRunDependencies(db);0==db&&(null!==eb&&(clearInterval(eb),eb=null),fb&&(f=fb,fb=null,f()))}function b(f){a(f.instance)}function c(f){return jb().then(function(g){return WebAssembly.instantiate(g,d)}).then(f,function(g){J(\"failed to asynchronously prepare wasm: \"+g);I(g)})}var d={a:cd};db++;e.monitorRunDependencies&&e.monitorRunDependencies(db);if(e.instantiateWasm)try{return e.instantiateWasm(d,a)}catch(f){return J(\"Module.instantiateWasm callback failed with error: \"+\nf),!1}(function(){return La||\"function\"!==typeof WebAssembly.instantiateStreaming||gb()||O.startsWith(\"file://\")||\"function\"!==typeof fetch?c(b):fetch(O,{credentials:\"same-origin\"}).then(function(f){return WebAssembly.instantiateStreaming(f,d).then(b,function(g){J(\"wasm streaming compile failed: \"+g);J(\"falling back to ArrayBuffer instantiation\");return c(b)})})})();return{}})();e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.M).apply(null,arguments)};\nvar bd=e._memset=function(){return(bd=e._memset=e.asm.N).apply(null,arguments)};e._sqlite3_free=function(){return(e._sqlite3_free=e.asm.O).apply(null,arguments)};var $c=e.___errno_location=function(){return($c=e.___errno_location=e.asm.P).apply(null,arguments)};e._sqlite3_step=function(){return(e._sqlite3_step=e.asm.Q).apply(null,arguments)};e._sqlite3_finalize=function(){return(e._sqlite3_finalize=e.asm.R).apply(null,arguments)};\ne._sqlite3_prepare_v2=function(){return(e._sqlite3_prepare_v2=e.asm.S).apply(null,arguments)};e._sqlite3_reset=function(){return(e._sqlite3_reset=e.asm.T).apply(null,arguments)};e._sqlite3_clear_bindings=function(){return(e._sqlite3_clear_bindings=e.asm.U).apply(null,arguments)};e._sqlite3_value_blob=function(){return(e._sqlite3_value_blob=e.asm.V).apply(null,arguments)};e._sqlite3_value_text=function(){return(e._sqlite3_value_text=e.asm.W).apply(null,arguments)};\ne._sqlite3_value_bytes=function(){return(e._sqlite3_value_bytes=e.asm.X).apply(null,arguments)};e._sqlite3_value_double=function(){return(e._sqlite3_value_double=e.asm.Y).apply(null,arguments)};e._sqlite3_value_int=function(){return(e._sqlite3_value_int=e.asm.Z).apply(null,arguments)};e._sqlite3_value_type=function(){return(e._sqlite3_value_type=e.asm._).apply(null,arguments)};e._sqlite3_result_blob=function(){return(e._sqlite3_result_blob=e.asm.$).apply(null,arguments)};\ne._sqlite3_result_double=function(){return(e._sqlite3_result_double=e.asm.aa).apply(null,arguments)};e._sqlite3_result_error=function(){return(e._sqlite3_result_error=e.asm.ba).apply(null,arguments)};e._sqlite3_result_int=function(){return(e._sqlite3_result_int=e.asm.ca).apply(null,arguments)};e._sqlite3_result_int64=function(){return(e._sqlite3_result_int64=e.asm.da).apply(null,arguments)};e._sqlite3_result_null=function(){return(e._sqlite3_result_null=e.asm.ea).apply(null,arguments)};\ne._sqlite3_result_text=function(){return(e._sqlite3_result_text=e.asm.fa).apply(null,arguments)};e._sqlite3_column_count=function(){return(e._sqlite3_column_count=e.asm.ga).apply(null,arguments)};e._sqlite3_data_count=function(){return(e._sqlite3_data_count=e.asm.ha).apply(null,arguments)};e._sqlite3_column_blob=function(){return(e._sqlite3_column_blob=e.asm.ia).apply(null,arguments)};e._sqlite3_column_bytes=function(){return(e._sqlite3_column_bytes=e.asm.ja).apply(null,arguments)};\ne._sqlite3_column_double=function(){return(e._sqlite3_column_double=e.asm.ka).apply(null,arguments)};e._sqlite3_column_text=function(){return(e._sqlite3_column_text=e.asm.la).apply(null,arguments)};e._sqlite3_column_type=function(){return(e._sqlite3_column_type=e.asm.ma).apply(null,arguments)};e._sqlite3_column_name=function(){return(e._sqlite3_column_name=e.asm.na).apply(null,arguments)};e._sqlite3_bind_blob=function(){return(e._sqlite3_bind_blob=e.asm.oa).apply(null,arguments)};\ne._sqlite3_bind_double=function(){return(e._sqlite3_bind_double=e.asm.pa).apply(null,arguments)};e._sqlite3_bind_int=function(){return(e._sqlite3_bind_int=e.asm.qa).apply(null,arguments)};e._sqlite3_bind_text=function(){return(e._sqlite3_bind_text=e.asm.ra).apply(null,arguments)};e._sqlite3_bind_parameter_index=function(){return(e._sqlite3_bind_parameter_index=e.asm.sa).apply(null,arguments)};e._sqlite3_sql=function(){return(e._sqlite3_sql=e.asm.ta).apply(null,arguments)};\ne._sqlite3_normalized_sql=function(){return(e._sqlite3_normalized_sql=e.asm.ua).apply(null,arguments)};e._sqlite3_errmsg=function(){return(e._sqlite3_errmsg=e.asm.va).apply(null,arguments)};e._sqlite3_exec=function(){return(e._sqlite3_exec=e.asm.wa).apply(null,arguments)};e._sqlite3_changes=function(){return(e._sqlite3_changes=e.asm.xa).apply(null,arguments)};e._sqlite3_close_v2=function(){return(e._sqlite3_close_v2=e.asm.ya).apply(null,arguments)};\ne._sqlite3_create_function_v2=function(){return(e._sqlite3_create_function_v2=e.asm.za).apply(null,arguments)};e._sqlite3_open=function(){return(e._sqlite3_open=e.asm.Aa).apply(null,arguments)};var ca=e._malloc=function(){return(ca=e._malloc=e.asm.Ba).apply(null,arguments)},oa=e._free=function(){return(oa=e._free=e.asm.Ca).apply(null,arguments)};e._RegisterExtensionFunctions=function(){return(e._RegisterExtensionFunctions=e.asm.Ea).apply(null,arguments)};\nvar qb=e.__get_tzname=function(){return(qb=e.__get_tzname=e.asm.Fa).apply(null,arguments)},pb=e.__get_daylight=function(){return(pb=e.__get_daylight=e.asm.Ga).apply(null,arguments)},ob=e.__get_timezone=function(){return(ob=e.__get_timezone=e.asm.Ha).apply(null,arguments)},pa=e.stackSave=function(){return(pa=e.stackSave=e.asm.Ia).apply(null,arguments)},ra=e.stackRestore=function(){return(ra=e.stackRestore=e.asm.Ja).apply(null,arguments)},y=e.stackAlloc=function(){return(y=e.stackAlloc=e.asm.Ka).apply(null,\narguments)},ad=e._memalign=function(){return(ad=e._memalign=e.asm.La).apply(null,arguments)};e.cwrap=function(a,b,c,d){c=c||[];var f=c.every(function(g){return\"number\"===g});return\"string\"!==b&&f&&!d?Ra(a):function(){return Sa(a,b,c,arguments)}};e.UTF8ToString=A;e.stackSave=pa;e.stackRestore=ra;e.stackAlloc=y;var dd;fb=function ed(){dd||fd();dd||(fb=ed)};\nfunction fd(){function a(){if(!dd&&(dd=!0,e.calledRun=!0,!Qa)){e.noFSInit||Pc||(Pc=!0,Oc(),e.stdin=e.stdin,e.stdout=e.stdout,e.stderr=e.stderr,e.stdin?Qc(\"stdin\",e.stdin):cc(\"/dev/tty\",\"/dev/stdin\"),e.stdout?Qc(\"stdout\",null,e.stdout):cc(\"/dev/tty\",\"/dev/stdout\"),e.stderr?Qc(\"stderr\",null,e.stderr):cc(\"/dev/tty1\",\"/dev/stderr\"),v(\"/dev/stdin\",0),v(\"/dev/stdout\",1),v(\"/dev/stderr\",1));Nb=!1;kb(ab);if(e.onRuntimeInitialized)e.onRuntimeInitialized();if(e.postRun)for(\"function\"==typeof e.postRun&&(e.postRun=\n[e.postRun]);e.postRun.length;){var b=e.postRun.shift();bb.unshift(b)}kb(bb)}}if(!(0 */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var indexOf = function (xs, item) {\n if (xs.indexOf) return xs.indexOf(item);\n else for (var i = 0; i < xs.length; i++) {\n if (xs[i] === item) return i;\n }\n return -1;\n};\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n if (context) {\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n }\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.isContext = function (context) {\n return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","module.exports = require('./lib/_stream_duplex.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve\n });\n return curve;\n }\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'\n ]\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'\n ]\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5'\n ]\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f'\n ]\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650'\n ]\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9'\n ]\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658'\n ]\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3'\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15'\n }\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre\n ]\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.REQUIRED = true;\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","module.exports = require('./browser/algorithms.json')\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\n\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n process.nextTick(function () {\n callback(null, out)\n })\n }, function (e) {\n process.nextTick(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n return process.nextTick(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","module.exports = require('./lib/_stream_writable.js');\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16)\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 }\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n};\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul)\n }\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1)\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1)\n }\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point))\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point))\n }\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate)\n }\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (var i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (var i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n var header = new Buffer(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n var lenOctets = 1;\n for (var i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n var header = new Buffer(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n var buf = new Buffer(str.length * 2);\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s\\.]+/g);\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (var i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n var size = 0;\n for (var i = 0; i < id.length; i++) {\n var ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n var objid = new Buffer(size);\n var offset = objid.length - 1;\n for (var i = id.length - 1; i >= 0; i--) {\n var ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = new Buffer(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var size = num.length;\n if (num.length === 0)\n size++;\n\n var out = new Buffer(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n var size = 1;\n for (var i = num; i >= 0x100; i >>= 8)\n size++;\n\n var out = new Array(size);\n for (var i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null)\n return false;\n\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this._strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n var z = 0;\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n var b;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n b = c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n\n r |= b;\n z |= b;\n }\n\n assert(!(z & 0xf0), 'Invalid character in ' + str);\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line no-undef\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n if (this.curve.twisted) {\n // E = a * C\n var e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n var h = this.z.redSqr();\n // J = F - 2 * H\n var j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n var e = c.redAdd(d);\n // H = (c * Z1)^2\n var h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n var j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","module.exports = {};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'\n ]\n ]\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'\n ]\n ]\n }\n};\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","var base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = require('events').EventEmitter;\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength)\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r\\+\\/\\=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r\\+\\/\\=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = new Buffer(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","import sqliteParser from 'sqlite-parser'\n\nexport default {\n * generateChunks (data, size) {\n const matrix = Object.keys(data).map(col => data[col])\n const [row] = matrix\n const transposedMatrix = row.map((value, column) => matrix.map(row => row[column]))\n\n const count = Math.ceil(transposedMatrix.length / size)\n\n for (let i = 0; i <= count - 1; i++) {\n const start = size * i\n const end = start + size\n yield transposedMatrix.slice(start, end)\n }\n },\n\n getInsertStmt (tabName, columns) {\n const colList = `\"${columns.join('\", \"')}\"`\n const params = columns.map(() => '?').join(', ')\n return `INSERT INTO \"${tabName}\" (${colList}) VALUES (${params});`\n },\n\n getCreateStatement (tabName, data) {\n let result = `CREATE table \"${tabName}\"(`\n for (const col in data) {\n // Get the first row of values to determine types\n const value = data[col][0]\n let type = ''\n switch (typeof value) {\n case 'number': {\n type = 'REAL'\n break\n }\n case 'boolean': {\n type = 'INTEGER'\n break\n }\n case 'string': {\n type = 'TEXT'\n break\n }\n default: type = 'TEXT'\n }\n result += `\"${col}\" ${type}, `\n }\n\n result = result.replace(/,\\s$/, ');')\n return result\n },\n\n getAst (sql) {\n // There is a bug is sqlite-parser\n // It throws an error if tokenizer has an arguments:\n // https://github.com/codeschool/sqlite-parser/issues/59\n const fixedSql = sql\n .replace(/(tokenize=[^,]+)\"tokenchars=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"remove_diacritics=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"separators=.+?\"/, '$1')\n .replace(/tokenize=.+?(,|\\))/, 'tokenize=unicode61$1')\n\n return sqliteParser(fixedSql)\n },\n\n /*\n * Return an array of columns with name and type. E.g.:\n * [\n * { name: 'id', type: 'INTEGER' },\n * { name: 'title', type: 'NVARCHAR(30)' },\n * ]\n */\n getColumns (sql) {\n const columns = []\n const ast = this.getAst(sql)\n\n const columnDefinition = ast.statement[0].format === 'table'\n ? ast.statement[0].definition\n : ast.statement[0].result.args.expression // virtual table\n\n columnDefinition.forEach(item => {\n if (item.variant === 'column' && ['identifier', 'definition'].includes(item.type)) {\n let type = item.datatype ? item.datatype.variant : 'N/A'\n if (item.datatype && item.datatype.args) {\n type = type + '(' + item.datatype.args.expression[0].value\n if (item.datatype.args.expression.length === 2) {\n type = type + ', ' + item.datatype.args.expression[1].value\n }\n type = type + ')'\n }\n columns.push({ name: item.name, type: type })\n }\n })\n return columns\n }\n}\n","import initSqlJs from 'sql.js/dist/sql-wasm.js'\nimport dbUtils from './_statements'\n\nlet SQL = null\nconst sqlModuleReady = initSqlJs().then(sqlModule => { SQL = sqlModule })\n\nfunction _getDataSourcesFromSqlResult (sqlResult) {\n if (!sqlResult) {\n return {}\n }\n const dataSorces = {}\n sqlResult.columns.forEach((column, index) => {\n dataSorces[column] = sqlResult.values.map(row => row[index])\n })\n return dataSorces\n}\n\nexport default class Sql {\n constructor () {\n this.db = null\n }\n\n static build () {\n return sqlModuleReady\n .then(() => {\n return new Sql()\n })\n }\n\n createDb (buffer) {\n if (this.db != null) this.db.close()\n this.db = new SQL.Database(buffer)\n return this.db\n }\n\n open (buffer) {\n this.createDb(buffer && new Uint8Array(buffer))\n return {\n ready: true\n }\n }\n\n exec (sql, params) {\n if (this.db === null) {\n this.createDb()\n }\n if (!sql) {\n throw new Error('exec: Missing query string')\n }\n const sqlResults = this.db.exec(sql, params)\n return sqlResults.map(result => _getDataSourcesFromSqlResult(result))\n }\n\n import (tabName, data, progressCounterId, progressCallback, chunkSize = 1500) {\n if (this.db === null) {\n this.createDb()\n }\n const columns = Object.keys(data)\n const rowCount = data[columns[0]].length\n this.db.exec(dbUtils.getCreateStatement(tabName, data))\n const chunks = dbUtils.generateChunks(data, chunkSize)\n const chunksAmount = Math.ceil(rowCount / chunkSize)\n let count = 0\n const insertStr = dbUtils.getInsertStmt(tabName, columns)\n const insertStmt = this.db.prepare(insertStr)\n\n progressCallback({ progress: 0, id: progressCounterId })\n for (const chunk of chunks) {\n this.db.exec('BEGIN')\n for (const row of chunk) {\n insertStmt.run(row)\n }\n this.db.exec('COMMIT')\n count++\n progressCallback({ progress: 100 * (count / chunksAmount), id: progressCounterId })\n }\n\n return {\n finish: true\n }\n }\n\n export () {\n return this.db.export()\n }\n\n close () {\n if (this.db) {\n this.db.close()\n }\n return {\n finished: true\n }\n }\n}\n","import registerPromiseWorker from 'promise-worker/register'\nimport Sql from './_sql'\n\nconst sqlReady = Sql.build()\n\nfunction processMsg (sql) {\n const data = this\n switch (data && data.action) {\n case 'open':\n return sql.open(data.buffer)\n case 'reopen':\n return sql.open(sql.export())\n case 'exec':\n return sql.exec(data.sql, data.params)\n case 'import':\n return sql.import(\n data.tabName,\n data.data,\n data.progressCounterId,\n postMessage\n )\n case 'export':\n return sql.export()\n case 'close':\n return sql.close()\n default:\n throw new Error('Invalid action : ' + (data && data.action))\n }\n}\n\nfunction onError (error) {\n return {\n error: error.message\n }\n}\n\nregisterPromiseWorker(data => {\n return sqlReady\n .then(processMsg.bind(data))\n .catch(onError)\n})\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\n\n// `RegExp.prototype.flags` getter\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nif (DESCRIPTORS && (/./g.flags != 'g' || UNSUPPORTED_Y)) {\n objectDefinePropertyModule.f(RegExp.prototype, 'flags', {\n configurable: true,\n get: regExpFlags\n });\n}\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","module.exports = require('events').EventEmitter;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new NativeArrayBuffer(); // eslint-disable-line no-new\n new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","var inherits = require('inherits');\nvar Reporter = require('../base').Reporter;\nvar Buffer = require('buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n var res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!(item instanceof EncoderBuffer))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = new Buffer(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","/*!\n * sqlite-parser - v1.0.1\n * @copyright 2015-2017 Code School (http://codeschool.com)\n * @author Nick Wronski \n */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.sqliteParser = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o0){for(i=1,j=1;i0;},function(d,e){return{'args':Object.assign(e,d)};},function(s){return{'filter':keyNode(s)};},peg$otherExpectation(\"Error Message\"),function(m){return m;},peg$otherExpectation(\"Statement\"),function(m,s){return Object.assign(s,m);},peg$otherExpectation(\"QUERY PLAN\"),function(e,q){return{'explain':isOkay(e)};},peg$otherExpectation(\"QUERY PLAN Keyword\"),function(q,p){return foldStringKey([q,p]);},peg$otherExpectation(\"END Transaction Statement\"),function(s,t){return{'type':'statement','variant':'transaction','action':'commit'};},peg$otherExpectation(\"BEGIN Transaction Statement\"),function(s,m,t,n){return Object.assign({'type':'statement','variant':'transaction','action':'begin'},m,n);},function(t){return t;},function(m){return{'defer':keyNode(m)};},peg$otherExpectation(\"ROLLBACK Statement\"),function(s,n){return Object.assign({'type':'statement','variant':'transaction','action':'rollback'},n);},peg$otherExpectation(\"TO Clause\"),function(n){return{'savepoint':n};},function(s){return keyNode(s);},peg$otherExpectation(\"SAVEPOINT Statement\"),function(s,n){return{'type':'statement','variant':s,'target':n};},peg$otherExpectation(\"RELEASE Statement\"),function(s,a,n){return{'type':'statement','variant':keyNode(s),'target':n};},peg$otherExpectation(\"ALTER TABLE Statement\"),function(s,n,e){return Object.assign({'type':'statement','variant':keyNode(s),'target':n},e);},peg$otherExpectation(\"ALTER TABLE Keyword\"),function(a,t){return foldStringKey([a,t]);},peg$otherExpectation(\"RENAME TO Keyword\"),function(s,n){return{'action':keyNode(s),'name':n};},peg$otherExpectation(\"ADD COLUMN Keyword\"),function(s,d){return{'action':keyNode(s),'definition':d};},function(w,s){return Object.assign(s,w);},peg$otherExpectation(\"WITH Clause\"),function(s,v,t){var recursive={'variant':isOkay(v)?'recursive':'common'};if(isArrayOkay(t)){t=t.map(function(elem){return Object.assign(elem,recursive);});}return{'with':t};},function(f,r){return flattenAll([f,r]);},peg$otherExpectation(\"Common Table Expression\"),function(t,s){return Object.assign({'type':'expression','format':'table','variant':'common','target':t},s);},function(s){return{'expression':s};},function(w,s){return Object.assign(s,w);},peg$otherExpectation(\"ATTACH Statement\"),function(a,b,e,n){return{'type':'statement','variant':keyNode(a),'target':n,'attach':e};},peg$otherExpectation(\"DETACH Statement\"),function(d,b,n){return{'type':'statement','variant':keyNode(d),'target':n};},peg$otherExpectation(\"VACUUM Statement\"),function(v,t){return Object.assign({'type':'statement','variant':'vacuum'},t);},function(t){return{'target':t};},peg$otherExpectation(\"ANALYZE Statement\"),function(s,a){return Object.assign({'type':'statement','variant':keyNode(s)},a);},function(n){return{'target':n['name']};},peg$otherExpectation(\"REINDEX Statement\"),function(a){return{'target':a['name']};},peg$otherExpectation(\"PRAGMA Statement\"),function(s,n,v){return{'type':'statement','variant':keyNode(s),'target':n,'args':{'type':'expression','variant':'list','expression':v}};},function(v){return v;},function(v){return /^(yes|no|on|off|false|true|0|1)$/i.test(v);},function(v){return{'type':'literal','variant':'boolean','normalized':/^(yes|on|true|1)$/i.test(v)?'1':'0','value':v};},function(n){return keyNode(n);},function(n){return{'type':'identifier','variant':'name','name':n};},peg$otherExpectation(\"SELECT Statement\"),function(s,o,l){return Object.assign(s,o,l);},peg$otherExpectation(\"ORDER BY Clause\"),function(d){return{'order':d['result']};},peg$otherExpectation(\"LIMIT Clause\"),function(s,e,d){return{'limit':Object.assign({'type':'expression','variant':'limit','start':e},d)};},peg$otherExpectation(\"OFFSET Clause\"),function(o,e){return{'offset':e};},function(s,u){if(isArrayOkay(u)){return{'type':'statement','variant':'compound','statement':s,'compound':u};}else{return s;}},peg$otherExpectation(\"Union Operation\"),function(c,s){return{'type':'compound','variant':c,'statement':s};},function(s,f,w,g){return Object.assign({'type':'statement','variant':'select'},s,f,w,g);},peg$otherExpectation(\"SELECT Results Clause\"),function(d,t){return Object.assign({'result':t},d);},peg$otherExpectation(\"SELECT Results Modifier\"),function(s){return{'distinct':true};},function(s){return{};},peg$otherExpectation(\"FROM Clause\"),function(f,s){return{'from':s};},peg$otherExpectation(\"WHERE Clause\"),function(f,e){return{'where':makeArray(e)};},peg$otherExpectation(\"GROUP BY Clause\"),function(f,e,h){return Object.assign({'group':e},h);},peg$otherExpectation(\"HAVING Clause\"),function(f,e){return{'having':e};},function(q,s){return{'type':'identifier','variant':'star','name':foldStringWord([q,s])};},function(n,s){return foldStringWord([n,s]);},function(e,a){return Object.assign(e,a);},function(f,t){if(isArrayOkay(t)){return{'type':'map','variant':'join','source':f,'map':t};}return f;},function(cl,c){return Object.assign(cl,c);},peg$otherExpectation(\"CROSS JOIN Operation\"),function(n){return{'type':'join','variant':'cross join','source':n};},peg$otherExpectation(\"JOIN Operation\"),function(o,n){return{'type':'join','variant':keyNode(o),'source':n};},function(n,l,a){return Object.assign({'type':'function','variant':'table','name':n,'args':l},a);},peg$otherExpectation(\"Qualified Table\"),function(d,i){return Object.assign(d,i);},peg$otherExpectation(\"Qualified Table Identifier\"),function(n,a){return Object.assign(n,a);},peg$otherExpectation(\"Qualfied Table Index\"),function(s,n){return{'index':n};},function(n,i){return{'index':foldStringKey([n,i])};},peg$otherExpectation(\"SELECT Source\"),function(l,a){return Object.assign(l,a);},peg$otherExpectation(\"Subquery\"),function(s,a){return Object.assign(s,a);},peg$otherExpectation(\"Alias\"),function(a,n){return{'alias':n};},peg$otherExpectation(\"JOIN Operator\"),function(n,t,j){return foldStringKey([n,t,j]);},function(t,o){return foldStringKey([t,o]);},function(t){return keyNode(t);},peg$otherExpectation(\"JOIN Constraint\"),function(c){return{'constraint':Object.assign({'type':'constraint','variant':'join'},c)};},peg$otherExpectation(\"Join ON Clause\"),function(s,e){return{'format':keyNode(s),'on':e};},peg$otherExpectation(\"Join USING Clause\"),function(s,e){return{'format':keyNode(s),'using':e};},peg$otherExpectation(\"VALUES Clause\"),function(s,l){return{'type':'statement','variant':'select','result':l};},function(f,b){return{'result':flattenAll([f,b])};},function(i){return i;},peg$otherExpectation(\"Ordering Expression\"),function(e,d){if(isOkay(d)){return Object.assign({'type':'expression','variant':'order','expression':e},d);}return e;},peg$otherExpectation(\"Star\"),peg$otherExpectation(\"Fallback Type\"),peg$otherExpectation(\"INSERT Statement\"),function(k,t){return Object.assign({'type':'statement','variant':'insert'},k,t);},peg$otherExpectation(\"INSERT Keyword\"),function(a,m){return Object.assign({'action':keyNode(a)},m);},peg$otherExpectation(\"REPLACE Keyword\"),function(a){return{'action':keyNode(a)};},peg$otherExpectation(\"INSERT OR Modifier\"),function(s,m){return{'or':keyNode(m)};},function(i,r){return Object.assign({'into':i},r);},peg$otherExpectation(\"INTO Clause\"),function(s,t){return t;},peg$otherExpectation(\"INTO Keyword\"),function(r){return{'result':r};},peg$otherExpectation(\"Column List\"),function(f,b){return{'columns':flattenAll([f,b])};},function(c){return c;},peg$otherExpectation(\"Column Name\"),function(n){return{'type':'identifier','variant':'column','name':n};},function(s,r){return r;},peg$otherExpectation(\"VALUES Keyword\"),function(f,b){return flattenAll([f,b]);},peg$otherExpectation(\"Wrapped Expression List\"),function(e){return e;},peg$otherExpectation(\"DEFAULT VALUES Clause\"),function(d,v){return{'type':'values','variant':'default'};},peg$otherExpectation(\"Compound Operator\"),peg$otherExpectation(\"UNION Operator\"),function(s,a){return foldStringKey([s,a]);},function(a){return a;},peg$otherExpectation(\"UPDATE Statement\"),function(s,f,t,u,w,o,l){return Object.assign({'type':'statement','variant':s,'into':t},f,u,w,o,l);},peg$otherExpectation(\"UPDATE Keyword\"),peg$otherExpectation(\"UPDATE OR Modifier\"),function(t){return{'or':keyNode(t)};},peg$otherExpectation(\"SET Clause\"),function(c){return{'set':c};},peg$otherExpectation(\"Column Assignment\"),function(f,e){return{'type':'assignment','target':f,'value':e};},peg$otherExpectation(\"DELETE Statement\"),function(s,t,w,o,l){return Object.assign({'type':'statement','variant':s,'from':t},w,o,l);},peg$otherExpectation(\"DELETE Keyword\"),peg$otherExpectation(\"CREATE Statement\"),peg$otherExpectation(\"CREATE TABLE Statement\"),function(s,ne,id,r){return Object.assign({'type':'statement','name':id},s,r,ne);},function(s,tmp,t){return Object.assign({'variant':s,'format':keyNode(t)},tmp);},function(t){return{'temporary':isOkay(t)};},peg$otherExpectation(\"IF NOT EXISTS Modifier\"),function(i,n,e){return{'condition':makeArray({'type':'condition','variant':keyNode(i),'condition':{'type':'expression','variant':keyNode(e),'operator':foldStringKey([n,e])}})};},peg$otherExpectation(\"Table Definition\"),function(s,t,r){return Object.assign({'definition':flattenAll([s,t])},r);},function(r,w){return{'optimization':[{'type':'optimization','value':foldStringKey([r,w])}]};},function(f){return f;},peg$otherExpectation(\"Column Definition\"),function(n,t,c){return Object.assign({'type':'definition','variant':'column','name':n,'definition':isOkay(c)?c:[]},t);},peg$otherExpectation(\"Column Datatype\"),function(t){return{'datatype':t};},peg$otherExpectation(\"Column Constraint\"),function(n,c,ln){return Object.assign(c,n);},function(cl){return cl[cl.length-1];},peg$otherExpectation(\"CONSTRAINT Name\"),function(n){return{'name':n};},peg$otherExpectation(\"FOREIGN KEY Column Constraint\"),function(f){return Object.assign({'variant':'foreign key'},f);},peg$otherExpectation(\"PRIMARY KEY Column Constraint\"),function(p,d,c,a){return Object.assign(p,c,d,a);},peg$otherExpectation(\"PRIMARY KEY Keyword\"),function(s,k){return{'type':'constraint','variant':foldStringKey([s,k])};},peg$otherExpectation(\"AUTOINCREMENT Keyword\"),function(a){return{'autoIncrement':true};},function(s,c){return Object.assign({'type':'constraint','variant':s},c);},peg$otherExpectation(\"UNIQUE Column Constraint\"),peg$otherExpectation(\"NULL Column Constraint\"),function(n,l){return foldStringKey([n,l]);},peg$otherExpectation(\"CHECK Column Constraint\"),peg$otherExpectation(\"DEFAULT Column Constraint\"),function(s,v){return{'type':'constraint','variant':keyNode(s),'value':v};},peg$otherExpectation(\"COLLATE Column Constraint\"),function(c){return{'type':'constraint','variant':'collate','collate':c};},peg$otherExpectation(\"Table Constraint\"),function(n,c,nl){return Object.assign({'type':'definition','variant':'constraint'},c,n);},peg$otherExpectation(\"CHECK Table Constraint\"),function(c){return{'definition':makeArray(c)};},peg$otherExpectation(\"PRIMARY KEY Table Constraint\"),function(k,c,t){return{'definition':makeArray(Object.assign(k,t,c[1])),'columns':c[0]};},function(s){return{'type':'constraint','variant':keyNode(s)};},function(p,k){return foldStringKey([p,k]);},peg$otherExpectation(\"UNIQUE Keyword\"),function(u){return keyNode(u);},function(f,b){return[f].concat(b);},function(c){return c.map(function(_ref){var _ref2=_slicedToArray(_ref,1);var res=_ref2[0];return res;});},function(c){var auto=c.find(function(_ref3){var _ref4=_slicedToArray(_ref3,2);var res=_ref4[0];var a=_ref4[1];return isOkay(a);});return[c.map(function(_ref5){var _ref6=_slicedToArray(_ref5,2);var res=_ref6[0];var a=_ref6[1];return res;}),auto?auto[1]:null];},peg$otherExpectation(\"Indexed Column\"),function(e,d,a){var res=e;if(isOkay(d)){res=Object.assign({'type':'expression','variant':'order','expression':e},d);}return[res,a];},peg$otherExpectation(\"Collation\"),function(c){return{'collate':makeArray(c)};},peg$otherExpectation(\"Column Direction\"),function(t){return{'direction':keyNode(t)};},function(s,t){return{'conflict':keyNode(t)};},peg$otherExpectation(\"ON CONFLICT Keyword\"),function(o,c){return foldStringKey([o,c]);},function(k,c){return{'type':'constraint','variant':keyNode(k),'expression':c};},peg$otherExpectation(\"FOREIGN KEY Table Constraint\"),function(k,l,c){return Object.assign({'definition':makeArray(Object.assign(k,c))},l);},peg$otherExpectation(\"FOREIGN KEY Keyword\"),function(f,k){return{'type':'constraint','variant':foldStringKey([f,k])};},function(r,a,d){return Object.assign({'type':'constraint'},r,a,d);},peg$otherExpectation(\"REFERENCES Clause\"),function(s,t){return{'references':t};},function(f,b){return{'action':flattenAll([f,b])};},peg$otherExpectation(\"FOREIGN KEY Action Clause\"),function(m,a,n){return{'type':'action','variant':keyNode(m),'action':keyNode(n)};},peg$otherExpectation(\"FOREIGN KEY Action\"),function(s,v){return foldStringKey([s,v]);},function(c){return keyNode(c);},function(n,a){return foldStringKey([n,a]);},function(m,n){return{'type':'action','variant':keyNode(m),'action':n};},peg$otherExpectation(\"DEFERRABLE Clause\"),function(n,d,i){return{'defer':foldStringKey([n,d,i])};},function(i,d){return foldStringKey([i,d]);},function(s){return{'definition':makeArray(s)};},peg$otherExpectation(\"CREATE INDEX Statement\"),function(s,ne,n,o,w){return Object.assign({'type':'statement','target':n,'on':o},s,ne,w);},function(s,u,i){return Object.assign({'variant':keyNode(s),'format':keyNode(i)},u);},function(u){return{'unique':true};},peg$otherExpectation(\"ON Clause\"),function(o,t,c){return{'type':'identifier','variant':'expression','format':'table','name':t['name'],'columns':c};},peg$otherExpectation(\"CREATE TRIGGER Statement\"),function(s,ne,n,cd,o,me,wh,a){return Object.assign({'type':'statement','target':n,'on':o,'event':cd,'by':isOkay(me)?me:'row','action':makeArray(a)},s,ne,wh);},function(s,tmp,t){return Object.assign({'variant':keyNode(s),'format':keyNode(t)},tmp);},peg$otherExpectation(\"Conditional Clause\"),function(m,d){return Object.assign({'type':'event'},m,d);},function(m){return{'occurs':keyNode(m)};},function(i,o){return foldStringKey([i,o]);},peg$otherExpectation(\"Conditional Action\"),function(o){return{'event':keyNode(o)};},function(s,f){return{'event':keyNode(s),'of':f};},function(s,c){return c;},\"statement\",peg$literalExpectation(\"STATEMENT\",true),function(f,e,r){return keyNode(r);},function(w,e){return{'when':e};},peg$otherExpectation(\"Actions Clause\"),function(s,a,e){return a;},function(l){return l;},peg$otherExpectation(\"CREATE VIEW Statement\"),function(s,ne,n,r){return Object.assign({'type':'statement','target':n,'result':r},s,ne);},function(n,a){return Object.assign({'type':'identifier','variant':'expression','format':'view','name':n['name'],'columns':[]},a);},function(s,tmp,v){return Object.assign({'variant':keyNode(s),'format':keyNode(v)},tmp);},peg$otherExpectation(\"CREATE VIRTUAL TABLE Statement\"),function(s,ne,n,m){return Object.assign({'type':'statement','target':n,'result':m},s,ne);},function(s,v,t){return{'variant':keyNode(s),'format':keyNode(v)};},function(m,a){return Object.assign({'type':'module','variant':'virtual','name':m},a);},peg$otherExpectation(\"Module Arguments\"),function(l){return{'args':{'type':'expression','variant':'list','expression':isOkay(l)?l:[]}};},function(f,b){return flattenAll([f,b]).filter(function(arg){return isOkay(arg);});},function(a){return a;},peg$otherExpectation(\"DROP Statement\"),function(s,q){return Object.assign({'type':'statement','target':Object.assign(q,{'variant':s['format']})},s);},peg$otherExpectation(\"DROP Keyword\"),function(s,t,i){return Object.assign({'variant':keyNode(s),'format':t,'condition':[]},i);},peg$otherExpectation(\"DROP Type\"),peg$otherExpectation(\"IF EXISTS Keyword\"),function(i,e){return{'condition':[{'type':'condition','variant':keyNode(i),'condition':{'type':'expression','variant':keyNode(e),'operator':keyNode(e)}}]};},peg$otherExpectation(\"Or\"),peg$otherExpectation(\"Add\"),peg$otherExpectation(\"Subtract\"),peg$otherExpectation(\"Multiply\"),peg$otherExpectation(\"Divide\"),peg$otherExpectation(\"Modulo\"),peg$otherExpectation(\"Shift Left\"),peg$otherExpectation(\"Shift Right\"),peg$otherExpectation(\"Logical AND\"),peg$otherExpectation(\"Logical OR\"),peg$otherExpectation(\"Less Than\"),peg$otherExpectation(\"Greater Than\"),peg$otherExpectation(\"Less Than Or Equal\"),peg$otherExpectation(\"Greater Than Or Equal\"),peg$otherExpectation(\"Equal\"),peg$otherExpectation(\"Not Equal\"),peg$otherExpectation(\"IS\"),function(i,n){return foldStringKey([i,n]);},peg$otherExpectation(\"Identifier\"),peg$otherExpectation(\"Database Identifier\"),function(n){return{'type':'identifier','variant':'database','name':n};},peg$otherExpectation(\"Function Identifier\"),function(d,n){return{'type':'identifier','variant':'function','name':foldStringWord([d,n])};},peg$otherExpectation(\"Table Identifier\"),function(d,n){return{'type':'identifier','variant':'table','name':foldStringWord([d,n])};},function(n,d){return foldStringWord([n,d]);},peg$otherExpectation(\"Column Identifier\"),function(q,n){return{'type':'identifier','variant':'column','name':foldStringWord([q,n])};},function(){return'';},function(d,t){return foldStringWord([d,t]);},peg$otherExpectation(\"Collation Identifier\"),function(n){return{'type':'identifier','variant':'collation','name':n};},peg$otherExpectation(\"Savepoint Identifier\"),function(n){return{'type':'identifier','variant':'savepoint','name':n};},peg$otherExpectation(\"Index Identifier\"),function(d,n){return{'type':'identifier','variant':'index','name':foldStringWord([d,n])};},peg$otherExpectation(\"Trigger Identifier\"),function(d,n){return{'type':'identifier','variant':'trigger','name':foldStringWord([d,n])};},peg$otherExpectation(\"View Identifier\"),function(d,n){return{'type':'identifier','variant':'view','name':foldStringWord([d,n])};},peg$otherExpectation(\"Pragma Identifier\"),function(d,n){return{'type':'identifier','variant':'pragma','name':foldStringWord([d,n])};},peg$otherExpectation(\"CTE Identifier\"),function(d){return d;},function(n,a){return Object.assign({'type':'identifier','variant':'expression','format':'table','name':n['name'],'columns':[]},a);},peg$otherExpectation(\"Table Constraint Identifier\"),function(n){return{'type':'identifier','variant':'constraint','format':'table','name':n};},peg$otherExpectation(\"Column Constraint Identifier\"),function(n){return{'type':'identifier','variant':'constraint','format':'column','name':n};},peg$otherExpectation(\"Datatype Name\"),function(t){return[t,'text'];},function(t){return[t,'real'];},function(t){return[t,'numeric'];},function(t){return[t,'integer'];},function(t){return[t,'none'];},peg$otherExpectation(\"TEXT Datatype Name\"),\"n\",peg$literalExpectation(\"N\",true),\"var\",peg$literalExpectation(\"VAR\",true),\"char\",peg$literalExpectation(\"CHAR\",true),\"tiny\",peg$literalExpectation(\"TINY\",true),\"medium\",peg$literalExpectation(\"MEDIUM\",true),\"long\",peg$literalExpectation(\"LONG\",true),\"text\",peg$literalExpectation(\"TEXT\",true),\"clob\",peg$literalExpectation(\"CLOB\",true),peg$otherExpectation(\"REAL Datatype Name\"),\"float\",peg$literalExpectation(\"FLOAT\",true),\"real\",peg$literalExpectation(\"REAL\",true),peg$otherExpectation(\"DOUBLE Datatype Name\"),\"double\",peg$literalExpectation(\"DOUBLE\",true),\"precision\",peg$literalExpectation(\"PRECISION\",true),function(d,p){return foldStringWord([d,p]);},peg$otherExpectation(\"NUMERIC Datatype Name\"),\"numeric\",peg$literalExpectation(\"NUMERIC\",true),\"decimal\",peg$literalExpectation(\"DECIMAL\",true),\"boolean\",peg$literalExpectation(\"BOOLEAN\",true),\"date\",peg$literalExpectation(\"DATE\",true),\"time\",peg$literalExpectation(\"TIME\",true),\"stamp\",peg$literalExpectation(\"STAMP\",true),\"string\",peg$literalExpectation(\"STRING\",true),peg$otherExpectation(\"INTEGER Datatype Name\"),\"int\",peg$literalExpectation(\"INT\",true),\"2\",peg$literalExpectation(\"2\",false),\"4\",peg$literalExpectation(\"4\",false),\"8\",peg$literalExpectation(\"8\",false),\"eger\",peg$literalExpectation(\"EGER\",true),\"big\",peg$literalExpectation(\"BIG\",true),\"small\",peg$literalExpectation(\"SMALL\",true),\"floating\",peg$literalExpectation(\"FLOATING\",true),\"point\",peg$literalExpectation(\"POINT\",true),function(f,p){return foldStringWord([f,p]);},peg$otherExpectation(\"BLOB Datatype Name\"),\"blob\",peg$literalExpectation(\"BLOB\",true),/^[a-z0-9$_]/i,peg$classExpectation([[\"a\",\"z\"],[\"0\",\"9\"],\"$\",\"_\"],false,true),\"\\\\u\",peg$literalExpectation(\"\\\\u\",false),/^[a-f0-9]/i,peg$classExpectation([[\"a\",\"f\"],[\"0\",\"9\"]],false,true),function(u,s){return foldStringWord([u,s]).toLowerCase();},function(n){return keyNode(n);},peg$anyExpectation(),function(n){return textNode(n);},/^[ \\t]/,peg$classExpectation([\" \",\"\\t\"],false,false),\"\\\"\",peg$literalExpectation(\"\\\"\",false),\"\\\"\\\"\",peg$literalExpectation(\"\\\"\\\"\",false),/^[^\"]/,peg$classExpectation([\"\\\"\"],true,false),function(n){return unescape(n,'\"');},\"'\",peg$literalExpectation(\"'\",false),function(n){return unescape(n,\"'\");},\"`\",peg$literalExpectation(\"`\",false),\"``\",peg$literalExpectation(\"``\",false),/^[^`]/,peg$classExpectation([\"`\"],true,false),function(n){return unescape(n,'`');},peg$otherExpectation(\"Open Bracket\"),\"[\",peg$literalExpectation(\"[\",false),peg$otherExpectation(\"Close Bracket\"),\"]\",peg$literalExpectation(\"]\",false),peg$otherExpectation(\"Open Parenthesis\"),\"(\",peg$literalExpectation(\"(\",false),peg$otherExpectation(\"Close Parenthesis\"),\")\",peg$literalExpectation(\")\",false),peg$otherExpectation(\"Comma\"),\",\",peg$literalExpectation(\",\",false),peg$otherExpectation(\"Period\"),\".\",peg$literalExpectation(\".\",false),peg$otherExpectation(\"Asterisk\"),\"*\",peg$literalExpectation(\"*\",false),peg$otherExpectation(\"Question Mark\"),\"?\",peg$literalExpectation(\"?\",false),peg$otherExpectation(\"Single Quote\"),peg$otherExpectation(\"Double Quote\"),peg$otherExpectation(\"Backtick\"),peg$otherExpectation(\"Tilde\"),\"~\",peg$literalExpectation(\"~\",false),peg$otherExpectation(\"Plus\"),\"+\",peg$literalExpectation(\"+\",false),peg$otherExpectation(\"Minus\"),\"-\",peg$literalExpectation(\"-\",false),\"=\",peg$literalExpectation(\"=\",false),peg$otherExpectation(\"Ampersand\"),\"&\",peg$literalExpectation(\"&\",false),peg$otherExpectation(\"Pipe\"),\"|\",peg$literalExpectation(\"|\",false),\"%\",peg$literalExpectation(\"%\",false),\"<\",peg$literalExpectation(\"<\",false),\">\",peg$literalExpectation(\">\",false),peg$otherExpectation(\"Exclamation\"),\"!\",peg$literalExpectation(\"!\",false),peg$otherExpectation(\"Semicolon\"),\";\",peg$literalExpectation(\";\",false),peg$otherExpectation(\"Colon\"),peg$otherExpectation(\"Forward Slash\"),\"/\",peg$literalExpectation(\"/\",false),peg$otherExpectation(\"Backslash\"),\"\\\\\",peg$literalExpectation(\"\\\\\",false),\"abort\",peg$literalExpectation(\"ABORT\",true),\"action\",peg$literalExpectation(\"ACTION\",true),\"add\",peg$literalExpectation(\"ADD\",true),\"after\",peg$literalExpectation(\"AFTER\",true),\"all\",peg$literalExpectation(\"ALL\",true),\"alter\",peg$literalExpectation(\"ALTER\",true),\"analyze\",peg$literalExpectation(\"ANALYZE\",true),\"and\",peg$literalExpectation(\"AND\",true),\"as\",peg$literalExpectation(\"AS\",true),\"asc\",peg$literalExpectation(\"ASC\",true),\"attach\",peg$literalExpectation(\"ATTACH\",true),\"autoincrement\",peg$literalExpectation(\"AUTOINCREMENT\",true),\"before\",peg$literalExpectation(\"BEFORE\",true),\"begin\",peg$literalExpectation(\"BEGIN\",true),\"between\",peg$literalExpectation(\"BETWEEN\",true),\"by\",peg$literalExpectation(\"BY\",true),\"cascade\",peg$literalExpectation(\"CASCADE\",true),\"case\",peg$literalExpectation(\"CASE\",true),\"cast\",peg$literalExpectation(\"CAST\",true),\"check\",peg$literalExpectation(\"CHECK\",true),\"collate\",peg$literalExpectation(\"COLLATE\",true),\"column\",peg$literalExpectation(\"COLUMN\",true),\"commit\",peg$literalExpectation(\"COMMIT\",true),\"conflict\",peg$literalExpectation(\"CONFLICT\",true),\"constraint\",peg$literalExpectation(\"CONSTRAINT\",true),\"create\",peg$literalExpectation(\"CREATE\",true),\"cross\",peg$literalExpectation(\"CROSS\",true),\"current_date\",peg$literalExpectation(\"CURRENT_DATE\",true),\"current_time\",peg$literalExpectation(\"CURRENT_TIME\",true),\"current_timestamp\",peg$literalExpectation(\"CURRENT_TIMESTAMP\",true),\"database\",peg$literalExpectation(\"DATABASE\",true),\"default\",peg$literalExpectation(\"DEFAULT\",true),\"deferrable\",peg$literalExpectation(\"DEFERRABLE\",true),\"deferred\",peg$literalExpectation(\"DEFERRED\",true),\"delete\",peg$literalExpectation(\"DELETE\",true),\"desc\",peg$literalExpectation(\"DESC\",true),\"detach\",peg$literalExpectation(\"DETACH\",true),\"distinct\",peg$literalExpectation(\"DISTINCT\",true),\"drop\",peg$literalExpectation(\"DROP\",true),\"each\",peg$literalExpectation(\"EACH\",true),\"else\",peg$literalExpectation(\"ELSE\",true),\"end\",peg$literalExpectation(\"END\",true),\"escape\",peg$literalExpectation(\"ESCAPE\",true),\"except\",peg$literalExpectation(\"EXCEPT\",true),\"exclusive\",peg$literalExpectation(\"EXCLUSIVE\",true),\"exists\",peg$literalExpectation(\"EXISTS\",true),\"explain\",peg$literalExpectation(\"EXPLAIN\",true),\"fail\",peg$literalExpectation(\"FAIL\",true),\"for\",peg$literalExpectation(\"FOR\",true),\"foreign\",peg$literalExpectation(\"FOREIGN\",true),\"from\",peg$literalExpectation(\"FROM\",true),\"full\",peg$literalExpectation(\"FULL\",true),\"glob\",peg$literalExpectation(\"GLOB\",true),\"group\",peg$literalExpectation(\"GROUP\",true),\"having\",peg$literalExpectation(\"HAVING\",true),\"if\",peg$literalExpectation(\"IF\",true),\"ignore\",peg$literalExpectation(\"IGNORE\",true),\"immediate\",peg$literalExpectation(\"IMMEDIATE\",true),\"in\",peg$literalExpectation(\"IN\",true),\"index\",peg$literalExpectation(\"INDEX\",true),\"indexed\",peg$literalExpectation(\"INDEXED\",true),\"initially\",peg$literalExpectation(\"INITIALLY\",true),\"inner\",peg$literalExpectation(\"INNER\",true),\"insert\",peg$literalExpectation(\"INSERT\",true),\"instead\",peg$literalExpectation(\"INSTEAD\",true),\"intersect\",peg$literalExpectation(\"INTERSECT\",true),\"into\",peg$literalExpectation(\"INTO\",true),\"is\",peg$literalExpectation(\"IS\",true),\"isnull\",peg$literalExpectation(\"ISNULL\",true),\"join\",peg$literalExpectation(\"JOIN\",true),\"key\",peg$literalExpectation(\"KEY\",true),\"left\",peg$literalExpectation(\"LEFT\",true),\"like\",peg$literalExpectation(\"LIKE\",true),\"limit\",peg$literalExpectation(\"LIMIT\",true),\"match\",peg$literalExpectation(\"MATCH\",true),\"natural\",peg$literalExpectation(\"NATURAL\",true),\"no\",peg$literalExpectation(\"NO\",true),\"not\",peg$literalExpectation(\"NOT\",true),\"notnull\",peg$literalExpectation(\"NOTNULL\",true),\"of\",peg$literalExpectation(\"OF\",true),\"offset\",peg$literalExpectation(\"OFFSET\",true),\"on\",peg$literalExpectation(\"ON\",true),\"or\",peg$literalExpectation(\"OR\",true),\"order\",peg$literalExpectation(\"ORDER\",true),\"outer\",peg$literalExpectation(\"OUTER\",true),\"plan\",peg$literalExpectation(\"PLAN\",true),\"pragma\",peg$literalExpectation(\"PRAGMA\",true),\"primary\",peg$literalExpectation(\"PRIMARY\",true),\"query\",peg$literalExpectation(\"QUERY\",true),\"raise\",peg$literalExpectation(\"RAISE\",true),\"recursive\",peg$literalExpectation(\"RECURSIVE\",true),\"references\",peg$literalExpectation(\"REFERENCES\",true),\"regexp\",peg$literalExpectation(\"REGEXP\",true),\"reindex\",peg$literalExpectation(\"REINDEX\",true),\"release\",peg$literalExpectation(\"RELEASE\",true),\"rename\",peg$literalExpectation(\"RENAME\",true),\"replace\",peg$literalExpectation(\"REPLACE\",true),\"restrict\",peg$literalExpectation(\"RESTRICT\",true),\"right\",peg$literalExpectation(\"RIGHT\",true),\"rollback\",peg$literalExpectation(\"ROLLBACK\",true),\"row\",peg$literalExpectation(\"ROW\",true),\"rowid\",peg$literalExpectation(\"ROWID\",true),\"savepoint\",peg$literalExpectation(\"SAVEPOINT\",true),\"select\",peg$literalExpectation(\"SELECT\",true),\"set\",peg$literalExpectation(\"SET\",true),\"table\",peg$literalExpectation(\"TABLE\",true),\"temp\",peg$literalExpectation(\"TEMP\",true),\"temporary\",peg$literalExpectation(\"TEMPORARY\",true),\"then\",peg$literalExpectation(\"THEN\",true),\"to\",peg$literalExpectation(\"TO\",true),\"transaction\",peg$literalExpectation(\"TRANSACTION\",true),\"trigger\",peg$literalExpectation(\"TRIGGER\",true),\"union\",peg$literalExpectation(\"UNION\",true),\"unique\",peg$literalExpectation(\"UNIQUE\",true),\"update\",peg$literalExpectation(\"UPDATE\",true),\"using\",peg$literalExpectation(\"USING\",true),\"vacuum\",peg$literalExpectation(\"VACUUM\",true),\"values\",peg$literalExpectation(\"VALUES\",true),\"view\",peg$literalExpectation(\"VIEW\",true),\"virtual\",peg$literalExpectation(\"VIRTUAL\",true),\"when\",peg$literalExpectation(\"WHEN\",true),\"where\",peg$literalExpectation(\"WHERE\",true),\"with\",peg$literalExpectation(\"WITH\",true),\"without\",peg$literalExpectation(\"WITHOUT\",true),function(r){return keyNode(r);},function(){return null;},peg$otherExpectation(\"Line Comment\"),\"--\",peg$literalExpectation(\"--\",false),/^[\\n\\v\\f\\r]/,peg$classExpectation([\"\\n\",\"\\v\",\"\\f\",\"\\r\"],false,false),peg$otherExpectation(\"Block Comment\"),\"/*\",peg$literalExpectation(\"/*\",false),\"*/\",peg$literalExpectation(\"*/\",false),/^[\\n\\v\\f\\r\\t ]/,peg$classExpectation([\"\\n\",\"\\v\",\"\\f\",\"\\r\",\"\\t\",\" \"],false,false),peg$otherExpectation(\"Whitespace\"),\"__TODO__\",peg$literalExpectation(\"__TODO__\",false)];var peg$bytecode=[peg$decode(\"%;\\u023F/H#;#/?$;\\\".\\\" &\\\"/1$;#/($8$: $!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u023F/C#;#/:$;x/1$;#/($8$: $!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;x/B#;\\u023F/9$$;%0#*;%&/)$8#:!#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"$;\\u01B30#*;\\u01B3&\"),peg$decode(\"$;\\u01B3/�#*;\\u01B3&&&#\"),peg$decode(\"%;$/:#;x/1$;\\u023F/($8#:\\\"#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;'.# &;(/@#;\\u023F/7$;*.\\\" &\\\"/)$8#:$#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7#\"),peg$decode(\"%;\\u018B/' 8!:%!! )\"),peg$decode(\"<%;\\u0195/9#$;)0#*;)&/)$8\\\":'\\\"\\\"! )(\\\"'#&'#=.\\\" 7&\"),peg$decode(\"%4(\\\"\\\"5!7)/1#;\\u0197/($8\\\":*\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/R#;5/I$;\\u023F/@$;+.\\\" &\\\"/2$;\\u01A1/)$8%:,%\\\"#!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7+\"),peg$decode(\"%;\\u01A2/C#;\\u023F/:$;5/1$;\\u023F/($8$:-$!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\";5.; &;6.5 &;2./ &;-.) &;..# &;/\"),peg$decode(\"<%;\\u0206/1#;\\u023F/($8\\\":/\\\"!!)(\\\"'#&'#=.\\\" 7.\"),peg$decode(\"<%;\\u01D2.) &;\\u01D4.# &;\\u01D3/1#;\\u023F/($8\\\":1\\\"!!)(\\\"'#&'#=.\\\" 70\"),peg$decode(\"<%;4.\\\" &\\\"/2#;0/)$8\\\":3\\\"\\\"! )(\\\"'#&'#=.\\\" 72\"),peg$decode(\"<%;\\u01A6/A#$;10#*;1&/1$;\\u01A6/($8#:5#!!)(#'#(\\\"'#&'#=.\\\" 74\"),peg$decode(\"26\\\"\\\"6677.) &48\\\"\\\"5!79\"),peg$decode(\"<%4;\\\"\\\"5!7!! )\"),peg$decode(\"<%;\\u01AA.# &;\\u01AB/' 8!:\\\"!! )=.\\\" 7?\"),peg$decode(\"%;4.\\\" &\\\"/2#;6/)$8\\\":@\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";<.# &;7\"),peg$decode(\"%;8/7#;;.\\\" &\\\"/)$8\\\":A\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<;9.# &;:=.\\\" 7B\"),peg$decode(\"%$;>/�#*;>&&&#/7#;:.\\\" &\\\"/)$8\\\":C\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u01A3/9#$;>0#*;>&/)$8\\\":D\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%3F\\\"\\\"5!7G/T#4H\\\"\\\"5!7I.\\\" &\\\"/@$$;>/�#*;>&&&#/*$8#:J##\\\"! )(#'#(\\\"'#&'#=.\\\" 7E\"),peg$decode(\"<%3L\\\"\\\"5\\\"7M/?#$;=/�#*;=&&&#/)$8\\\":N\\\"\\\"! )(\\\"'#&'#=.\\\" 7K\"),peg$decode(\"4O\\\"\\\"5!7P\"),peg$decode(\"4Q\\\"\\\"5!7R\"),peg$decode(\"<%;@.) &;B.# &;C/' 8!:T!! )=.\\\" 7S\"),peg$decode(\"<%;\\u01A5/@#;A.\\\" &\\\"/2$;\\u023F/)$8#:V#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7U\"),peg$decode(\"%4W\\\"\\\"5!7X/9#$;>0#*;>&/)$8\\\":Y\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%4[\\\"\\\"5!7\\\\/H#$;\\u0193/�#*;\\u0193&&&#/2$;\\u023F/)$8#:]#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7Z\"),peg$decode(\"<%2_\\\"\\\"6_7`/o#$;\\u0193.) &2a\\\"\\\"6a7b/2#0/*;\\u0193.) &2a\\\"\\\"6a7b&&&#/A$;\\u023F/8$;D.\\\" &\\\"/*$8$:c$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7^\"),peg$decode(\"%;\\u019B/1#;\\u023F/($8\\\":d\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;F.\\\" &\\\"/;#;\\u023F/2$;\\x94/)$8#:f#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7e\"),peg$decode(\"<%;k.\\\" &\\\"/;#;\\u01E4/2$;\\u023F/)$8#:h#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7g\"),peg$decode(\"<%;\\u0211/_#;\\u023F/V$;\\u01A0/M$;\\u023F/D$;H/;$;\\u023F/2$;\\u01A1/)$8':j'\\\"&\\\")(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7i\"),peg$decode(\"<%;I.# &;J/' 8!:l!! )=.\\\" 7k\"),peg$decode(\"<%;\\u01EF/' 8!:n!! )=.\\\" 7m\"),peg$decode(\"%;\\u021B.) &;\\u01B7.# &;\\u01E6/M#;\\u023F/D$;\\u01A2/;$;\\u023F/2$;w/)$8%:o%\\\"$ )(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\";?./ &;t.) &;,.# &;\\u017D\"),peg$decode(\"%;\\u01A0/L#;\\u023F/C$;p/:$;\\u023F/1$;\\u01A1/($8%:p%!\\\")(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\";L.; &;E.5 &;_./ &;a.) &;G.# &;K\"),peg$decode(\"%;M/;#;\\u023F/2$;Q/)$8#:q#\\\"\\\" )(#'#(\\\"'#&'#.# &;M\"),peg$decode(\"%;P/A#;\\u023F/8$;N.# &;p/)$8#:r#\\\"\\\" )(#'#(\\\"'#&'#.# &;N\"),peg$decode(\";\\u01A9.U &;\\u01AB.O &;\\u01AA.I &%%;k/8#%<;\\u01E4=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,)\"),peg$decode(\"<%;\\u012D/' 8!:t!! )=.\\\" 7s\"),peg$decode(\"%;O/\\x83#$%;\\u023F/>#;\\u0166/5$;\\u023F/,$;O/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;\\u0166/5$;\\u023F/,$;O/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;R/\\x83#$%;\\u023F/>#;T/5$;\\u023F/,$;R/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;T/5$;\\u023F/,$;R/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0169.) &;\\u016A.# &;\\u016B\"),peg$decode(\"%;S/\\x83#$%;\\u023F/>#;V/5$;\\u023F/,$;S/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;V/5$;\\u023F/,$;S/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0167.# &;\\u0168\"),peg$decode(\"%;U/\\x83#$%;\\u023F/>#;X/5$;\\u023F/,$;U/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;X/5$;\\u023F/,$;U/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u016C.U &;\\u016D.O &;\\u016E.I &%%;\\u016F/8#%<;\\u016F=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,)\"),peg$decode(\"%;W/\\x83#$%;\\u023F/>#;Z/5$;\\u023F/,$;W/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;Z/5$;\\u023F/,$;W/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0172.{ &;\\u0173.u &%%;\\u0170/8#%<;X=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,).I &%%;\\u0171/8#%<;X=.##&&!&'#/#$+\\\")(\\\"'#&'#/\\\"!&,)\"),peg$decode(\"%;Y/9#$;\\\\0#*;\\\\&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u023F/1#;]/($8\\\":v\\\"! )(\\\"'#&'#.H &%;\\u023F/>#;^/5$;\\u023F/,$;Y/#$+$)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%3w\\\"\\\"5$7x/?#;\\u023F/6$3y\\\"\\\"5$7z/'$8#:{# )(#'#(\\\"'#&'#.? &%;\\u01FB/& 8!:|! ).. &%;\\u0205/& 8!:{! )\"),peg$decode(\";\\u0177./ &;\\u0175.) &;\\u0176.# &;\\u0174\"),peg$decode(\"<%;\\u01C9/i#;\\u023F/`$;\\u01A0/W$;p/N$;\\u023F/E$;`/<$;\\u023F/3$;\\u01A1/*$8(:~(#'$\\\")(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7}\"),peg$decode(\"<%;\\u01BF/:#;\\u023F/1$;&/($8#:\\x80#! )(#'#(\\\"'#&'#=.\\\" 7\\x7F\"),peg$decode(\"<%;\\u01C8/\\x93#;\\u023F/\\x8A$;b.\\\" &\\\"/|$;\\u023F/s$$;c/�#*;c&&&#/]$;\\u023F/T$;d.\\\" &\\\"/F$;\\u023F/=$;\\u01E0/4$;\\u023F/+$8*:\\x82*$)'%#)(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x81\"),peg$decode(\"%%<;\\u0230=.##&&!&'#/1#;p/($8\\\":\\x83\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0230/i#;\\u023F/`$;p/W$;\\u023F/N$;\\u0224/E$;\\u023F/<$;p/3$;\\u023F/*$8(:\\x85(#'%!)(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x84\"),peg$decode(\"<%;\\u01DF/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\x87$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\x86\"),peg$decode(\"%;[/;#;\\u023F/2$;f/)$8#:\\x88#\\\"\\\" )(#'#(\\\"'#&'#.# &;[\"),peg$decode(\";l.) &;i.# &;g\"),peg$decode(\"<%;k.\\\" &\\\"/o#;\\u01FF./ &;\\u01EB.) &;\\u0214.# &;\\u0201/T$;\\u023F/K$;p/B$;\\u023F/9$;h.\\\" &\\\"/+$8&:\\x8A&$%$\\\" )(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x89\"),peg$decode(\"<%;\\u01E1/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\x8C$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\x8B\"),peg$decode(\"<%;k.\\\" &\\\"/E#;\\u01C5/<$;\\u023F/3$;j/*$8$:\\x8E$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\x8D\"),peg$decode(\"%;e/W#%;\\u023F/>#;\\u01BE/5$;\\u023F/,$;e/#$+$)($'#(#'#(\\\"'#&'#/)$8\\\":\\x8F\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u0204/1#;\\u023F/($8\\\":\\x90\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;k.\\\" &\\\"/E#;\\u01F1/<$;\\u023F/3$;m/*$8$:\\x92$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\x91\"),peg$decode(\";n.# &;\\u017B\"),peg$decode(\"%;\\u01A0/I#;\\x95.# &;q/:$;\\u023F/1$;\\u01A1/($8$:\\x93$!\\\")($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;e/\\x83#$%;\\u023F/>#;\\u01BE/5$;\\u023F/,$;e/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;\\u01BE/5$;\\u023F/,$;e/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;o/\\x83#$%;\\u023F/>#;\\u020A/5$;\\u023F/,$;o/#$+$)($'#(#'#(\\\"'#&'#0H*%;\\u023F/>#;\\u020A/5$;\\u023F/,$;o/#$+$)($'#(#'#(\\\"'#&'#&/)$8\\\":u\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;r.\\\" &\\\"/1#;\\u023F/($8\\\":\\x95\\\"!!)(\\\"'#&'#=.\\\" 7\\x94\"),peg$decode(\"%;p/B#;\\u023F/9$$;s0#*;s&/)$8#:\\x96#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;p/1$;\\u023F/($8#:\\x93#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u017A/[#;\\u023F/R$;\\u01A0/I$;u.\\\" &\\\"/;$;\\u023F/2$;\\u01A1/)$8&:\\x98&\\\"%\\\")(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\x97\"),peg$decode(\"<%;\\xDB/' 8!:\\x9A!! ).V &%;v.\\\" &\\\"/G#;q/>$9:\\x9B \\\"! -\\\"\\\"&!&#/)$8#:\\x9C#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\x99\"),peg$decode(\"%;\\u01DC.# &;\\u01BB/1#;\\u023F/($8\\\":\\x9D\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;//' 8!:\\x9F!! )=.\\\" 7\\x9E\"),peg$decode(\"<%;y.\\\" &\\\"/;#;{/2$;\\u023F/)$8#:\\xA1#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\xA0\"),peg$decode(\"<%;\\u01E5/@#;\\u023F/7$;z.\\\" &\\\"/)$8#:\\xA3#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xA2\"),peg$decode(\"<%;\\u0210/D#;\\u023F/;$;\\u020D/2$;\\u023F/)$8$:\\xA5$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xA4\"),peg$decode(\";\\x8C.S &;\\xFB.M &;\\u0162.G &;}.A &;|.; &;\\x86.5 &;\\x80./ &;\\x84.) &;\\x85.# &;\\x96\"),peg$decode(\"<%;\\u01CD.# &;\\u01E0/@#;\\u023F/7$;~.\\\" &\\\"/)$8#:\\xA7#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xA6\"),peg$decode(\"<%;\\u01C4/^#;\\u023F/U$;\\x7F.\\\" &\\\"/G$;~.\\\" &\\\"/9$;\\x82.\\\" &\\\"/+$8%:\\xA9%$$\\\"! )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xA8\"),peg$decode(\"%;\\u0226/1#;\\u023F/($8\\\":\\xAA\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01D8.) &;\\u01F0.# &;\\u01E3/1#;\\u023F/($8\\\":\\xAB\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u021B/N#;\\u023F/E$;~.\\\" &\\\"/7$;\\x81.\\\" &\\\"/)$8$:\\xAD$\\\"# )($'#(#'#(\\\"'#&'#=.\\\" 7\\xAC\"),peg$decode(\"<%%;\\u0225/,#;\\u023F/#$+\\\")(\\\"'#&'#.\\\" &\\\"/?#;\\x83.\\\" &\\\"/1$;\\x82/($8#:p#! )(#'#(\\\"'#&'#=.\\\" 7\\xAE\"),peg$decode(\"%;\\u0182/1#;\\u023F/($8\\\":\\xAF\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u021E/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\x83/2#;\\x82/)$8\\\":\\xB2\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\xB1\"),peg$decode(\"<%;\\u0216/J#;\\u023F/A$;\\x83.\\\" &\\\"/3$;\\x82/*$8$:\\xB4$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\xB3\"),peg$decode(\"<%;\\x87/N#;\\u017B/E$;\\u023F/<$;\\x88/3$;\\u023F/*$8%:\\xB6%#$#!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xB5\"),peg$decode(\"<%;\\u01BC/D#;\\u023F/;$;\\u0221/2$;\\u023F/)$8$:\\xB8$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xB7\"),peg$decode(\";\\x89.# &;\\x8A\"),peg$decode(\"<%;\\u0217/M#;\\u023F/D$;\\u0225/;$;\\u023F/2$;\\u017B/)$8%:\\xBA%\\\"$ )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xB9\"),peg$decode(\"<%;\\u01B9/I#;\\u023F/@$;\\x8B.\\\" &\\\"/2$;\\u010C/)$8$:\\xBC$\\\"# )($'#(#'#(\\\"'#&'#=.\\\" 7\\xBB\"),peg$decode(\"%;\\u01CC/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\x8D/2#;\\xA7/)$8\\\":\\xBD\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\x8E.\\\" &\\\"/1#;\\u023F/($8\\\":*\\\"!!)(\\\"'#&'#=.\\\" 7\\xBE\"),peg$decode(\"%;\\u0232/J#;\\u023F/A$;\\x8F.\\\" &\\\"/3$;\\x90/*$8$:\\xBF$##! )($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0212/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\x92/B#;\\u023F/9$$;\\x910#*;\\x91&/)$8#:\\xC0#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\x92/1$;\\u023F/($8#:\\x93#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0187/2#;\\x93/)$8\\\":\\xC2\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\xC1\"),peg$decode(\"%;\\u01BF/:#;\\u023F/1$;\\x94/($8#:\\xC3#! )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A0/C#;\\x95/:$;\\u023F/1$;\\u01A1/($8$: $!\\\")($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\x8D/2#;\\xA8/)$8\\\":\\xC4\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\x97.; &;\\x99.5 &;\\x9A./ &;\\x9C.) &;\\x9E.# &;\\xA0\"),peg$decode(\"<%;\\u01C1/\\x8B#;\\u023F/\\x82$%;\\u01D5/,#;\\u023F/#$+\\\")(\\\"'#&'#.\\\" &\\\"/a$;p/X$;\\u023F/O$;\\u01BF/F$;\\u023F/=$;\\x98/4$;\\u023F/+$8):\\xC6)$(&%!)()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xC5\"),peg$decode(\";\\u0179.) &;-.# &;?\"),peg$decode(\"<%;\\u01DB/f#;\\u023F/]$%;\\u01D5/,#;\\u023F/#$+\\\")(\\\"'#&'#.\\\" &\\\"/<$;\\x98/3$;\\u023F/*$8%:\\xC8%#$\\\"!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xC7\"),peg$decode(\"<%;\\u022C/@#;\\u023F/7$;\\x9B.\\\" &\\\"/)$8#:\\xCA#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xC9\"),peg$decode(\"%;\\u0179/1#;\\u023F/($8\\\":\\xCB\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u01BD/@#;\\u023F/7$;\\x9D.\\\" &\\\"/)$8#:\\xCD#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xCC\"),peg$decode(\"%;\\u017B.) &;\\u0183.# &;\\u0179/1#;\\u023F/($8\\\":\\xCE\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u0215/I#;\\u023F/@$;\\x9F.\\\" &\\\"/2$;\\u023F/)$8$:\\xCD$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xCF\"),peg$decode(\"%;\\u017B.) &;\\u0183.# &;\\u0181/1#;\\u023F/($8\\\":\\xD0\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u020E/S#;\\u023F/J$;\\u0186/A$;\\u023F/8$;\\xA1.\\\" &\\\"/*$8%:\\xD2%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xD1\"),peg$decode(\"%;\\u01A0/C#;\\xA2/:$;\\u023F/1$;\\u01A1/($8$:\\xD3$!\\\")($'#(#'#(\\\"'#&'#.D &%;\\u01AC/:#;\\xA2/1$;\\u023F/($8#:\\xD3#!!)(#'#(\\\"'#&'#\"),peg$decode(\";\\xA4.) &;\\xA3.# &;\\xA6\"),peg$decode(\";5.) &;/.# &;3\"),peg$decode(\"%;\\xA5/<#9:\\xD4 ! -\\\"\\\"&!&#/($8\\\":\\xD5\\\"!!)(\\\"'#&'#\"),peg$decode(\"%$;\\u0193/�#*;\\u0193&&&#/' 8!:\\xD6!! )\"),peg$decode(\"%;\\xA5/' 8!:\\xD7!! )\"),peg$decode(\";\\xA8./ &;\\xDD.) &;\\xF2.# &;\\xF9\"),peg$decode(\"<%;\\xAE/X#;\\u023F/O$;\\xA9.\\\" &\\\"/A$;\\u023F/8$;\\xAA.\\\" &\\\"/*$8%:\\xD9%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xD8\"),peg$decode(\"<%;\\u020B/L#;\\u023F/C$;\\u01C6/:$;\\u023F/1$;\\xD8/($8%:\\xDB%! )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xDA\"),peg$decode(\"<%;\\u0200/S#;\\u023F/J$;p/A$;\\u023F/8$;\\xAB.\\\" &\\\"/*$8%:\\xDD%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xDC\"),peg$decode(\"<%;\\xAC/2#;p/)$8\\\":\\xDF\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\xDE\"),peg$decode(\";\\xAD.# &;\\u01A2\"),peg$decode(\"%;\\u0208/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\xB0/B#;\\u023F/9$$;\\xAF0#*;\\xAF&/)$8#:\\xE0#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\xEF/D#;\\u023F/;$;\\xB0/2$;\\u023F/)$8$:\\xE2$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xE1\"),peg$decode(\";\\xB1.# &;\\xD7\"),peg$decode(\"%;\\xB2/U#;\\xB8.\\\" &\\\"/G$;\\xB9.\\\" &\\\"/9$;\\xBA.\\\" &\\\"/+$8$:\\xE3$$#\\\"! )($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u021F/R#;\\u023F/I$;\\xB3.\\\" &\\\"/;$;\\u023F/2$;\\xB6/)$8%:\\xE5%\\\"\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xE4\"),peg$decode(\"<;\\xB4.# &;\\xB5=.\\\" 7\\xE6\"),peg$decode(\"%;\\u01DC/1#;\\u023F/($8\\\":\\xE7\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01BB/1#;\\u023F/($8\\\":\\xE8\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\xBC/B#;\\u023F/9$$;\\xB70#*;\\xB7&/)$8#:\\xC0#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\xBC/1$;\\u023F/($8#:-#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01E9/D#;\\u023F/;$;\\xC0/2$;\\u023F/)$8$:\\xEA$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xE9\"),peg$decode(\"<%;\\u0231/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\xEC$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xEB\"),peg$decode(\"<%;\\u01EC/e#;\\u023F/\\\\$;\\u01C6/S$;\\u023F/J$;q/A$;\\u023F/8$;\\xBB.\\\" &\\\"/*$8':\\xEE'#&\\\" )(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\xED\"),peg$decode(\"<%;\\u01ED/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\xF0$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xEF\"),peg$decode(\";\\xBD.# &;\\xBF\"),peg$decode(\"%;\\xBE.\\\" &\\\"/2#;\\xDB/)$8\\\":\\xF1\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u0195/2#;\\u01A3/)$8\\\":\\xF2\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;p/@#;\\u023F/7$;\\xCD.\\\" &\\\"/)$8#:\\xF3#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\xC4/B#;\\u023F/9$$;\\xC10#*;\\xC1&/)$8#:\\xF4#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\xC2.# &;\\xC3/7#;\\xD4.\\\" &\\\"/)$8\\\":\\xF5\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u01A2/:#;\\xC4/1$;\\u023F/($8#:\\xF7#!!)(#'#(\\\"'#&'#=.\\\" 7\\xF6\"),peg$decode(\"<%;\\xCE/D#;\\u023F/;$;\\xC4/2$;\\u023F/)$8$:\\xF9$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\xF8\"),peg$decode(\";\\xCB.5 &;?./ &;\\xC5.) &;\\xC6.# &;\\xCC\"),peg$decode(\"%;\\u017A/S#;\\u023F/J$;\\xED/A$;\\u023F/8$;\\xCD.\\\" &\\\"/*$8%:\\xFA%#$\\\" )(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\xC7/@#;\\u023F/7$;\\xC8.\\\" &\\\"/)$8#:\\xFC#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xFB\"),peg$decode(\"<%;\\u017B/@#;\\u023F/7$;\\xCD.\\\" &\\\"/)$8#:\\xFE#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\xFD\"),peg$decode(\"<;\\xC9.# &;\\xCA=.\\\" 7\\xFF\"),peg$decode(\"%;\\u01F3/V#;\\u023F/M$;\\u01C6/D$;\\u023F/;$;\\u0183/2$;\\u023F/)$8&:\\u0100&\\\"%!)(&'#(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;k/;#;\\u01F3/2$;\\u023F/)$8#:\\u0101#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/R#;\\xC0/I$;\\u023F/@$;\\u01A1/7$;\\xCD.\\\" &\\\"/)$8%:\\u0103%\\\"# )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0102\"),peg$decode(\"<%;\\x94/7#;\\xCD.\\\" &\\\"/)$8\\\":\\u0105\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0104\"),peg$decode(\"<%%;\\u01BF/Q#%%<;\\u0193.# &;\\u0236=.##&&!&'#/,#;\\u023F/#$+\\\")(\\\"'#&'#/#$+\\\")(\\\"'#&'#.\\\" &\\\"/;#;\\u0195/2$;\\u023F/)$8#:\\u0107#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\u0106\"),peg$decode(\"<%;\\xCF.\\\" &\\\"/J#;\\u023F/A$;\\xD0.\\\" &\\\"/3$;\\u01FC/*$8$:\\u0109$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0108\"),peg$decode(\"%;\\u0202/1#;\\u023F/($8\\\":\\x90\\\"!!)(\\\"'#&'#\"),peg$decode(\";\\xD1.# &;\\xD3\"),peg$decode(\"%;\\u01FE.) &;\\u021A.# &;\\u01EA/@#;\\u023F/7$;\\xD2.\\\" &\\\"/)$8#:\\u010A#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u020C/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01F5.# &;\\u01D1/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\xD5.# &;\\xD6/1#;\\u023F/($8\\\":\\u010D\\\"!!)(\\\"'#&'#=.\\\" 7\\u010C\"),peg$decode(\"<%;\\u0209/;#;\\u023F/2$;p/)$8#:\\u010F#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u010E\"),peg$decode(\"<%;\\u022B/;#;\\u023F/2$;\\xE6/)$8#:\\u0111#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0110\"),peg$decode(\"<%;\\u022D/;#;\\u023F/2$;\\xEB/)$8#:\\u0113#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0112\"),peg$decode(\"%;\\xDA/B#;\\u023F/9$$;\\xD90#*;\\xD9&/)$8#:\\u0114#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\xDA/1$;\\u023F/($8#:\\u0115#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;p/@#;\\u023F/7$;\\u012F.\\\" &\\\"/)$8#:\\u0117#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0116\"),peg$decode(\"<;\\u01A4=.\\\" 7\\u0118\"),peg$decode(\"<;\\u0218.5 &;\\u021B./ &;\\u01B7.) &;\\u01E6.# &;\\u01EF=.\\\" 7\\u0119\"),peg$decode(\"<%;\\xDE/;#;\\u023F/2$;\\xE2/)$8#:\\u011B#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u011A\"),peg$decode(\";\\xDF.# &;\\xE0\"),peg$decode(\"<%;\\u01F6/@#;\\u023F/7$;\\xE1.\\\" &\\\"/)$8#:\\u011D#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u011C\"),peg$decode(\"<%;\\u0218/1#;\\u023F/($8\\\":\\u011F\\\"!!)(\\\"'#&'#=.\\\" 7\\u011E\"),peg$decode(\"<%;\\u020A/;#;\\u023F/2$;\\xDC/)$8#:\\u0121#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0120\"),peg$decode(\"%;\\xE3/2#;\\xE5/)$8\\\":\\u0122\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\xE4/2#;\\u0187/)$8\\\":\\u0124\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0123\"),peg$decode(\"<%;\\u01F9/,#;\\u023F/#$+\\\")(\\\"'#&'#=.\\\" 7\\u0125\"),peg$decode(\"<%;\\xE9.) &;\\x95.# &;\\xEE/1#;\\u023F/($8\\\":\\u0126\\\"!!)(\\\"'#&'#=.\\\" 7\\u0112\"),peg$decode(\"<%;\\u01A0/T#;\\xE8/K$;\\u023F/B$$;\\xE70#*;\\xE7&/2$;\\u01A1/)$8%:\\u0128%\\\"#!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0127\"),peg$decode(\"%;\\u01A2/:#;\\xE8/1$;\\u023F/($8#:\\u0129#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0178/' 8!:\\u012B!! )=.\\\" 7\\u012A\"),peg$decode(\"<%;\\xEA/2#;\\xEB/)$8\\\":\\u012C\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0112\"),peg$decode(\"<%;\\u022D/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#=.\\\" 7\\u012D\"),peg$decode(\"%;\\xED/B#;\\u023F/9$$;\\xEC0#*;\\xEC&/)$8#:\\u012E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\xED/1$;\\u023F/($8#:\\x93#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/C#;q/:$;\\u023F/1$;\\u01A1/($8$:\\u0130$!\\\")($'#(#'#(\\\"'#&'#=.\\\" 7\\u012F\"),peg$decode(\"<%;\\u01D6/;#;\\u023F/2$;\\u022D/)$8#:\\u0132#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0131\"),peg$decode(\"<%;\\xF0.) &;\\u01F8.# &;\\u01E2/' 8!:\\xB0!! )=.\\\" 7\\u0133\"),peg$decode(\"<%;\\u0228/@#;\\u023F/7$;\\xF1.\\\" &\\\"/)$8#:\\u0135#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u0134\"),peg$decode(\"%;\\u01BB/1#;\\u023F/($8\\\":\\u0136\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\xF3/\\x8A#;\\xF4.\\\" &\\\"/|$;\\xC6/s$;\\u023F/j$;\\xF5/a$;\\xB9.\\\" &\\\"/S$;\\xA9.\\\" &\\\"/E$;\\u023F/<$;\\xAA.\\\" &\\\"/.$8):\\u0138)'('&$#\\\" )()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0137\"),peg$decode(\"<%;\\u022A/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#=.\\\" 7\\u0139\"),peg$decode(\"<%;\\u020A/C#;\\u023F/:$;\\xDC/1$;\\u023F/($8$:\\u013B$!!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u013A\"),peg$decode(\"<%;\\u0220/C#;\\u023F/:$;\\xF6/1$;\\u023F/($8$:\\u013D$!!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u013C\"),peg$decode(\"%;\\xF8/9#$;\\xF70#*;\\xF7&/)$8\\\":\\u012E\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u023F/:#;\\u01A2/1$;\\xF8/($8#:\\u0129#! )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u017D/M#;\\u023F/D$;\\u01AC/;$;p/2$;\\u023F/)$8%:\\u013F%\\\"$!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u013E\"),peg$decode(\"<%;\\xFA/h#;\\xC6/_$;\\u023F/V$;\\xB9.\\\" &\\\"/H$;\\xA9.\\\" &\\\"/:$;\\xAA.\\\" &\\\"/,$8&:\\u0141&%%$\\\"! )(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0140\"),peg$decode(\"<%;\\u01D9/C#;\\u023F/:$;\\u01E9/1$;\\u023F/($8$:\\xB0$!#)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0142\"),peg$decode(\"<;\\xFD.5 &;\\xFE./ &;\\xFF.) &;\\u0100.# &;\\u0101=.\\\" 7\\u0143\"),peg$decode(\"%;\\u01D0/1#;\\u023F/($8\\\":\\xB0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u01F2./ &;\\u0227.) &;\\u022E.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0102/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u0227.) &;\\u022E.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0143/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u01F2.) &;\\u022E.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0147/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u01F2.) &;\\u0227.# &;\\u022F/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u0156/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<%;\\xFC/>#;\\u0221./ &;\\u01F2.) &;\\u0227.# &;\\u022E/#$+\\\")(\\\"'#&'#=.##&&!&'#/1#;\\u015A/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0103/T#;\\u0105.\\\" &\\\"/F$;\\u017B/=$;\\u023F/4$;\\u0106/+$8%:\\u0145%$$#\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0144\"),peg$decode(\"%;\\xFC/J#;\\u0104.\\\" &\\\"/<$;\\u0221/3$;\\u023F/*$8$:\\u0146$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0223.# &;\\u0222/1#;\\u023F/($8\\\":\\u0147\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u01EE/N#;\\u023F/E$;k/<$;\\u01E4/3$;\\u023F/*$8%:\\u0149%#$\\\"!)(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0148\"),peg$decode(\";\\u0107.# &;\\u0142\"),peg$decode(\"<%;\\u01A0/Z#;\\u0109/Q$$;\\u010B0#*;\\u010B&/A$;\\u01A1/8$;\\u0108.\\\" &\\\"/*$8%:\\u014B%##\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u014A\"),peg$decode(\"%;\\u0233/D#;\\u023F/;$;\\u021D/2$;\\u023F/)$8$:\\u014C$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u010C/B#;\\u023F/9$$;\\u010A0#*;\\u010A&/)$8#:\\u012E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2/:#;\\u010C/1$;\\u023F/($8#:\\xAA#!!)(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01A2.\\\" &\\\"/1#;\\u0120/($8\\\":\\u014D\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u010D/O#;\\u023F/F$;\\u010E.\\\" &\\\"/8$;\\u010F.\\\" &\\\"/*$8$:\\u014F$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u014E\"),peg$decode(\"%;\\u0195/=#%<;\\u023F=/##&'!&&#/($8\\\":p\\\"!!)(\\\"'#&'#.\\\\ &%%<;\\u010E.) &;\\u0111.# &;\\u0120=.##&&!&'#/:#;\\u023F/1$;\\u0198/($8#:p#! )(#'#(\\\"'#&'#\"),peg$decode(\"<%;&/1#;\\u023F/($8\\\":\\u0151\\\"!!)(\\\"'#&'#=.\\\" 7\\u0150\"),peg$decode(\"%;\\u0111/B#$;\\u01100#*;\\u0110&/2$;\\u023F/)$8#:\\u012E#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u023F/1#;\\u0111/($8\\\":\\u0129\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0112.\\\" &\\\"/A#;\\u0114/8$;\\u0112.\\\" &\\\"/*$8#:\\u0153##\\\"! )(#'#(\\\"'#&'#=.\\\" 7\\u0152\"),peg$decode(\"%$;\\u0113/�#*;\\u0113&&&#/' 8!:\\u0154!! )\"),peg$decode(\"<%;\\u01CF/C#;\\u023F/:$;\\u0195/1$;\\u023F/($8$:\\u0156$!!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0155\"),peg$decode(\";\\u0116.; &;\\u0119.5 &;\\u011C./ &;\\u011D.) &;\\u011F.# &;\\u0115\"),peg$decode(\"<%;\\u0135/' 8!:\\u0158!! )=.\\\" 7\\u0157\"),peg$decode(\"<%;\\u0117/U#;\\u012F.\\\" &\\\"/G$;\\u0130.\\\" &\\\"/9$;\\u0118.\\\" &\\\"/+$8$:\\u015A$$#\\\"! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0159\"),peg$decode(\"<%;\\u020F.# &;\\u020E/D#;\\u023F/;$;\\u01FD/2$;\\u023F/)$8$:\\u015C$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u015B\"),peg$decode(\"<%;\\u01C2/1#;\\u023F/($8\\\":\\u015E\\\"!!)(\\\"'#&'#=.\\\" 7\\u015D\"),peg$decode(\"%;\\u011A/@#;\\u0130.\\\" &\\\"/2$;\\u023F/)$8#:\\u015F#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u011B.# &;\\u0229/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#=.\\\" 7\\u0160\"),peg$decode(\"<%;k.\\\" &\\\"/2#;\\u0206/)$8\\\":\\u0162\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u0161\"),peg$decode(\"<;\\u0132=.\\\" 7\\u0163\"),peg$decode(\"<%;\\u01D6/D#;\\u023F/;$;\\u011E/2$;\\u023F/)$8$:\\u0165$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0164\"),peg$decode(\";L./ &;5.) &;,.# &;3\"),peg$decode(\"<%;\\u012D/' 8!:\\u0167!! )=.\\\" 7\\u0166\"),peg$decode(\"<%;\\u0112.\\\" &\\\"/J#;\\u0121/A$;\\u023F/8$;\\u0112.\\\" &\\\"/*$8$:\\u0169$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0168\"),peg$decode(\";\\u0133.) &;\\u0123.# &;\\u0122\"),peg$decode(\"<%;\\u0132/' 8!:\\u016B!! )=.\\\" 7\\u016A\"),peg$decode(\"<%;\\u0124/J#;\\u023F/A$;\\u0129/8$;\\u0130.\\\" &\\\"/*$8$:\\u016D$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u016C\"),peg$decode(\"%;\\u0125.# &;\\u0126/1#;\\u023F/($8\\\":\\u016E\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u020F/;#;\\u023F/2$;\\u01FD/)$8#:\\u016F#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u015B\"),peg$decode(\"<%;\\u0229/' 8!:\\u0171!! )=.\\\" 7\\u0170\"),peg$decode(\"%;\\u01A0/T#;\\u012B/K$;\\u023F/B$$;\\u012A0#*;\\u012A&/2$;\\u01A1/)$8%:\\u0172%\\\"#!)(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0127/' 8!:\\u0173!! )\"),peg$decode(\"%;\\u0127/' 8!:\\u0174!! )\"),peg$decode(\"%;\\u01A2/:#;\\u012B/1$;\\u023F/($8#:\\u0129#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u012C/O#;\\u023F/F$;\\u012F.\\\" &\\\"/8$;\\u0118.\\\" &\\\"/*$8$:\\u0176$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u0175\"),peg$decode(\"%;\\xE8/\\\\#%<%;\\u023F/8#;\\u01B3.) &;\\u01A1.# &;\\u012F/#$+\\\")(\\\"'#&'#=/##&'!&&#/($8\\\":p\\\"!!)(\\\"'#&'#.# &;p\"),peg$decode(\"<%$;\\u012E/�#*;\\u012E&&&#/' 8!:\\u0178!! )=.\\\" 7\\u0177\"),peg$decode(\"%;\\u01CB/C#;\\u023F/:$;\\u0181/1$;\\u023F/($8$:p$!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01C0.# &;\\u01DA/1#;\\u023F/($8\\\":\\u017A\\\"!!)(\\\"'#&'#=.\\\" 7\\u0179\"),peg$decode(\"%;\\u0131/;#;\\xDC/2$;\\u023F/)$8#:\\u017B#\\\"\\\"!)(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0209/D#;\\u023F/;$;\\u01CE/2$;\\u023F/)$8$:\\u017D$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u017C\"),peg$decode(\"%;\\u01CA/;#;\\u023F/2$;L/)$8#:\\u017E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0134/E#;\\xE6/<$;\\u0135/3$;\\u023F/*$8$:\\u0180$##\\\"!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u017F\"),peg$decode(\"<%;\\u01E8/D#;\\u023F/;$;\\u01FD/2$;\\u023F/)$8$:\\u0182$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0181\"),peg$decode(\"%;\\u0136/F#;\\u0137.\\\" &\\\"/8$;\\u0140.\\\" &\\\"/*$8#:\\u0183##\\\"! )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0213/D#;\\u023F/;$;\\u0187/2$;\\u023F/)$8$:\\u0185$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u0184\"),peg$decode(\"%;\\u0139/B#;\\u023F/9$$;\\u01380#*;\\u0138&/)$8#:\\u0186#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0139/1#;\\u023F/($8\\\":\\u0136\\\"!!)(\\\"'#&'#\"),peg$decode(\"<;\\u013A.# &;\\u013F=.\\\" 7\\u0187\"),peg$decode(\"%;\\u0209/T#;\\u023F/K$;\\u01D9.# &;\\u022A/<$;\\u023F/3$;\\u013B/*$8%:\\u0188%#$\\\" )(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"<;\\u013C.) &;\\u013D.# &;\\u013E=.\\\" 7\\u0189\"),peg$decode(\"%;\\u0220/J#;\\u023F/A$;\\u0206.# &;\\u01D6/2$;\\u023F/)$8$:\\u018A$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01C7.# &;\\u0219/1#;\\u023F/($8\\\":\\u018B\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u0203/D#;\\u023F/;$;\\u01B8/2$;\\u023F/)$8$:\\u018C$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0201/D#;\\u023F/;$;\\u0195/2$;\\u023F/)$8$:\\u018D$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;k.\\\" &\\\"/J#;\\u01D7/A$;\\u023F/8$;\\u0141.\\\" &\\\"/*$8$:\\u018F$##\\\" )($'#(#'#(\\\"'#&'#=.\\\" 7\\u018E\"),peg$decode(\"%;\\u01F4/J#;\\u023F/A$;\\u01D8.# &;\\u01F0/2$;\\u023F/)$8$:\\u0190$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0159/' 8!:\\u0191!! )\"),peg$decode(\"<%;\\u0144/c#;\\u0105.\\\" &\\\"/U$;\\u0183/L$;\\u023F/C$;\\u0146/:$;\\xB9.\\\" &\\\"/,$8&:\\u0193&%%$#! )(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0192\"),peg$decode(\"%;\\xFC/J#;\\u0145.\\\" &\\\"/<$;\\u01F2/3$;\\u023F/*$8$:\\u0194$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0229/1#;\\u023F/($8\\\":\\u0195\\\"!!)(\\\"'#&'#\"),peg$decode(\"<%;\\u0209/N#;\\u023F/E$;\\u017B/<$;\\u023F/3$;\\u0128/*$8%:\\u0197%#$\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0196\"),peg$decode(\"<%;\\u0148/\\xA6#;\\u0105.\\\" &\\\"/\\x98$;\\u0184.\\\" &\\\"/\\x8A$;\\u023F/\\x81$;\\u0149/x$;\\u0209/o$;\\u023F/f$;\\u017B/]$;\\u023F/T$;\\u0151.\\\" &\\\"/F$;\\u0152.\\\" &\\\"/8$;\\u0153//$8,:\\u0199,(+*)'$\\\"! )(,'#(+'#(*'#()'#(('#(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u0198\"),peg$decode(\"%;\\xFC/J#;\\u0104.\\\" &\\\"/<$;\\u0227/3$;\\u023F/*$8$:\\u019A$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u014A.\\\" &\\\"/2#;\\u014C/)$8\\\":\\u019C\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u019B\"),peg$decode(\"%;\\u01C3.) &;\\u01BA.# &;\\u014B/1#;\\u023F/($8\\\":\\u019D\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u01F7/;#;\\u023F/2$;\\u0207/)$8#:\\u019E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<;\\u014D.# &;\\u014E=.\\\" 7\\u019F\"),peg$decode(\"%;\\u01D9.# &;\\u01F6/1#;\\u023F/($8\\\":\\u01A0\\\"!!)(\\\"'#&'#\"),peg$decode(\"%;\\u022A/@#;\\u023F/7$;\\u014F.\\\" &\\\"/)$8#:\\u01A1#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0207/;#;\\u023F/2$;\\u0150/)$8#:\\u01A2#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\xE8/B#;\\u023F/9$$;\\xE70#*;\\xE7&/)$8#:\\u012E#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01E7/c#;\\u023F/Z$;\\u01DE/Q$;\\u023F/H$;\\u021C.) &3\\u01A3\\\"\\\"5)7\\u01A4/3$;\\u023F/*$8&:\\u01A5&#%#!)(&'#(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0230/D#;\\u023F/;$;p/2$;\\u023F/)$8$:\\u01A6$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\x84\"),peg$decode(\"<%;\\u01C4/W#;\\u023F/N$;\\u0154/E$;\\u023F/<$;\\u01E0/3$;\\u023F/*$8&:\\u01A8&#%#!)(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01A7\"),peg$decode(\"%$;\\u0155/�#*;\\u0155&&&#/' 8!:\\u01A9!! )\"),peg$decode(\"%;\\x8C/:#;\\u023F/1$;$/($8#:\\\"#!\\\")(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0158/T#;\\u0105.\\\" &\\\"/F$;\\u0157/=$;\\u023F/4$;\\u0159/+$8%:\\u01AB%$$#\\\" )(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01AA\"),peg$decode(\"%;\\u0185/;#;\\u023F/2$;\\xE6/)$8#:\\u01AC#\\\"\\\" )(#'#(\\\"'#&'#.# &;\\u0185\"),peg$decode(\"%;\\xFC/J#;\\u0104.\\\" &\\\"/<$;\\u022E/3$;\\u023F/*$8$:\\u01AD$##\\\"!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u01BF/D#;\\u023F/;$;\\xA8/2$;\\u023F/)$8$:\\u012C$\\\"#!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u015B/f#;\\u0105.\\\" &\\\"/X$;\\u017B/O$;\\u023F/F$;\\u022B/=$;\\u023F/4$;\\u015C/+$8':\\u01AF'$&%$ )(''#(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01AE\"),peg$decode(\"%;\\xFC/N#;\\u022F/E$;\\u023F/<$;\\u0221/3$;\\u023F/*$8%:\\u01B0%#$#!)(%'#($'#(#'#(\\\"'#&'#\"),peg$decode(\"%;\\u0197/@#;\\u023F/7$;\\u015D.\\\" &\\\"/)$8#:\\u01B1#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u01A0/Z#;\\u023F/Q$;\\u015E.\\\" &\\\"/C$;\\u023F/:$;\\u01A1/1$;\\u023F/($8&:\\u01B3&!#)(&'#(%'#($'#(#'#(\\\"'#&'#=.\\\" 7\\u01B2\"),peg$decode(\"%;\\u0160/9#$;\\u015F0#*;\\u015F&/)$8\\\":\\u01B4\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u023F/H#;\\u01A2/?$;\\u023F/6$;\\u0160.\\\" &\\\"/($8$:\\u01B5$! )($'#(#'#(\\\"'#&'#\"),peg$decode(\"%%<%;\\u0195/;#;\\u023F/2$;&.# &;\\u0111/#$+#)(#'#(\\\"'#&'#=.##&&!&'#/:#;p/1$;\\u023F/($8#:\\u0130#!!)(#'#(\\\"'#&'#.x &%;\\u0161/n#%%<;\\u0193=.##&&!&'#/,#;\\u023F/#$+\\\")(\\\"'#&'#/F$;\\u010E.\\\" &\\\"/8$;\\u010F.\\\" &\\\"/*$8$:\\u014F$##! )($'#(#'#(\\\"'#&'#\"),peg$decode(\";\\u0195.# &;\\u0198\"),peg$decode(\"<%;\\u0163/;#;\\u017B/2$;\\u023F/)$8#:\\u01B7#\\\"\\\"!)(#'#(\\\"'#&'#=.\\\" 7\\u01B6\"),peg$decode(\"<%;\\u01DD/J#;\\u023F/A$;\\u0164/8$;\\u0165.\\\" &\\\"/*$8$:\\u01B9$##! )($'#(#'#(\\\"'#&'#=.\\\" 7\\u01B8\"),peg$decode(\"<%;\\u0221./ &;\\u01F2.) &;\\u0227.# &;\\u022E/1#;\\u023F/($8\\\":\\u010B\\\"!!)(\\\"'#&'#=.\\\" 7\\u01BA\"),peg$decode(\"<%;\\u01EE/D#;\\u023F/;$;\\u01E4/2$;\\u023F/)$8$:\\u01BC$\\\"#!)($'#(#'#(\\\"'#&'#=.\\\" 7\\u01BB\"),peg$decode(\"<%;\\u01AE/,#;\\u01AE/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01BD\"),peg$decode(\"<;\\u01AA=.\\\" 7\\u01BE\"),peg$decode(\"<;\\u01AB=.\\\" 7\\u01BF\"),peg$decode(\"<;\\u01A4=.\\\" 7\\u01C0\"),peg$decode(\"<;\\u01B5=.\\\" 7\\u01C1\"),peg$decode(\"<;\\u01AF=.\\\" 7\\u01C2\"),peg$decode(\"<%;\\u01B0/,#;\\u01B0/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01C3\"),peg$decode(\"<%;\\u01B1/,#;\\u01B1/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01C4\"),peg$decode(\"<;\\u01AD=.\\\" 7\\u01C5\"),peg$decode(\"<;\\u01AE=.\\\" 7\\u01C6\"),peg$decode(\"<;\\u01B0=.\\\" 7\\u01C7\"),peg$decode(\"<;\\u01B1=.\\\" 7\\u01C8\"),peg$decode(\"<%;\\u01B0/,#;\\u01AC/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01C9\"),peg$decode(\"<%;\\u01B1/,#;\\u01AC/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CA\"),peg$decode(\"<%;\\u01AC/1#;\\u01AC.\\\" &\\\"/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CB\"),peg$decode(\"<%;\\u01B2/,#;\\u01AC/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CC\"),peg$decode(\"<%;\\u01B0/,#;\\u01B1/#$+\\\")(\\\"'#&'#=.\\\" 7\\u01CC\"),peg$decode(\"<%;\\u01FA/@#;\\u023F/7$;k.\\\" &\\\"/)$8#:\\u01CE#\\\"\\\" )(#'#(\\\"'#&'#=.\\\" 7\\u01CD\"),peg$decode(\"<;\\u0195.# &;\\u0198=.\\\" 7\\u01CF\"),peg$decode(\"<%;\\u0178/' 8!:\\u01D1!! )=.\\\" 7\\u01D0\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01D3\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01D2\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01D5\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01D4\"),peg$decode(\"%;\\u0178/2#;\\u01A3/)$8\\\":\\u01D6\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u017F.) &;\\u0180.# &;\\u017E/2#;\\u0178/)$8\\\":\\u01D8\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01D7\"),peg$decode(\"%;\\u023F/& 8!:\\u01D9! )\"),peg$decode(\"%;\\u017C/2#;\\u0180/)$8\\\":\\u01DA\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u0178/2#;\\u01A3/)$8\\\":D\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%;\\u0178/' 8!:\\u01DC!! )=.\\\" 7\\u01DB\"),peg$decode(\"<%;\\u0178/' 8!:\\u01DE!! )=.\\\" 7\\u01DD\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E0\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01DF\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E2\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01E1\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E4\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01E3\"),peg$decode(\"<%;\\u017C.\\\" &\\\"/2#;\\u0178/)$8\\\":\\u01E6\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u01E5\"),peg$decode(\"<%;\\u0188.# &;\\u017B/1#;\\u023F/($8\\\":\\u01E8\\\"!!)(\\\"'#&'#=.\\\" 7\\u01E7\"),peg$decode(\"%;\\u017B/;#;\\u023F/2$;\\xE6/)$8#:\\u01E9#\\\"\\\" )(#'#(\\\"'#&'#\"),peg$decode(\"<%;\\u0178/' 8!:\\u01EB!! )=.\\\" 7\\u01EA\"),peg$decode(\"<%;\\u0178/' 8!:\\u01ED!! )=.\\\" 7\\u01EC\"),peg$decode(\"<%;\\u018C/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01EF\\\"!!)(\\\"'#&'#.\\xC5 &%;\\u018D/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F0\\\"!!)(\\\"'#&'#.\\x9B &%;\\u018F/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F1\\\"!!)(\\\"'#&'#.q &%;\\u0190/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F2\\\"!!)(\\\"'#&'#.G &%;\\u0192/=#%<;\\u0193=.##&&!&'#/($8\\\":\\u01F3\\\"!!)(\\\"'#&'#=.\\\" 7\\u01EE\"),peg$decode(\"<%%3\\u01F5\\\"\\\"5!7\\u01F6.\\\" &\\\"/F#3\\u01F7\\\"\\\"5#7\\u01F8.\\\" &\\\"/2$3\\u01F9\\\"\\\"5$7\\u01FA/#$+#)(#'#(\\\"'#&'#.k &%3\\u01FB\\\"\\\"5$7\\u01FC.5 &3\\u01FD\\\"\\\"5&7\\u01FE.) &3\\u01FF\\\"\\\"5$7\\u0200.\\\" &\\\"/2#3\\u0201\\\"\\\"5$7\\u0202/#$+\\\")(\\\"'#&'#.) &3\\u0203\\\"\\\"5$7\\u0204/' 8!:\\u010B!! )=.\\\" 7\\u01F4\"),peg$decode(\"<%;\\u018E.5 &3\\u0206\\\"\\\"5%7\\u0207.) &3\\u0208\\\"\\\"5$7\\u0209/' 8!:\\u010B!! )=.\\\" 7\\u0205\"),peg$decode(\"<%3\\u020B\\\"\\\"5&7\\u020C/i#%$4(\\\"\\\"5!7)/,#0)*4(\\\"\\\"5!7)&&&#/2#3\\u020D\\\"\\\"5)7\\u020E/#$+\\\")(\\\"'#&'#.\\\" &\\\"/)$8\\\":\\u020F\\\"\\\"! )(\\\"'#&'#=.\\\" 7\\u020A\"),peg$decode(\"<%3\\u0211\\\"\\\"5'7\\u0212.\\x95 &3\\u0213\\\"\\\"5'7\\u0214.\\x89 &3\\u0215\\\"\\\"5'7\\u0216.} &%3\\u0217\\\"\\\"5$7\\u0218/7#3\\u0219\\\"\\\"5$7\\u021A.\\\" &\\\"/#$+\\\")(\\\"'#&'#.S &%3\\u0219\\\"\\\"5$7\\u021A/7#3\\u021B\\\"\\\"5%7\\u021C.\\\" &\\\"/#$+\\\")(\\\"'#&'#.) &3\\u021D\\\"\\\"5&7\\u021E/' 8!:\\u010B!! )=.\\\" 7\\u0210\"),peg$decode(\"<%%3\\u0220\\\"\\\"5#7\\u0221/V#2\\u0222\\\"\\\"6\\u02227\\u0223.A &2\\u0224\\\"\\\"6\\u02247\\u0225.5 &2\\u0226\\\"\\\"6\\u02267\\u0227.) &3\\u0228\\\"\\\"5$7\\u0229/#$+\\\")(\\\"'#&'#.q &%3\\u022A\\\"\\\"5#7\\u022B.A &3\\u01FD\\\"\\\"5&7\\u01FE.5 &3\\u022C\\\"\\\"5%7\\u022D.) &3\\u01FB\\\"\\\"5$7\\u01FC.\\\" &\\\"/2#3\\u0220\\\"\\\"5#7\\u0221/#$+\\\")(\\\"'#&'#.# &;\\u0191/' 8!:\\u010B!! )=.\\\" 7\\u021F\"),peg$decode(\"%3\\u022E\\\"\\\"5(7\\u022F/d#%$4(\\\"\\\"5!7)/,#0)*4(\\\"\\\"5!7)&&&#/2#3\\u0230\\\"\\\"5%7\\u0231/#$+\\\")(\\\"'#&'#/)$8\\\":\\u0232\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\"<%3\\u0234\\\"\\\"5$7\\u0235/' 8!:\\u010B!! )=.\\\" 7\\u0233\"),peg$decode(\"4\\u0236\\\"\\\"5!7\\u0237\"),peg$decode(\"%2\\u0238\\\"\\\"6\\u02387\\u0239/K#$4\\u023A\\\"\\\"5!7\\u023B/,#0)*4\\u023A\\\"\\\"5!7\\u023B&&&#/)$8\\\":\\u023C\\\"\\\"! )(\\\"'#&'#\"),peg$decode(\";\\u0196.# &;\\u0197\"),peg$decode(\";\\u0199./ &;\\u019D.) &;\\u019B.# &;\\u019C\"),peg$decode(\"%%<;\\u0234.# &;>=.##&&!&'#/J#$;\\u0194.# &;\\u0193/,#0)*;\\u0194.# &;\\u0193&&&#/($8\\\":\\xD6\\\"! )(\\\"'#&'#\"),peg$decode(\"%%<;\\u0236.# &;>=.##&&!&'#/J#$;\\u0194.# &;\\u0193/,#0)*;\\u0194.# &;\\u0193&&&#/($8\\\":\\u023D\\\"! )(\\\"'#&'#\"),peg$decode(\"%;\\u019E/\\x99#;\\u023F/\\x90$%$%%<;\\u019A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#0G*%%<;\\u019A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#&/\\\"!&,)/1$;\\u019A/($8$:\\u023F$!!)($'#(#'#(\\\"'#&'#\"),peg$decode(\"%$4\\u0240\\\"\\\"5!7\\u02410)*4\\u0240\\\"\\\"5!7\\u0241&/5#;\\u019F/,$;\\u023F/#$+#)(#'#(\\\"'#&'#\"),peg$decode(\"%2\\u0242\\\"\\\"6\\u02427\\u0243/k#$2\\u0244\\\"\\\"6\\u02447\\u0245.) &4\\u0246\\\"\\\"5!7\\u024705*2\\u0244\\\"\\\"6\\u02447\\u0245.) &4\\u0246\\\"\\\"5!7\\u0247&/7$2\\u0242\\\"\\\"6\\u02427\\u0243/($8#:\\u0248#!!)(#'#(\\\"'#&'#\"),peg$decode(\"%2\\u0249\\\"\\\"6\\u02497\\u024A/k#$26\\\"\\\"6677.) &48\\\"\\\"5!7905*26\\\"\\\"6677.) &48\\\"\\\"5!79&/7$2\\u0249\\\"\\\"6\\u02497\\u024A/($8#:\\u024B#!!)(#'#(\\\"'#&'#\"),peg$decode(\"%2\\u024C\\\"\\\"6\\u024C7\\u024D/k#$2\\u024E\\\"\\\"6\\u024E7\\u024F.) &4\\u0250\\\"\\\"5!7\\u025105*2\\u024E\\\"\\\"6\\u024E7\\u024F.) &4\\u0250\\\"\\\"5!7\\u0251&/7$2\\u024C\\\"\\\"6\\u024C7\\u024D/($8#:\\u0252#!!)(#'#(\\\"'#&'#\"),peg$decode(\"<%2\\u0254\\\"\\\"6\\u02547\\u0255/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0253\"),peg$decode(\"<%2\\u0257\\\"\\\"6\\u02577\\u0258/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0256\"),peg$decode(\"<%2\\u025A\\\"\\\"6\\u025A7\\u025B/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0259\"),peg$decode(\"<%2\\u025D\\\"\\\"6\\u025D7\\u025E/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u025C\"),peg$decode(\"<%2\\u0260\\\"\\\"6\\u02607\\u0261/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u025F\"),peg$decode(\"<%2\\u0263\\\"\\\"6\\u02637\\u0264/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0262\"),peg$decode(\"<%2\\u0266\\\"\\\"6\\u02667\\u0267/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0265\"),peg$decode(\"<%2\\u0269\\\"\\\"6\\u02697\\u026A/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0268\"),peg$decode(\"<%2\\u0249\\\"\\\"6\\u02497\\u024A/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026B\"),peg$decode(\"<%2\\u0242\\\"\\\"6\\u02427\\u0243/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026C\"),peg$decode(\"<%2\\u024C\\\"\\\"6\\u024C7\\u024D/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026D\"),peg$decode(\"<%2\\u026F\\\"\\\"6\\u026F7\\u0270/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u026E\"),peg$decode(\"<%2\\u0272\\\"\\\"6\\u02727\\u0273/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0271\"),peg$decode(\"<%2\\u0275\\\"\\\"6\\u02757\\u0276/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0274\"),peg$decode(\"<%2\\u0277\\\"\\\"6\\u02777\\u0278/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01CB\"),peg$decode(\"<%2\\u027A\\\"\\\"6\\u027A7\\u027B/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0279\"),peg$decode(\"<%2\\u027D\\\"\\\"6\\u027D7\\u027E/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u027C\"),peg$decode(\"<%2\\u027F\\\"\\\"6\\u027F7\\u0280/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01C2\"),peg$decode(\"<%2\\u0281\\\"\\\"6\\u02817\\u0282/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01C7\"),peg$decode(\"<%2\\u0283\\\"\\\"6\\u02837\\u0284/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u01C8\"),peg$decode(\"<%2\\u0286\\\"\\\"6\\u02867\\u0287/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0285\"),peg$decode(\"<%2\\u0289\\\"\\\"6\\u02897\\u028A/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u0288\"),peg$decode(\"<%2a\\\"\\\"6a7b/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u028B\"),peg$decode(\"<%2\\u028D\\\"\\\"6\\u028D7\\u028E/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u028C\"),peg$decode(\"<%2\\u0290\\\"\\\"6\\u02907\\u0291/1#;\\u023F/($8\\\":\\\"\\\"!!)(\\\"'#&'#=.\\\" 7\\u028F\"),peg$decode(\"%3\\u0292\\\"\\\"5%7\\u0293/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0294\\\"\\\"5&7\\u0295/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0296\\\"\\\"5#7\\u0297/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0298\\\"\\\"5%7\\u0299/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u029A\\\"\\\"5#7\\u029B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u029C\\\"\\\"5%7\\u029D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u029E\\\"\\\"5'7\\u029F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A0\\\"\\\"5#7\\u02A1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A2\\\"\\\"5\\\"7\\u02A3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A4\\\"\\\"5#7\\u02A5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A6\\\"\\\"5&7\\u02A7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02A8\\\"\\\"5-7\\u02A9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02AA\\\"\\\"5&7\\u02AB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02AC\\\"\\\"5%7\\u02AD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02AE\\\"\\\"5'7\\u02AF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B0\\\"\\\"5\\\"7\\u02B1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B2\\\"\\\"5'7\\u02B3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B4\\\"\\\"5$7\\u02B5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B6\\\"\\\"5$7\\u02B7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02B8\\\"\\\"5%7\\u02B9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02BA\\\"\\\"5'7\\u02BB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02BC\\\"\\\"5&7\\u02BD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02BE\\\"\\\"5&7\\u02BF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C0\\\"\\\"5(7\\u02C1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C2\\\"\\\"5*7\\u02C3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C4\\\"\\\"5&7\\u02C5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C6\\\"\\\"5%7\\u02C7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02C8\\\"\\\"5,7\\u02C9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02CA\\\"\\\"5,7\\u02CB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02CC\\\"\\\"517\\u02CD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02CE\\\"\\\"5(7\\u02CF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D0\\\"\\\"5'7\\u02D1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D2\\\"\\\"5*7\\u02D3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D4\\\"\\\"5(7\\u02D5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D6\\\"\\\"5&7\\u02D7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02D8\\\"\\\"5$7\\u02D9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02DA\\\"\\\"5&7\\u02DB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02DC\\\"\\\"5(7\\u02DD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02DE\\\"\\\"5$7\\u02DF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E0\\\"\\\"5$7\\u02E1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E2\\\"\\\"5$7\\u02E3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E4\\\"\\\"5#7\\u02E5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E6\\\"\\\"5&7\\u02E7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02E8\\\"\\\"5&7\\u02E9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02EA\\\"\\\"5)7\\u02EB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02EC\\\"\\\"5&7\\u02ED/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02EE\\\"\\\"5'7\\u02EF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F0\\\"\\\"5$7\\u02F1/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F2\\\"\\\"5#7\\u02F3/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F4\\\"\\\"5'7\\u02F5/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F6\\\"\\\"5$7\\u02F7/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02F8\\\"\\\"5$7\\u02F9/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02FA\\\"\\\"5$7\\u02FB/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02FC\\\"\\\"5%7\\u02FD/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u02FE\\\"\\\"5&7\\u02FF/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0300\\\"\\\"5\\\"7\\u0301/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0302\\\"\\\"5&7\\u0303/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0304\\\"\\\"5)7\\u0305/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0306\\\"\\\"5\\\"7\\u0307/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0308\\\"\\\"5%7\\u0309/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u030A\\\"\\\"5'7\\u030B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u030C\\\"\\\"5)7\\u030D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u030E\\\"\\\"5%7\\u030F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0310\\\"\\\"5&7\\u0311/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0312\\\"\\\"5'7\\u0313/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0314\\\"\\\"5)7\\u0315/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0316\\\"\\\"5$7\\u0317/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0318\\\"\\\"5\\\"7\\u0319/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u031A\\\"\\\"5&7\\u031B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u031C\\\"\\\"5$7\\u031D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u031E\\\"\\\"5#7\\u031F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0320\\\"\\\"5$7\\u0321/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0322\\\"\\\"5$7\\u0323/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0324\\\"\\\"5%7\\u0325/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0326\\\"\\\"5%7\\u0327/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0328\\\"\\\"5'7\\u0329/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u032A\\\"\\\"5\\\"7\\u032B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u032C\\\"\\\"5#7\\u032D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u032E\\\"\\\"5'7\\u032F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3y\\\"\\\"5$7z/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0330\\\"\\\"5\\\"7\\u0331/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0332\\\"\\\"5&7\\u0333/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0334\\\"\\\"5\\\"7\\u0335/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0336\\\"\\\"5\\\"7\\u0337/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0338\\\"\\\"5%7\\u0339/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u033A\\\"\\\"5%7\\u033B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u033C\\\"\\\"5$7\\u033D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u033E\\\"\\\"5&7\\u033F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0340\\\"\\\"5'7\\u0341/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0342\\\"\\\"5%7\\u0343/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0344\\\"\\\"5%7\\u0345/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0346\\\"\\\"5)7\\u0347/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0348\\\"\\\"5*7\\u0349/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u034A\\\"\\\"5&7\\u034B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u034C\\\"\\\"5'7\\u034D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u034E\\\"\\\"5'7\\u034F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0350\\\"\\\"5&7\\u0351/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0352\\\"\\\"5'7\\u0353/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0354\\\"\\\"5(7\\u0355/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0356\\\"\\\"5%7\\u0357/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0358\\\"\\\"5(7\\u0359/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u035A\\\"\\\"5#7\\u035B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u035C\\\"\\\"5%7\\u035D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u035E\\\"\\\"5)7\\u035F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0360\\\"\\\"5&7\\u0361/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0362\\\"\\\"5#7\\u0363/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0364\\\"\\\"5%7\\u0365/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0366\\\"\\\"5$7\\u0367/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0368\\\"\\\"5)7\\u0369/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u036A\\\"\\\"5$7\\u036B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u036C\\\"\\\"5\\\"7\\u036D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u036E\\\"\\\"5+7\\u036F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0370\\\"\\\"5'7\\u0371/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0372\\\"\\\"5%7\\u0373/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0374\\\"\\\"5&7\\u0375/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0376\\\"\\\"5&7\\u0377/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0378\\\"\\\"5%7\\u0379/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u037A\\\"\\\"5&7\\u037B/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u037C\\\"\\\"5&7\\u037D/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u037E\\\"\\\"5$7\\u037F/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0380\\\"\\\"5'7\\u0381/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0382\\\"\\\"5$7\\u0383/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0384\\\"\\\"5%7\\u0385/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0386\\\"\\\"5$7\\u0387/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%3\\u0388\\\"\\\"5'7\\u0389/8#%<;\\u0193=.##&&!&'#/#$+\\\")(\\\"'#&'#\"),peg$decode(\"%;\\u0235/' 8!:\\u038A!! )\"),peg$decode(\";\\u01B7.\\u02F9 &;\\u01B8.\\u02F3 &;\\u01B9.\\u02ED &;\\u01BA.\\u02E7 &;\\u01BB.\\u02E1 &;\\u01BC.\\u02DB &;\\u01BD.\\u02D5 &;\\u01BE.\\u02CF &;\\u01BF.\\u02C9 &;\\u01C0.\\u02C3 &;\\u01C1.\\u02BD &;\\u01C2.\\u02B7 &;\\u01C3.\\u02B1 &;\\u01C4.\\u02AB &;\\u01C5.\\u02A5 &;\\u01C6.\\u029F &;\\u01C7.\\u0299 &;\\u01C8.\\u0293 &;\\u01C9.\\u028D &;\\u01CA.\\u0287 &;\\u01CB.\\u0281 &;\\u01CC.\\u027B &;\\u01CD.\\u0275 &;\\u01CE.\\u026F &;\\u01CF.\\u0269 &;\\u01D0.\\u0263 &;\\u01D1.\\u025D &;\\u01D2.\\u0257 &;\\u01D3.\\u0251 &;\\u01D4.\\u024B &;\\u01D5.\\u0245 &;\\u01D6.\\u023F &;\\u01D7.\\u0239 &;\\u01D8.\\u0233 &;\\u01D9.\\u022D &;\\u01DA.\\u0227 &;\\u01DB.\\u0221 &;\\u01DC.\\u021B &;\\u01DD.\\u0215 &;\\u01DE.\\u020F &;\\u01DF.\\u0209 &;\\u01E0.\\u0203 &;\\u01E1.\\u01FD &;\\u01E2.\\u01F7 &;\\u01E3.\\u01F1 &;\\u01E4.\\u01EB &;\\u01E5.\\u01E5 &;\\u01E6.\\u01DF &;\\u01E7.\\u01D9 &;\\u01E8.\\u01D3 &;\\u01E9.\\u01CD &;\\u01EA.\\u01C7 &;\\u01EB.\\u01C1 &;\\u01EC.\\u01BB &;\\u01ED.\\u01B5 &;\\u01EE.\\u01AF &;\\u01EF.\\u01A9 &;\\u01F0.\\u01A3 &;\\u01F1.\\u019D &;\\u01F2.\\u0197 &;\\u01F3.\\u0191 &;\\u01F4.\\u018B &;\\u01F5.\\u0185 &;\\u01F6.\\u017F &;\\u01F7.\\u0179 &;\\u01F8.\\u0173 &;\\u01F9.\\u016D &;\\u01FA.\\u0167 &;\\u01FB.\\u0161 &;\\u01FC.\\u015B &;\\u01FD.\\u0155 &;\\u01FE.\\u014F &;\\u01FF.\\u0149 &;\\u0200.\\u0143 &;\\u0201.\\u013D &;\\u0202.\\u0137 &;\\u0203.\\u0131 &;\\u0204.\\u012B &;\\u0205.\\u0125 &;\\u0206.\\u011F &;\\u0207.\\u0119 &;\\u0208.\\u0113 &;\\u0209.\\u010D &;\\u020A.\\u0107 &;\\u020B.\\u0101 &;\\u020C.\\xFB &;\\u020D.\\xF5 &;\\u020E.\\xEF &;\\u020F.\\xE9 &;\\u0210.\\xE3 &;\\u0211.\\xDD &;\\u0212.\\xD7 &;\\u0213.\\xD1 &;\\u0214.\\xCB &;\\u0215.\\xC5 &;\\u0216.\\xBF &;\\u0217.\\xB9 &;\\u0218.\\xB3 &;\\u0219.\\xAD &;\\u021A.\\xA7 &;\\u021B.\\xA1 &;\\u021C.\\x9B &;\\u021E.\\x95 &;\\u021F.\\x8F &;\\u0220.\\x89 &;\\u0221.\\x83 &;\\u0223.} &;\\u0224.w &;\\u0225.q &;\\u0226.k &;\\u0227.e &;\\u0228._ &;\\u0229.Y &;\\u022A.S &;\\u022B.M &;\\u022C.G &;\\u022D.A &;\\u022E.; &;\\u022F.5 &;\\u0230./ &;\\u0231.) &;\\u0232.# &;\\u0233\"),peg$decode(\";\\u01B9.\\u0167 &;\\u01BB.\\u0161 &;\\u01BC.\\u015B &;\\u01BE.\\u0155 &;\\u01BF.\\u014F &;\\u01C2.\\u0149 &;\\u01C5.\\u0143 &;\\u01C8.\\u013D &;\\u01CA.\\u0137 &;\\u01CB.\\u0131 &;\\u01CD.\\u012B &;\\u01CF.\\u0125 &;\\u01D0.\\u011F &;\\u01D6.\\u0119 &;\\u01D7.\\u0113 &;\\u01D9.\\u010D &;\\u01DC.\\u0107 &;\\u01DD.\\u0101 &;\\u01DF.\\xFB &;\\u01E1.\\xF5 &;\\u01E2.\\xEF &;\\u01E4.\\xE9 &;\\u01E8.\\xE3 &;\\u01E9.\\xDD &;\\u01EC.\\xD7 &;\\u01ED.\\xD1 &;\\u01F1.\\xCB &;\\u01F2.\\xC5 &;\\u01F6.\\xBF &;\\u01F8.\\xB9 &;\\u01F9.\\xB3 &;\\u01FA.\\xAD &;\\u01FB.\\xA7 &;\\u01FC.\\xA1 &;\\u0200.\\x9B &;\\u0204.\\x95 &;\\u0205.\\x8F &;\\u0206.\\x89 &;\\u0209.\\x83 &;\\u020A.} &;\\u020B.w &;\\u020F.q &;\\u0213.k &;\\u021F.e &;\\u0220._ &;\\u0221.Y &;\\u0224.S &;\\u0225.M &;\\u0226.G &;\\u0228.A &;\\u0229.; &;\\u022A.5 &;\\u022B./ &;\\u022D.) &;\\u0230.# &;\\u0231\"),peg$decode(\";\\u0238.. &%;\\u0239/& 8!:\\u038B! )\"),peg$decode(\"<%2\\u038D\\\"\\\"6\\u038D7\\u038E/\\x87#$%%<4\\u038F\\\"\\\"5!7\\u0390=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#0M*%%<4\\u038F\\\"\\\"5!7\\u0390=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#&/#$+\\\")(\\\"'#&'#=.\\\" 7\\u038C\"),peg$decode(\"<%;\\u023A/5#;\\u023E/,$;\\u023B/#$+#)(#'#(\\\"'#&'#=.\\\" 7\\u0391\"),peg$decode(\"2\\u0392\\\"\\\"6\\u03927\\u0393\"),peg$decode(\"2\\u0394\\\"\\\"6\\u03947\\u0395\"),peg$decode(\"$%%<;\\u023B.# &;\\u023A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#/P#0M*%%<;\\u023B.# &;\\u023A=.##&&!&'#/1#1\\\"\\\"5!7\\u023E/#$+\\\")(\\\"'#&'#&&&#\"),peg$decode(\";\\u023C.# &;\\u0239\"),peg$decode(\"%;\\u023D/K#$4\\u0396\\\"\\\"5!7\\u0397.# &;\\u023D0/*4\\u0396\\\"\\\"5!7\\u0397.# &;\\u023D&/#$+\\\")(\\\"'#&'#\"),peg$decode(\"<%$4\\u0396\\\"\\\"5!7\\u0397.# &;\\u02370/*4\\u0396\\\"\\\"5!7\\u0397.# &;\\u0237&/' 8!:-!! )=.\\\" 7\\u0398\"),peg$decode(\"2\\u0399\\\"\\\"6\\u03997\\u039A\")];var peg$currPos=0;var peg$savedPos=0;var peg$posDetailsCache=[{line:1,column:1}];var peg$maxFailPos=0;var peg$maxFailExpected=[];var peg$silentFails=0;var peg$resultsCache={};var peg$ruleNames=[\"start\",\"start_streaming\",\"stmt_list\",\"semi_optional\",\"semi_required\",\"stmt_list_tail\",\"type_definition\",\"type_definition_types\",\"datatype_custom\",\"datatype_word_tail\",\"type_definition_args\",\"definition_args_loop\",\"literal_value\",\"literal_null\",\"literal_date\",\"literal_string\",\"literal_string_single\",\"literal_string_schar\",\"literal_blob\",\"literal_text\",\"number_sign\",\"literal_number_signed\",\"literal_number\",\"literal_number_decimal\",\"number_decimal_node\",\"number_decimal_full\",\"number_decimal_fraction\",\"number_decimal_exponent\",\"literal_number_hex\",\"number_hex\",\"number_digit\",\"bind_parameter\",\"bind_parameter_numbered\",\"bind_number_id\",\"bind_parameter_named\",\"bind_parameter_tcl\",\"tcl_suffix\",\"expression_exists\",\"expression_exists_ne\",\"expression_raise\",\"expression_raise_args\",\"raise_args_ignore\",\"raise_args_message\",\"expression_root\",\"expression_wrapped\",\"expression_recur\",\"expression_unary_collate\",\"expression_unary\",\"expression_unary_op\",\"expression_collate\",\"expression_concat\",\"expression_multiply\",\"expression_multiply_op\",\"expression_add\",\"expression_add_op\",\"expression_shift\",\"expression_shift_op\",\"expression_compare\",\"expression_compare_op\",\"expression_equiv\",\"expression_equiv_tails\",\"expression_equiv_null_op\",\"expression_equiv_op\",\"expression_cast\",\"type_alias\",\"expression_case\",\"case_expression\",\"expression_case_when\",\"expression_case_else\",\"expression_postfix\",\"expression_postfix_tail\",\"expression_like\",\"expression_escape\",\"expression_between\",\"expression_between_tail\",\"expression_is_not\",\"expression_in\",\"expression_in_target\",\"expression_list_or_select\",\"expression_and\",\"expression\",\"expression_list\",\"expression_list_loop\",\"expression_list_rest\",\"function_call\",\"function_call_args\",\"args_list_distinct\",\"error_message\",\"stmt\",\"stmt_modifier\",\"modifier_query\",\"stmt_nodes\",\"stmt_commit\",\"stmt_begin\",\"commit_transaction\",\"stmt_begin_modifier\",\"stmt_rollback\",\"rollback_savepoint\",\"savepoint_name\",\"savepoint_alt\",\"stmt_savepoint\",\"stmt_release\",\"stmt_alter\",\"alter_start\",\"alter_action\",\"alter_action_rename\",\"alter_action_add\",\"action_add_modifier\",\"stmt_crud\",\"stmt_core_with\",\"clause_with\",\"clause_with_recursive\",\"clause_with_tables\",\"clause_with_loop\",\"expression_cte\",\"select_alias\",\"select_wrapped\",\"stmt_select_full\",\"stmt_sqlite\",\"stmt_attach\",\"attach_arg\",\"stmt_detach\",\"stmt_vacuum\",\"vacuum_target\",\"stmt_analyze\",\"analyze_arg\",\"stmt_reindex\",\"reindex_arg\",\"stmt_pragma\",\"pragma_expression\",\"pragma_value\",\"pragma_value_literal\",\"pragma_value_bool\",\"pragma_bool_id\",\"pragma_value_name\",\"stmt_crud_types\",\"stmt_select\",\"stmt_core_order\",\"stmt_core_limit\",\"stmt_core_limit_offset\",\"limit_offset_variant\",\"limit_offset_variant_name\",\"select_loop\",\"select_loop_union\",\"select_parts\",\"select_parts_core\",\"select_core_select\",\"select_modifier\",\"select_modifier_distinct\",\"select_modifier_all\",\"select_target\",\"select_target_loop\",\"select_core_from\",\"stmt_core_where\",\"select_core_group\",\"select_core_having\",\"select_node\",\"select_node_star\",\"select_node_star_qualified\",\"select_node_aliased\",\"select_source\",\"source_loop_tail\",\"select_cross_clause\",\"select_join_clause\",\"table_or_sub\",\"table_or_sub_func\",\"table_qualified\",\"table_qualified_id\",\"table_or_sub_index_node\",\"index_node_indexed\",\"index_node_none\",\"table_or_sub_sub\",\"table_or_sub_select\",\"alias\",\"join_operator\",\"join_operator_natural\",\"join_operator_types\",\"operator_types_hand\",\"types_hand_outer\",\"operator_types_misc\",\"join_condition\",\"join_condition_on\",\"join_condition_using\",\"select_parts_values\",\"stmt_core_order_list\",\"stmt_core_order_list_loop\",\"stmt_core_order_list_item\",\"select_star\",\"stmt_fallback_types\",\"stmt_insert\",\"insert_keyword\",\"insert_keyword_ins\",\"insert_keyword_repl\",\"insert_keyword_mod\",\"insert_target\",\"insert_into\",\"insert_into_start\",\"insert_results\",\"loop_columns\",\"loop_column_tail\",\"loop_name\",\"insert_value\",\"insert_value_start\",\"insert_values_list\",\"insert_values_loop\",\"expression_list_wrapped\",\"insert_default\",\"operator_compound\",\"compound_union\",\"compound_union_all\",\"stmt_update\",\"update_start\",\"update_fallback\",\"update_set\",\"update_columns\",\"update_columns_tail\",\"update_column\",\"stmt_delete\",\"delete_start\",\"stmt_create\",\"create_start\",\"create_table_only\",\"create_index_only\",\"create_trigger_only\",\"create_view_only\",\"create_virtual_only\",\"create_table\",\"create_table_start\",\"create_core_tmp\",\"create_core_ine\",\"create_table_source\",\"table_source_def\",\"source_def_rowid\",\"source_def_loop\",\"source_def_tail\",\"source_tbl_loop\",\"source_def_column\",\"source_def_name\",\"column_type\",\"column_constraints\",\"column_constraint_tail\",\"column_constraint\",\"constraint_name\",\"constraint_name_loop\",\"column_constraint_types\",\"column_constraint_foreign\",\"column_constraint_primary\",\"col_primary_start\",\"col_primary_auto\",\"column_constraint_null\",\"constraint_null_types\",\"constraint_null_value\",\"column_constraint_check\",\"column_constraint_default\",\"column_default_values\",\"column_constraint_collate\",\"table_constraint\",\"table_constraint_types\",\"table_constraint_check\",\"table_constraint_primary\",\"primary_start\",\"primary_start_normal\",\"primary_start_unique\",\"primary_columns\",\"primary_columns_index\",\"primary_columns_table\",\"primary_column_tail\",\"primary_column\",\"primary_column_types\",\"column_collate\",\"column_collate_loop\",\"primary_column_dir\",\"primary_conflict\",\"primary_conflict_start\",\"constraint_check\",\"table_constraint_foreign\",\"foreign_start\",\"foreign_clause\",\"foreign_references\",\"foreign_actions\",\"foreign_actions_tail\",\"foreign_action\",\"foreign_action_on\",\"action_on_action\",\"on_action_set\",\"on_action_cascade\",\"on_action_none\",\"foreign_action_match\",\"foreign_deferrable\",\"deferrable_initially\",\"table_source_select\",\"create_index\",\"create_index_start\",\"index_unique\",\"index_on\",\"create_trigger\",\"create_trigger_start\",\"trigger_conditions\",\"trigger_apply_mods\",\"trigger_apply_instead\",\"trigger_do\",\"trigger_do_on\",\"trigger_do_update\",\"do_update_of\",\"do_update_columns\",\"trigger_foreach\",\"trigger_when\",\"trigger_action\",\"action_loop\",\"action_loop_stmt\",\"create_view\",\"id_view_expression\",\"create_view_start\",\"create_as_select\",\"create_virtual\",\"create_virtual_start\",\"virtual_module\",\"virtual_args\",\"virtual_args_loop\",\"virtual_args_tail\",\"virtual_arg_types\",\"virtual_column_name\",\"stmt_drop\",\"drop_start\",\"drop_types\",\"drop_ie\",\"binary_concat\",\"binary_plus\",\"binary_minus\",\"binary_multiply\",\"binary_divide\",\"binary_mod\",\"binary_left\",\"binary_right\",\"binary_and\",\"binary_or\",\"binary_lt\",\"binary_gt\",\"binary_lte\",\"binary_gte\",\"binary_equal\",\"binary_notequal_a\",\"binary_notequal_b\",\"binary_lang_isnt\",\"id_name\",\"id_database\",\"id_function\",\"id_table\",\"id_table_qualified\",\"id_column\",\"column_unqualified\",\"column_qualifiers\",\"id_column_qualified\",\"id_collation\",\"id_savepoint\",\"id_index\",\"id_trigger\",\"id_view\",\"id_pragma\",\"id_cte\",\"id_table_expression\",\"id_constraint_table\",\"id_constraint_column\",\"datatype_types\",\"datatype_text\",\"datatype_real\",\"datatype_real_double\",\"datatype_numeric\",\"datatype_integer\",\"datatype_integer_fp\",\"datatype_none\",\"name_char\",\"unicode_char\",\"name\",\"name_quoted\",\"name_unquoted\",\"name_reserved\",\"name_bracketed\",\"bracket_terminator\",\"name_dblquoted\",\"name_sglquoted\",\"name_backticked\",\"sym_bopen\",\"sym_bclose\",\"sym_popen\",\"sym_pclose\",\"sym_comma\",\"sym_dot\",\"sym_star\",\"sym_quest\",\"sym_sglquote\",\"sym_dblquote\",\"sym_backtick\",\"sym_tilde\",\"sym_plus\",\"sym_minus\",\"sym_equal\",\"sym_amp\",\"sym_pipe\",\"sym_mod\",\"sym_lt\",\"sym_gt\",\"sym_excl\",\"sym_semi\",\"sym_colon\",\"sym_fslash\",\"sym_bslash\",\"ABORT\",\"ACTION\",\"ADD\",\"AFTER\",\"ALL\",\"ALTER\",\"ANALYZE\",\"AND\",\"AS\",\"ASC\",\"ATTACH\",\"AUTOINCREMENT\",\"BEFORE\",\"BEGIN\",\"BETWEEN\",\"BY\",\"CASCADE\",\"CASE\",\"CAST\",\"CHECK\",\"COLLATE\",\"COLUMN\",\"COMMIT\",\"CONFLICT\",\"CONSTRAINT\",\"CREATE\",\"CROSS\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"DATABASE\",\"DEFAULT\",\"DEFERRABLE\",\"DEFERRED\",\"DELETE\",\"DESC\",\"DETACH\",\"DISTINCT\",\"DROP\",\"EACH\",\"ELSE\",\"END\",\"ESCAPE\",\"EXCEPT\",\"EXCLUSIVE\",\"EXISTS\",\"EXPLAIN\",\"FAIL\",\"FOR\",\"FOREIGN\",\"FROM\",\"FULL\",\"GLOB\",\"GROUP\",\"HAVING\",\"IF\",\"IGNORE\",\"IMMEDIATE\",\"IN\",\"INDEX\",\"INDEXED\",\"INITIALLY\",\"INNER\",\"INSERT\",\"INSTEAD\",\"INTERSECT\",\"INTO\",\"IS\",\"ISNULL\",\"JOIN\",\"KEY\",\"LEFT\",\"LIKE\",\"LIMIT\",\"MATCH\",\"NATURAL\",\"NO\",\"NOT\",\"NOTNULL\",\"NULL\",\"OF\",\"OFFSET\",\"ON\",\"OR\",\"ORDER\",\"OUTER\",\"PLAN\",\"PRAGMA\",\"PRIMARY\",\"QUERY\",\"RAISE\",\"RECURSIVE\",\"REFERENCES\",\"REGEXP\",\"REINDEX\",\"RELEASE\",\"RENAME\",\"REPLACE\",\"RESTRICT\",\"RIGHT\",\"ROLLBACK\",\"ROW\",\"ROWID\",\"SAVEPOINT\",\"SELECT\",\"SET\",\"TABLE\",\"TEMP\",\"TEMPORARY\",\"THEN\",\"TO\",\"TRANSACTION\",\"TRIGGER\",\"UNION\",\"UNIQUE\",\"UPDATE\",\"USING\",\"VACUUM\",\"VALUES\",\"VIEW\",\"VIRTUAL\",\"WHEN\",\"WHERE\",\"WITH\",\"WITHOUT\",\"reserved_words\",\"reserved_word_list\",\"reserved_critical_list\",\"comment\",\"comment_line\",\"comment_block\",\"comment_block_start\",\"comment_block_end\",\"comment_block_body\",\"block_body_nodes\",\"comment_block_feed\",\"o\",\"_TODO_\"];var peg$descNames=[null,null,null,null,null,null,\"Type Definition\",null,\"Custom Datatype Name\",null,\"Type Definition Arguments\",null,null,\"Null Literal\",\"Date Literal\",\"String Literal\",\"Single-quoted String Literal\",null,\"Blob Literal\",null,\"Number Sign\",null,null,null,\"Decimal Literal\",null,null,\"Decimal Literal Exponent\",\"Hexidecimal Literal\",null,null,\"Bind Parameter\",\"Numbered Bind Parameter\",null,\"Named Bind Parameter\",\"TCL Bind Parameter\",null,\"EXISTS Expression\",\"EXISTS Keyword\",\"RAISE Expression\",\"RAISE Expression Arguments\",\"IGNORE Keyword\",null,null,null,null,null,null,null,\"COLLATE Expression\",null,null,null,null,null,null,null,null,null,null,null,null,null,\"CAST Expression\",\"Type Alias\",\"CASE Expression\",null,\"WHEN Clause\",\"ELSE Clause\",null,null,\"Comparison Expression\",\"ESCAPE Expression\",\"BETWEEN Expression\",null,null,\"IN Expression\",null,null,null,null,\"Expression List\",null,null,\"Function Call\",\"Function Call Arguments\",null,\"Error Message\",\"Statement\",\"QUERY PLAN\",\"QUERY PLAN Keyword\",null,\"END Transaction Statement\",\"BEGIN Transaction Statement\",null,null,\"ROLLBACK Statement\",\"TO Clause\",null,null,\"SAVEPOINT Statement\",\"RELEASE Statement\",\"ALTER TABLE Statement\",\"ALTER TABLE Keyword\",null,\"RENAME TO Keyword\",\"ADD COLUMN Keyword\",null,null,\"WITH Clause\",null,null,null,null,\"Common Table Expression\",null,null,null,null,\"ATTACH Statement\",null,\"DETACH Statement\",\"VACUUM Statement\",null,\"ANALYZE Statement\",null,\"REINDEX Statement\",null,\"PRAGMA Statement\",null,null,null,null,null,null,null,\"SELECT Statement\",\"ORDER BY Clause\",\"LIMIT Clause\",\"OFFSET Clause\",null,null,null,\"Union Operation\",null,null,\"SELECT Results Clause\",\"SELECT Results Modifier\",null,null,null,null,\"FROM Clause\",\"WHERE Clause\",\"GROUP BY Clause\",\"HAVING Clause\",null,null,null,null,null,null,\"CROSS JOIN Operation\",\"JOIN Operation\",null,null,\"Qualified Table\",\"Qualified Table Identifier\",\"Qualfied Table Index\",null,null,\"SELECT Source\",\"Subquery\",\"Alias\",\"JOIN Operator\",null,null,null,null,null,\"JOIN Constraint\",\"Join ON Clause\",\"Join USING Clause\",\"VALUES Clause\",null,null,\"Ordering Expression\",\"Star\",\"Fallback Type\",\"INSERT Statement\",null,\"INSERT Keyword\",\"REPLACE Keyword\",\"INSERT OR Modifier\",null,\"INTO Clause\",\"INTO Keyword\",\"VALUES Clause\",\"Column List\",null,\"Column Name\",\"VALUES Clause\",\"VALUES Keyword\",null,null,\"Wrapped Expression List\",\"DEFAULT VALUES Clause\",\"Compound Operator\",\"UNION Operator\",null,\"UPDATE Statement\",\"UPDATE Keyword\",\"UPDATE OR Modifier\",\"SET Clause\",null,null,\"Column Assignment\",\"DELETE Statement\",\"DELETE Keyword\",\"CREATE Statement\",null,null,null,null,null,null,\"CREATE TABLE Statement\",null,null,\"IF NOT EXISTS Modifier\",null,\"Table Definition\",null,null,null,null,\"Column Definition\",null,\"Column Datatype\",null,null,\"Column Constraint\",null,\"CONSTRAINT Name\",null,\"FOREIGN KEY Column Constraint\",\"PRIMARY KEY Column Constraint\",\"PRIMARY KEY Keyword\",\"AUTOINCREMENT Keyword\",null,\"UNIQUE Column Constraint\",\"NULL Column Constraint\",\"CHECK Column Constraint\",\"DEFAULT Column Constraint\",null,\"COLLATE Column Constraint\",\"Table Constraint\",null,\"CHECK Table Constraint\",\"PRIMARY KEY Table Constraint\",null,\"PRIMARY KEY Keyword\",\"UNIQUE Keyword\",null,null,null,null,\"Indexed Column\",null,\"Collation\",null,\"Column Direction\",null,\"ON CONFLICT Keyword\",null,\"FOREIGN KEY Table Constraint\",\"FOREIGN KEY Keyword\",null,\"REFERENCES Clause\",null,null,\"FOREIGN KEY Action Clause\",null,\"FOREIGN KEY Action\",null,null,null,null,\"DEFERRABLE Clause\",null,null,\"CREATE INDEX Statement\",null,null,\"ON Clause\",\"CREATE TRIGGER Statement\",null,\"Conditional Clause\",null,null,\"Conditional Action\",null,null,null,null,null,\"WHEN Clause\",\"Actions Clause\",null,null,\"CREATE VIEW Statement\",null,null,null,\"CREATE VIRTUAL TABLE Statement\",null,null,\"Module Arguments\",null,null,null,null,\"DROP Statement\",\"DROP Keyword\",\"DROP Type\",\"IF EXISTS Keyword\",\"Or\",\"Add\",\"Subtract\",\"Multiply\",\"Divide\",\"Modulo\",\"Shift Left\",\"Shift Right\",\"Logical AND\",\"Logical OR\",\"Less Than\",\"Greater Than\",\"Less Than Or Equal\",\"Greater Than Or Equal\",\"Equal\",\"Not Equal\",\"Not Equal\",\"IS\",\"Identifier\",\"Database Identifier\",\"Function Identifier\",\"Table Identifier\",null,\"Column Identifier\",null,null,null,\"Collation Identifier\",\"Savepoint Identifier\",\"Index Identifier\",\"Trigger Identifier\",\"View Identifier\",\"Pragma Identifier\",\"CTE Identifier\",null,\"Table Constraint Identifier\",\"Column Constraint Identifier\",\"Datatype Name\",\"TEXT Datatype Name\",\"REAL Datatype Name\",\"DOUBLE Datatype Name\",\"NUMERIC Datatype Name\",\"INTEGER Datatype Name\",null,\"BLOB Datatype Name\",null,null,null,null,null,null,null,null,null,null,null,\"Open Bracket\",\"Close Bracket\",\"Open Parenthesis\",\"Close Parenthesis\",\"Comma\",\"Period\",\"Asterisk\",\"Question Mark\",\"Single Quote\",\"Double Quote\",\"Backtick\",\"Tilde\",\"Plus\",\"Minus\",\"Equal\",\"Ampersand\",\"Pipe\",\"Modulo\",\"Less Than\",\"Greater Than\",\"Exclamation\",\"Semicolon\",\"Colon\",\"Forward Slash\",\"Backslash\",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,\"Line Comment\",\"Block Comment\",null,null,null,null,null,\"Whitespace\",null];var peg$tracer=\"tracer\"in options?options.tracer:new peg$DefaultTracer();var peg$result;if(\"startRule\"in options){if(!(options.startRule in peg$startRuleIndices)){throw new Error(\"Can't start parsing from rule \\\"\"+options.startRule+\"\\\".\");}peg$startRuleIndex=peg$startRuleIndices[options.startRule];}function text(){return input.substring(peg$savedPos,peg$currPos);}function location(){return peg$computeLocation(peg$savedPos,peg$currPos);}function expected(description,location){location=location!==undefined?location:peg$computeLocation(peg$savedPos,peg$currPos);throw peg$buildStructuredError([peg$otherExpectation(description)],input.substring(peg$savedPos,peg$currPos),location);}function error(message,location){location=location!==undefined?location:peg$computeLocation(peg$savedPos,peg$currPos);throw peg$buildSimpleError(message,location);}function peg$literalExpectation(text,ignoreCase){return{type:\"literal\",text:text,ignoreCase:ignoreCase};}function peg$classExpectation(parts,inverted,ignoreCase){return{type:\"class\",parts:parts,inverted:inverted,ignoreCase:ignoreCase};}function peg$anyExpectation(){return{type:\"any\"};}function peg$endExpectation(){return{type:\"end\"};}function peg$otherExpectation(description){return{type:\"other\",description:description};}function peg$computePosDetails(pos){var details=peg$posDetailsCache[pos];var p;if(details){return details;}else{p=pos-1;while(!peg$posDetailsCache[p]){p--;}details=peg$posDetailsCache[p];details={line:details.line,column:details.column};while(ppeg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[];}peg$maxFailExpected.push(expected);}function peg$buildSimpleError(message,location){return new peg$SyntaxError(message,null,null,location);}function peg$buildStructuredError(expected,found,location){return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected,found),expected,found,location);}function peg$decode(s){return s.split(\"\").map(function(ch){return ch.charCodeAt(0)-32;});}function peg$parseRule(index){var bc=peg$bytecode[index];var ip=0;var ips=[];var end=bc.length;var ends=[];var stack=[];var startPos=peg$currPos;var params;peg$tracer.trace({type:\"rule.enter\",rule:peg$ruleNames[index],description:peg$descNames[index],location:peg$computeLocation(startPos,startPos)});var key=peg$currPos*545+index;var cached=peg$resultsCache[key];if(cached){peg$currPos=cached.nextPos;if(cached.result!==peg$FAILED){peg$tracer.trace({type:\"rule.match\",rule:peg$ruleNames[index],description:peg$descNames[index],result:cached.result,location:peg$computeLocation(startPos,peg$currPos)});}else{peg$tracer.trace({type:\"rule.fail\",rule:peg$ruleNames[index],description:peg$descNames[index],location:peg$computeLocation(startPos,startPos)});}return cached.result;}while(true){while(ippeg$currPos){end=ip+3+bc[ip+1];ip+=3;}else{end=ip+3+bc[ip+1]+bc[ip+2];ip+=3+bc[ip+1];}break;case 18:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(input.substr(peg$currPos,peg$consts[bc[ip+1]].length)===peg$consts[bc[ip+1]]){end=ip+4+bc[ip+2];ip+=4;}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2];}break;case 19:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(input.substr(peg$currPos,peg$consts[bc[ip+1]].length).toLowerCase()===peg$consts[bc[ip+1]]){end=ip+4+bc[ip+2];ip+=4;}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2];}break;case 20:ends.push(end);ips.push(ip+4+bc[ip+2]+bc[ip+3]);if(peg$consts[bc[ip+1]].test(input.charAt(peg$currPos))){end=ip+4+bc[ip+2];ip+=4;}else{end=ip+4+bc[ip+2]+bc[ip+3];ip+=4+bc[ip+2];}break;case 21:stack.push(input.substr(peg$currPos,bc[ip+1]));peg$currPos+=bc[ip+1];ip+=2;break;case 22:stack.push(peg$consts[bc[ip+1]]);peg$currPos+=peg$consts[bc[ip+1]].length;ip+=2;break;case 23:stack.push(peg$FAILED);if(peg$silentFails===0){peg$fail(peg$consts[bc[ip+1]]);}ip+=2;break;case 24:peg$savedPos=stack[stack.length-1-bc[ip+1]];ip+=2;break;case 25:peg$savedPos=peg$currPos;ip++;break;case 26:params=bc.slice(ip+4,ip+4+bc[ip+3]).map(function(p){return stack[stack.length-1-p];});stack.splice(stack.length-bc[ip+2],bc[ip+2],peg$consts[bc[ip+1]].apply(null,params));ip+=4+bc[ip+3];break;case 27:stack.push(peg$parseRule(bc[ip+1]));ip+=2;break;case 28:peg$silentFails++;ip++;break;case 29:peg$silentFails--;ip++;break;default:throw new Error(\"Invalid opcode: \"+bc[ip]+\".\");}}if(ends.length>0){end=ends.pop();ip=ips.pop();}else{break;}}peg$resultsCache[key]={nextPos:peg$currPos,result:stack[0]};if(stack[0]!==peg$FAILED){peg$tracer.trace({type:\"rule.match\",rule:peg$ruleNames[index],description:peg$descNames[index],result:stack[0],location:peg$computeLocation(startPos,peg$currPos)});}else{peg$tracer.trace({type:\"rule.fail\",rule:peg$ruleNames[index],description:peg$descNames[index],location:peg$computeLocation(startPos,startPos)});}return stack[0];}function makeArray(arr){if(!isOkay(arr)){return[];}return!Array.isArray(arr)?[arr]:arr;}function isOkay(obj){return obj!=null;}function foldString(parts){var glue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:' ';var folded=parts.filter(function(part){return isOkay(part);}).reduce(function(prev,cur){return\"\"+prev+nodeToString(cur)+glue;},'');return folded.trim();}function foldStringWord(parts){return foldString(parts,'');}function foldStringKey(parts){return foldString(parts).toLowerCase();}function flattenAll(arr){return arr.filter(function(part){return isOkay(part);}).reduce(function(prev,cur){return prev.concat(cur);},[]);}function unescape(str){var quoteChar=arguments.length>1&&arguments[1]!==undefined?arguments[1]:'\\'';var re=new RegExp(quoteChar+\"{2}\",'g');return nodeToString(str).replace(re,quoteChar);}function nodeToString(){var node=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];return makeArray(node).join('');}function textNode(node){return nodeToString(node).trim();}function keyNode(node){return textNode(node).toLowerCase();}function isArrayOkay(arr){return Array.isArray(arr)&&arr.length>0&&isOkay(arr[0]);}function composeBinary(first,rest){return rest.reduce(function(left,_ref7){var _ref8=_slicedToArray(_ref7,4);var x=_ref8[0];var operation=_ref8[1];var y=_ref8[2];var right=_ref8[3];return{'type':'expression','format':'binary','variant':'operation','operation':keyNode(operation),'left':left,'right':right};},first);}peg$result=peg$parseRule(peg$startRuleIndex);if(peg$result!==peg$FAILED&&peg$currPos===input.length){return peg$result;}else{if(peg$result!==peg$FAILED&&peg$currPos=0;i-=1){if(func(arr[i])){return i;}}return-1;}function takeWhile(arr,func){var len=arr.length;var i=0;for(;i1){return false;}if(!deep){if(elem.indentation>bestNode.indentation){bestNode=elem;}else{deep=true;}}else if(/^(stmt)$/i.test(elem.rule)){deep=true;return true;}return true;});if(chain.length){location=bestNode.location;firstNode=chain.find(function(elem){return that.firstNodeRule.test(elem.description)&&elem.description!==bestNode.description&&elem.indentation!==bestNode.indentation;});if(firstNode!=null){if(this.statementRule.test(bestNode.description)&&this.statementRule.test(firstNode.description)){chainDetail=firstNode.description;}else{chainDetail=bestNode.description+' ('+firstNode.description+')';}}else{chainDetail=bestNode.description;}message='Syntax error found near '+chainDetail;Object.assign(err,{'message':message,'location':location});}return err;};return Tracer;}();\n\n},{}]},{},[1])(1)\n});","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","exports.f = Object.getOwnPropertySymbols;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","// IEEE754 conversions based on https://github.com/feross/ieee754\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","var asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var Reporter = require('../base').Reporter;\nvar EncoderBuffer = require('../base').EncoderBuffer;\nvar DecoderBuffer = require('../base').DecoderBuffer;\nvar assert = require('minimalistic-assert');\n\n// Supported tags\nvar tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n var state = {};\n this._baseState = state;\n\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n var clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n var state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n var state = this._baseState;\n\n // Filter children and args\n var children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n var res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n var state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n var state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n var result = state['default'];\n var present = true;\n\n var prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n var prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n var start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n if (state.any)\n var save = input.save();\n var body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any)\n result = result;\n else if (state.choice === null)\n result = this._decodeGeneric(state.tag, input, options);\n else\n result = this._decodeChoice(input, options);\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n var state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n\n Object.keys(state.choice).some(function(key) {\n var save = input.save();\n var node = state.choice[key];\n try {\n var value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n var state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n var result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n var result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default']\n else\n return;\n }\n\n // Encode children first\n var content = null;\n var primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n var state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n var result;\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n\n var node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","var inherits = require('inherits');\n\nvar DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n var buf = DEREncoder.prototype.encode.call(this, data);\n\n var p = buf.toString('base64');\n var out = [ '-----BEGIN ' + options.label + '-----' ];\n for (var i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","/* eslint-disable no-new */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var constants = require('../constants');\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","var inherits = require('inherits');\nvar Buffer = require('buffer').Buffer;\n\nvar DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n var lines = data.toString().split(/[\\r\\n]+/g);\n\n var label = options.label.toUpperCase();\n\n var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n var start = -1;\n var end = -1;\n for (var i = 0; i < lines.length; i++) {\n var match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n var base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n var input = new Buffer(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n var curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var defaultEncoding\n/* istanbul ignore next */\nif (process.browser) {\n defaultEncoding = 'utf-8'\n} else if (process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","'use strict'\n\nfunction isPromise (obj) {\n // via https://unpkg.com/is-promise@2.1.0/index.js\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\n}\n\nfunction registerPromiseWorker (callback) {\n function postOutgoingMessage (e, messageId, error, result) {\n function postMessage (msg) {\n /* istanbul ignore if */\n if (typeof self.postMessage !== 'function') { // service worker\n e.ports[0].postMessage(msg)\n } else { // web worker\n self.postMessage(msg)\n }\n }\n if (error) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined' && 'error' in console) {\n // This is to make errors easier to debug. I think it's important\n // enough to just leave here without giving the user an option\n // to silence it.\n console.error('Worker caught an error:', error)\n }\n postMessage([messageId, {\n message: error.message\n }])\n } else {\n postMessage([messageId, null, result])\n }\n }\n\n function tryCatchFunc (callback, message) {\n try {\n return { res: callback(message) }\n } catch (e) {\n return { err: e }\n }\n }\n\n function handleIncomingMessage (e, callback, messageId, message) {\n var result = tryCatchFunc(callback, message)\n\n if (result.err) {\n postOutgoingMessage(e, messageId, result.err)\n } else if (!isPromise(result.res)) {\n postOutgoingMessage(e, messageId, null, result.res)\n } else {\n result.res.then(function (finalResult) {\n postOutgoingMessage(e, messageId, null, finalResult)\n }, function (finalError) {\n postOutgoingMessage(e, messageId, finalError)\n })\n }\n }\n\n function onIncomingMessage (e) {\n var payload = e.data\n if (!Array.isArray(payload) || payload.length !== 2) {\n // message doens't match communication format; ignore\n return\n }\n var messageId = payload[0]\n var message = payload[1]\n\n if (typeof callback !== 'function') {\n postOutgoingMessage(e, messageId, new Error(\n 'Please pass a function into register().'))\n } else {\n handleIncomingMessage(e, callback, messageId, message)\n }\n }\n\n self.addEventListener('message', onIncomingMessage)\n}\n\nmodule.exports = registerPromiseWorker\n","var $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n copyWithin: copyWithin\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","var bn = require('bn.js');\nvar randomBytes = require('randombytes');\nmodule.exports = crt;\nfunction blind(priv) {\n var r = getr(priv);\n var blinder = r.toRed(bn.mont(priv.modulus))\n .redPow(new bn(priv.publicExponent)).fromRed();\n return {\n blinder: blinder,\n unblinder:r.invm(priv.modulus)\n };\n}\nfunction crt(msg, priv) {\n var blinds = blind(priv);\n var len = priv.modulus.byteLength();\n var mod = bn.mont(priv.modulus);\n var blinded = new bn(msg).mul(blinds.blinder).umod(priv.modulus);\n var c1 = blinded.toRed(bn.mont(priv.prime1));\n var c2 = blinded.toRed(bn.mont(priv.prime2));\n var qinv = priv.coefficient;\n var p = priv.prime1;\n var q = priv.prime2;\n var m1 = c1.redPow(priv.exponent1);\n var m2 = c2.redPow(priv.exponent2);\n m1 = m1.fromRed();\n m2 = m2.fromRed();\n var h = m1.isub(m2).imul(qinv).umod(p);\n h.imul(q);\n m2.iadd(h);\n return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false, len));\n}\ncrt.getr = getr;\nfunction getr(priv) {\n var len = priv.modulus.byteLength();\n var r = new bn(randomBytes(len));\n while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2)) {\n r = new bn(randomBytes(len));\n }\n return r;\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return C;\n }\n};\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(curves.hasOwnProperty(options), 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray()\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n do {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n } while (true);\n};\n\nEC.prototype._truncateToN = function truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8'\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; true; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n\n if (!this.curve._maxwellTrick) {\n var p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n var p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n});\n","module.exports = require('./readable').PassThrough\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","module.exports = false;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","var inherits = require('inherits');\n\nvar asn1 = require('../../asn1');\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!(data instanceof base.DecoderBuffer))\n data = new base.DecoderBuffer(data, options);\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n var len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n var state = buffer.save();\n var res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n while (true) {\n var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n var res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len)\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n var result = [];\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n var str = '';\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n var printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n var result;\n var identifiers = [];\n var ident = 0;\n while (!buffer.isEmpty()) {\n var subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n var first = (identifiers[0] / 40) | 0;\n var second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n if (tag === 'gentime') {\n var year = str.slice(0, 4) | 0;\n var mon = str.slice(4, 6) | 0;\n var day = str.slice(6, 8) | 0;\n var hour = str.slice(8, 10) | 0;\n var min = str.slice(10, 12) | 0;\n var sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n var year = str.slice(0, 2) | 0;\n var mon = str.slice(2, 4) | 0;\n var day = str.slice(4, 6) | 0;\n var hour = str.slice(6, 8) | 0;\n var min = str.slice(8, 10) | 0;\n var sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n var res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n var tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n var num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","module.exports = {};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","module.exports = require('./readable').Transform\n","var inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n var state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n var state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n var state = this._reporterState;\n\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n\n var inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\n// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n for (var j = 0; j < naf.length; j += doubles.step) {\n var nafW = 0;\n for (var k = j + doubles.step - 1; k >= j; k--)\n nafW = (nafW << 1) + naf[k];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (var j = 0; j < repr.length; j++) {\n var nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var k = 0; i >= 0 && naf[i] === 0; i--)\n k++;\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n for (var i = 0; i < len; i++) {\n var p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (var i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b] /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3 /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (var j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (var i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (var j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (var j = 0; j < len; j++) {\n var z = tmp[j];\n var p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (var i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ;\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar isView = function isView(it) {\n var klass = classof(it);\n return klass === 'DataView' || has(TypedArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n return isObject(it) && has(TypedArrayConstructorsList, classof(it));\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","var asn1 = require('../asn1');\nvar inherits = require('inherits');\n\nvar api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n var named;\n try {\n named = require('vm').runInThisContext(\n '(function ' + this.name + '(entity) {\\n' +\n ' this._initNamed(entity);\\n' +\n '})'\n );\n } catch (e) {\n named = function (entity) {\n this._initNamed(entity);\n };\n }\n inherits(named, base);\n named.prototype._initNamed = function initnamed(entity) {\n base.call(this, entity);\n };\n\n return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","module.exports = require('events').EventEmitter;\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n []\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n var m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n var m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.023944c6.js b/js/app.e4131c1b.js similarity index 99% rename from js/app.023944c6.js rename to js/app.e4131c1b.js index 0e231ea..da296a0 100644 --- a/js/app.023944c6.js +++ b/js/app.e4131c1b.js @@ -1,2 +1,2 @@ -(function(e){function t(t){for(var n,s,o=t[0],c=t[1],l=t[2],u=0,M=[];u0&&e.paneBefore.size>0}]},[100===e.after.max&&e.paneAfter.size>0?n("div",{staticClass:"toggle-btn",on:{click:function(t){return e.togglePane(e.paneBefore)}}},[n("img",{staticClass:"direction-icon",style:e.directionBeforeIconStyle,attrs:{src:i("0ca3")}})]):e._e(),100===e.before.max&&e.paneBefore.size>0?n("div",{staticClass:"toggle-btn",on:{click:function(t){return e.togglePane(e.paneAfter)}}},[n("img",{staticClass:"direction-icon",style:e.directionAfterIconStyle,attrs:{src:i("0ca3")}})]):e._e()])]),n("div",{ref:"right",staticClass:"splitpanes-pane",style:e.styles.after},[e._t("right-pane")],2)])}),h=[],I=i("5530"),m=i("ade3"),N={getCurrentMouseDrag:function(e,t){var i=t.getBoundingClientRect(),n="ontouchstart"in window&&e.touches?e.touches[0]:e,a=n.clientX,r=n.clientY;return{x:a-i.left,y:r-i.top}},getCurrentDragPercentage:function(e,t,i){var n=this.getCurrentMouseDrag(e,t);n=n[i?"y":"x"];var a=t[i?"clientHeight":"clientWidth"];return 100*n/a},calculateOffset:function(e,t){var i=t.container,n=t.isHorisontal,a=t.paneBeforeMax,r=t.paneAfterMax,s=this.getCurrentDragPercentage(e,i,n),o=a<100&&s>=a,c=r<100&&s<=100-r;return o||c?o?a:Math.max(100-r,0):Math.min(Math.max(s,0),a)}},f={name:"Splitpanes",props:{horizontal:{type:Boolean,default:!1},before:{type:Object},after:{type:Object}},data:function(){return{container:null,paneBefore:this.before,paneAfter:this.after,beforeMinimising:{before:this.before.size,after:this.after.size},dragging:!1,movableSplitter:{top:0,left:0,visibility:"hidden"}}},computed:{styles:function(){return{before:Object(m["a"])({},this.horizontal?"height":"width","".concat(this.paneBefore.size,"%")),after:Object(m["a"])({},this.horizontal?"height":"width","".concat(this.paneAfter.size,"%"))}},movableSplitterStyle:function(){var e=Object(I["a"])({},this.movableSplitter);return e.top+="%",e.left+="%",e},directionBeforeIconStyle:function(){var e=0!==this.paneBefore.size,t="translate(-50%, -50%) ",i="";return i=this.horizontal?e?"rotate(90deg)":"rotate(-90deg)":e?"rotate(0deg)":"rotate(180deg)",{transform:t+i}},directionAfterIconStyle:function(){var e=0!==this.paneAfter.size,t="translate(-50%, -50%)",i="";return i=this.horizontal?e?"rotate(-90deg)":"rotate(90deg)":e?"rotate(180deg)":"rotate(0deg)",{transform:t+i}}},methods:{bindEvents:function(){document.addEventListener("mousemove",this.onMouseMove,{passive:!1}),document.addEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.addEventListener("touchmove",this.onMouseMove,{passive:!1}),document.addEventListener("touchend",this.onMouseUp))},unbindEvents:function(){document.removeEventListener("mousemove",this.onMouseMove,{passive:!1}),document.removeEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.removeEventListener("touchmove",this.onMouseMove,{passive:!1}),document.removeEventListener("touchend",this.onMouseUp))},onMouseMove:function(e){e.preventDefault(),this.dragging=!0,this.movableSplitter.visibility="visible",this.moveSplitter(e)},onMouseUp:function(){if(this.dragging){var e=this.horizontal?this.movableSplitter.top:this.movableSplitter.left;this.paneBefore.size=e,this.paneAfter.size=100-e,this.movableSplitter={top:0,left:0,visibility:"hidden"},this.dragging=!1}this.unbindEvents()},moveSplitter:function(e){var t={container:this.container,paneBeforeMax:this.paneBefore.max,paneAfterMax:this.paneAfter.max,isHorisontal:this.horizontal},i=N.calculateOffset(e,t),n=this.horizontal?"top":"left";this.movableSplitter[n]=i},togglePane:function(e){if(e.size>0){this.beforeMinimising.before=this.paneBefore.size,this.beforeMinimising.after=this.paneAfter.size,e.size=0;var t=e===this.paneBefore?this.paneAfter:this.paneBefore;t.size=100-e.size}else this.paneBefore.size=this.beforeMinimising.before,this.paneAfter.size=this.beforeMinimising.after}},mounted:function(){this.container=this.$refs.container}},v=f,D=(i("a1f0"),Object(s["a"])(v,p,h,!1,null,null,null)),j=D.exports,y=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"schema-container"}},[i("div",{attrs:{id:"schema-filter"}},[i("text-field",{attrs:{placeholder:"Search table",width:"100%"},model:{value:e.filter,callback:function(t){e.filter=t},expression:"filter"}})],1),i("div",{attrs:{id:"db"}},[i("div",{staticClass:"db-name",on:{click:function(t){e.schemaVisible=!e.schemaVisible}}},[i("tree-chevron",{directives:[{name:"show",rawName:"v-show",value:e.schema.length>0,expression:"schema.length > 0"}],attrs:{expanded:e.schemaVisible}}),e._v(" "+e._s(e.dbName)+" ")],1),i("db-uploader",{attrs:{id:"db-edit",type:"small"}}),i("export-icon",{attrs:{tooltip:"Export database"},on:{click:e.exportToFile}}),i("add-table-icon",{on:{click:e.addCsv}})],1),i("div",{directives:[{name:"show",rawName:"v-show",value:e.schemaVisible,expression:"schemaVisible"}],staticClass:"schema"},e._l(e.schema,(function(e){return i("table-description",{key:e.name,attrs:{name:e.name,columns:e.columns}})})),1),i("csv-import",{ref:"addCsv",attrs:{file:e.file,db:e.$store.state.db,"dialog-name":"addCsv"}})],1)},b=[],C=(i("4de4"),i("b0c0"),i("ac1f"),i("5319"),i("2b3d"),{isDatabase:function(e){var t=["application/vnd.sqlite3","application/x-sqlite3"];return e.type?t.includes(e.type):/\.(db|sqlite(3)?)+$/.test(e.name)},getFileName:function(e){return e.name.replace(/\.[^.]+$/,"")},downloadFromUrl:function(e,t){var i=document.createElement("a");i.href=e,i.download=t,i.click(),URL.revokeObjectURL(e)},exportToFile:function(e,t){var i=arguments,n=this;return Object(u["a"])(regeneratorRuntime.mark((function a(){var r,s,o;return regeneratorRuntime.wrap((function(a){while(1)switch(a.prev=a.next){case 0:r=i.length>2&&void 0!==i[2]?i[2]:"octet/stream",s=new Blob([e],{type:r}),o=URL.createObjectURL(s),n.downloadFromUrl(o,t);case 4:case"end":return a.stop()}}),a)})))()},getFileFromUser:function(e){return new Promise((function(t){var i=document.createElement("input");i.type="file",i.accept=e,i.addEventListener("change",(function(){var e=i.files[0];t(e)})),i.click()}))},importFile:function(){var e=new FileReader;return this.getFileFromUser(".json").then((function(t){return new Promise((function(i,n){e.onload=function(e){i(e.target.result)},e.readAsText(t)}))}))},readFile:function(e){return fetch(e)},readAsArrayBuffer:function(e){var t=new FileReader;return new Promise((function(i,n){t.onerror=function(){t.abort(),n(new Error("Problem parsing input file."))},t.onload=function(){i(t.result)},t.readAsArrayBuffer(e)}))}}),z=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("div",{staticClass:"table-name",on:{click:function(t){e.colVisible=!e.colVisible}}},[i("tree-chevron",{attrs:{expanded:e.colVisible}}),e._v(" "+e._s(e.name)+" ")],1),i("div",{directives:[{name:"show",rawName:"v-show",value:e.colVisible,expression:"colVisible"}],staticClass:"columns"},e._l(e.columns,(function(t,n){return i("div",{key:n,staticClass:"column"},[e._v(" "+e._s(t.name)+" "),i("span",{staticClass:"column-type"},[e._v(e._s(t.type))])])})),0)])},T=[],w=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{staticClass:"chevron-icon",style:{transform:e.expanded?"rotate(90deg)":"rotate(0)"},attrs:{width:"9",height:"9",viewBox:"0 0 8 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[i("path",{attrs:{d:"M0.721924 9.93097L4.85292 5.79997L0.721924 1.66897L1.99992 0.399973L7.39992 5.79997L1.99992 11.2L0.721924 9.93097Z",fill:e.expanded?"#506784":"rgba(80, 103, 132, 0.5)"}})])},x=[],O={name:"treeChevron",props:{expanded:{type:Boolean,required:!0}}},A=O,L=(i("2edc"),Object(s["a"])(A,w,x,!1,null,"bfc135e8",null)),k=L.exports,E={name:"TableDescription",components:{TreeChevron:k},props:["name","columns"],data:function(){return{colVisible:!1}}},S=E,Q=(i("dfd4"),Object(s["a"])(S,z,T,!1,null,"060be7fb",null)),U=Q.exports,Y=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[e.label?i("div",{class:["text-field-label",{error:e.errorMsg},{disabled:e.disabled}]},[e._v(" "+e._s(e.label)+" "),e.hint?i("hint-icon",{staticClass:"hint",attrs:{hint:e.hint,"max-width":e.maxHintWidth||"149px"}}):e._e()],1):e._e(),i("input",{class:{error:e.errorMsg},style:{width:e.width},attrs:{type:"text",placeholder:e.placeholder,disabled:e.disabled},domProps:{value:e.value},on:{input:function(t){return e.$emit("input",t.target.value)}}}),i("div",{directives:[{name:"show",rawName:"v-show",value:e.errorMsg,expression:"errorMsg"}],staticClass:"text-field-error"},[e._v(e._s(e.errorMsg))])])},Z=[],P=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("svg",{staticClass:"hint-icon",attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M8.75 14.1666H10.4167V12.5H8.75V14.1666ZM9.58333 16.25C5.90833 16.25 2.91667 13.2583 2.91667 9.58333C2.91667 5.90833 5.90833 2.91667 9.58333 2.91667C13.2583 2.91667 16.25 5.90833 16.25 9.58333C16.25 13.2583 13.2583 16.25 9.58333 16.25ZM9.58333 1.25C8.48898 1.25 7.40535 1.46555 6.3943 1.88434C5.38326 2.30313 4.4646 2.91696 3.69078 3.69078C2.12797 5.25358 1.25 7.3732 1.25 9.58333C1.25 11.7935 2.12797 13.9131 3.69078 15.4759C4.4646 16.2497 5.38326 16.8635 6.3943 17.2823C7.40535 17.7011 8.48898 17.9167 9.58333 17.9167C11.7935 17.9167 13.9131 17.0387 15.4759 15.4759C17.0387 13.9131 17.9167 11.7935 17.9167 9.58333C17.9167 8.48898 17.7011 7.40535 17.2823 6.3943C16.8635 5.38326 16.2497 4.4646 15.4759 3.69078C14.7021 2.91696 13.7834 2.30313 12.7724 1.88434C11.7613 1.46555 10.6777 1.25 9.58333 1.25Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M9.91601 4.51787C8.98167 4.42606 8.05144 4.69097 7.36309 5.24472C6.68735 5.78828 6.2998 6.56661 6.2998 7.38012H7.92488C7.92488 6.97463 8.11059 6.60187 8.44779 6.33061C8.79784 6.049 9.25647 5.92005 9.73896 5.96755C10.4832 6.04076 11.0828 6.57277 11.1647 7.23265C11.2306 7.764 10.9661 8.28194 10.4744 8.58426C9.38676 9.25303 8.73742 10.343 8.73742 11.5H10.3625C10.3625 10.8243 10.7477 10.184 11.3929 9.78733C12.3808 9.17985 12.9122 8.13913 12.7798 7.07124C12.6144 5.73863 11.41 4.66476 9.91601 4.51787Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:Object.assign({},e.tooltipStyle,{maxWidth:e.maxWidth})},[e._v(" "+e._s(e.hint)+" ")])])},_=[],q=(i("1276"),{data:function(){return{tooltipStyle:{visibility:"hidden"}}},computed:{tooltipElement:function(){return this.$refs.tooltip}},methods:{showTooltip:function(e,t){var i=t?t.split("-"):["top","right"],n=12;"top"===i[0]?this.tooltipStyle.top=e.clientY-n+"px":this.tooltipStyle.top=e.clientY+n+"px","right"===i[1]?this.tooltipStyle.left=e.clientX+n+"px":this.tooltipStyle.left=e.clientX-n-this.tooltipElement.offsetWidth+"px",this.tooltipStyle.visibility="visible"},hideTooltip:function(){this.tooltipStyle.visibility="hidden"}}}),V={name:"HintIcon",props:["hint","maxWidth"],mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},R=V,B=(i("80ad"),Object(s["a"])(R,P,_,!1,null,"30581f31",null)),G=B.exports,H={name:"textField",props:["placeholder","label","errorMsg","value","width","hint","maxHintWidth","disabled"],components:{HintIcon:G}},$=H,W=(i("daef"),Object(s["a"])($,Y,Z,!1,null,"59fd41a8",null)),F=W.exports,J=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"db-uploader-container",style:{width:e.width}},["small"===e.type?n("change-db-icon",{on:{click:e.browse}}):e._e(),"illustrated"===e.type?n("div",{staticClass:"drop-area-container"},[n("div",{staticClass:"drop-area",on:{dragover:function(t){t.preventDefault(),e.state="dragover"},dragleave:function(t){t.preventDefault(),e.state=""},drop:function(t){return t.preventDefault(),e.drop(t)},click:e.browse}},[n("div",{staticClass:"text"},[e._v(" Drop the database or CSV file here or click to choose a file from your computer. ")])])]):e._e(),"illustrated"===e.type?n("div",{attrs:{id:"img-container"}},[n("img",{attrs:{id:"drop-file-top-img",src:i("3a016")}}),n("img",{class:{swing:"dragover"===e.state},attrs:{id:"left-arm-img",src:i("9bf4")}}),n("img",{ref:"fileImg",class:{swing:"dragover"===e.state,fly:"dropping"===e.state,hidden:"dropped"===e.state},attrs:{id:"file-img",src:i("87d4")}}),n("img",{attrs:{id:"drop-file-bottom-img",src:i("6a0b")}}),n("img",{attrs:{id:"body-img",src:i("1678")}}),n("img",{class:{swing:"dragover"===e.state},attrs:{id:"right-arm-img",src:i("2335")}})]):e._e(),n("div",{staticClass:"error",attrs:{id:"error"}}),n("csv-import",{ref:"addCsv",attrs:{file:e.file,db:e.newDb,"dialog-name":"importFromCsv"},on:{cancel:e.cancelCsvImport,finish:e.finish}})],1)},X=[],K=(i("2ca0"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("svg",{staticClass:"db-edit-icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M3 10.5V12.75C3 14.25 5.2875 15.54 8.25 15.75V13.5825L8.3475 13.5C5.34 13.32 3 12.045 3 10.5ZM9 9.75C5.685 9.75 3 8.4075 3 6.75V9C3 10.6575 5.685 12 9 12C9.2925 12 9.5775 12 9.87 12L12.75 9.09C11.55 9.54 10.2825 9.75 9 9.75ZM9 2.25C5.685 2.25 3 3.5925 3 5.25C3 6.9075 5.685 8.25 9 8.25C12.315 8.25 15 6.9075 15 5.25C15 3.5925 12.315 2.25 9 2.25ZM15.75 8.3475C15.6375 8.3475 15.5325 8.3925 15.4575 8.475L14.7075 9.225L16.245 10.725L16.995 9.975C17.1525 9.825 17.16 9.57 16.995 9.3975L16.065 8.475C15.99 8.3925 15.885 8.3475 15.78 8.3475H15.75ZM14.28 9.66L9.75 14.205V15.75H11.295L15.84 11.1975L14.28 9.66Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Load another database or CSV ")])])}),ee=[],te={name:"changeDbIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},ie=te,ne=(i("637d"),Object(s["a"])(ie,K,ee,!1,null,"2c7f445c",null)),ae=ne.exports,re=i("d4ec"),se=i("bee2"),oe=(i("159b"),i("53ca")),ce=i("3835"),le=(i("d81d"),i("b64b"),i("fb6a"),i("99af"),i("6283")),ue=i.n(le),de={generateChunks:regeneratorRuntime.mark((function e(t,i){var n,a,r,s,o,c,l,u;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:n=Object.keys(t).map((function(e){return t[e]})),a=Object(ce["a"])(n,1),r=a[0],s=r.map((function(e,t){return n.map((function(e){return e[t]}))})),o=Math.ceil(s.length/i),c=0;case 5:if(!(c<=o-1)){e.next=13;break}return l=i*c,u=l+i,e.next=10,s.slice(l,u);case 10:c++,e.next=5;break;case 13:case"end":return e.stop()}}),e)})),getInsertStmt:function(e,t){var i='"'.concat(t.join('", "'),'"'),n=t.map((function(){return"?"})).join(", ");return'INSERT INTO "'.concat(e,'" (').concat(i,") VALUES (").concat(n,");")},getCreateStatement:function(e,t){var i='CREATE table "'.concat(e,'"(');for(var n in t){var a=t[n][0],r="";switch(Object(oe["a"])(a)){case"number":r="REAL";break;case"boolean":r="INTEGER";break;case"string":r="TEXT";break;default:r="TEXT"}i+='"'.concat(n,'" ').concat(r,", ")}return i=i.replace(/,\s$/,");"),i},getAst:function(e){var t=e.replace(/(tokenize=[^,]+)"tokenchars=.+?"/,"$1").replace(/(tokenize=[^,]+)"remove_diacritics=.+?"/,"$1").replace(/(tokenize=[^,]+)"separators=.+?"/,"$1").replace(/tokenize=.+?(,|\))/,"tokenize=unicode61$1");return ue()(t)},getColumns:function(e){var t=[],i=this.getAst(e),n="table"===i.statement[0].format?i.statement[0].definition:i.statement[0].result.args.expression;return n.forEach((function(e){if("column"===e.variant&&["identifier","definition"].includes(e.type)){var i=e.datatype?e.datatype.variant:"N/A";e.datatype&&e.datatype.args&&(i=i+"("+e.datatype.args.expression[0].value,2===e.datatype.args.expression.length&&(i=i+", "+e.datatype.args.expression[1].value),i+=")"),t.push({name:e.name,type:i})}})),t}};function Me(){return new Worker(i.p+"js/_worker.c13cc3a9.worker.js")}var ge=i("ebb0"),pe=i.n(ge);function he(){var e=new Me;return new Ne(e)}var Ie={getNewDatabase:he},me=0,Ne=function(){function e(t){var i=this;Object(re["a"])(this,e),this.dbName=null,this.schema=null,this.worker=t,this.pw=new pe.a(t),this.importProgresses={},t.addEventListener("message",(function(e){var t=e.data.progress;if(void 0!==t){var n=e.data.id;i.importProgresses[n].dispatchEvent(new CustomEvent("progress",{detail:t}))}}))}return Object(se["a"])(e,[{key:"shutDown",value:function(){this.worker.terminate()}},{key:"createProgressCounter",value:function(e){var t=me++;return this.importProgresses[t]=new EventTarget,this.importProgresses[t].addEventListener("progress",(function(t){e(t.detail)})),t}},{key:"deleteProgressCounter",value:function(e){delete this.importProgresses[e]}},{key:"addTableFromCsv",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t,i,n){var a;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.pw.postMessage({action:"import",data:i,progressCounterId:n,tabName:t});case 2:if(a=e.sent,!a.error){e.next=5;break}throw new Error(a.error);case 5:this.dbName=this.dbName||"database",this.refreshSchema();case 7:case"end":return e.stop()}}),e,this)})));function t(t,i,n){return e.apply(this,arguments)}return t}()},{key:"loadDb",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){var i,n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!t){e.next=6;break}return e.next=3,C.readAsArrayBuffer(t);case 3:e.t0=e.sent,e.next=7;break;case 6:e.t0=null;case 7:return i=e.t0,e.next=10,this.pw.postMessage({action:"open",buffer:i});case 10:if(n=e.sent,!n.error){e.next=13;break}throw new Error(n.error);case 13:this.dbName=t?C.getFileName(t):"database",this.refreshSchema();case 15:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"refreshSchema",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(){var t,i,n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return t="\n SELECT name, sql\n FROM sqlite_master\n WHERE type='table' AND name NOT LIKE 'sqlite_%';\n ",e.next=3,this.execute(t);case 3:i=e.sent,n=[],i&&i.name&&i.name.forEach((function(e,t){n.push({name:e,columns:de.getColumns(i.sql[t])})})),this.schema=n;case 7:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"execute",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){var i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.pw.postMessage({action:"reopen"});case 2:return e.next=4,this.pw.postMessage({action:"exec",sql:t});case 4:if(i=e.sent,!i.error){e.next=7;break}throw new Error(i.error);case 7:return e.abrupt("return",i[i.length-1]);case 8:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"export",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){var i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.pw.postMessage({action:"export"});case 2:if(i=e.sent,!i.error){e.next=5;break}throw new Error(i.error);case 5:C.exportToFile(i,t);case 6:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"validateTableName",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!t.startsWith("sqlite_")){e.next=2;break}throw new Error("Table name can't start with sqlite_");case 2:if(!/[^\w]/.test(t)){e.next=4;break}throw new Error("Table name can contain only letters, digits and underscores");case 4:if(!/^(\d)/.test(t)){e.next=6;break}throw new Error("Table name can't start with a digit");case 6:return e.next=8,this.execute('BEGIN; CREATE TABLE "'.concat(t,'"(id); ROLLBACK;'));case 8:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"sanitizeTableName",value:function(e){return e.replace(/[^\w]/g,"_").replace(/^(\d)/,"_$1").replace(/_{2,}/g,"_")}}]),e}(),fe=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("modal",{attrs:{name:e.dialogName,classes:"dialog",height:"auto",width:"80%",scrollable:"",clickToClose:!1}},[i("div",{staticClass:"dialog-header"},[e._v(" CSV import "),i("close-icon",{attrs:{disabled:e.disableDialog},on:{click:e.cancelCsvImport}})],1),i("div",{staticClass:"dialog-body"},[i("text-field",{attrs:{label:"Table name",width:"484px",disabled:e.disableDialog,"error-msg":e.tableNameError,id:"csv-table-name"},model:{value:e.tableName,callback:function(t){e.tableName=t},expression:"tableName"}}),i("div",{staticClass:"chars"},[i("delimiter-selector",{staticClass:"char-input",attrs:{width:"210px",disabled:e.disableDialog},on:{input:e.previewCsv},model:{value:e.delimiter,callback:function(t){e.delimiter=t},expression:"delimiter"}}),i("text-field",{staticClass:"char-input",attrs:{label:"Quote char",hint:"The character used to quote fields.",width:"93px",disabled:e.disableDialog,id:"quote-char"},model:{value:e.quoteChar,callback:function(t){e.quoteChar=t},expression:"quoteChar"}}),i("text-field",{staticClass:"char-input",attrs:{label:"Escape char",hint:'The character used to escape the quote character within a field (e.g. "column with ""quotes"" in text").',"max-hint-width":"242px",width:"93px",disabled:e.disableDialog,id:"escape-char"},model:{value:e.escapeChar,callback:function(t){e.escapeChar=t},expression:"escapeChar"}})],1),i("check-box",{attrs:{init:!0,label:"Use first row as column headers",disabled:e.disableDialog},on:{click:function(t){e.header=t}}}),e.previewData&&(e.previewData.rowCount>0||Object.keys(e.previewData).length>0)?i("sql-table",{staticClass:"preview-table",attrs:{"data-set":e.previewData,preview:!0}}):i("div",{staticClass:"no-data"},[e._v("No data")]),i("logs",{staticClass:"import-csv-errors",attrs:{messages:e.importCsvMessages}})],1),i("div",{staticClass:"dialog-buttons-container"},[i("button",{staticClass:"secondary",attrs:{disabled:e.disableDialog,id:"csv-cancel"},on:{click:e.cancelCsvImport}},[e._v(" Cancel ")]),i("button",{directives:[{name:"show",rawName:"v-show",value:!e.importCsvCompleted,expression:"!importCsvCompleted"}],staticClass:"primary",attrs:{disabled:e.disableDialog,id:"csv-import"},on:{click:function(t){return e.loadFromCsv(e.file)}}},[e._v(" Import ")]),i("button",{directives:[{name:"show",rawName:"v-show",value:e.importCsvCompleted,expression:"importCsvCompleted"}],staticClass:"primary",attrs:{disabled:e.disableDialog,id:"csv-finish"},on:{click:e.finish}},[e._v(" Finish ")])])])},ve=[],De=(i("498a"),i("369b")),je=i.n(De),ye={MissingQuotes:"Edit your CSV so that the field has a closing quote char.",TooFewFields:"Add fields or try another delimiter.",TooManyFields:"Edit your CSV or try another delimiter."},be={getResult:function(e){var t={};if(e.meta.fields)e.meta.fields.forEach((function(i){t[i.trim()]=e.data.map((function(e){var t=e[i];return t instanceof Date&&(t=t.toISOString()),t}))}));else for(var i=function(i){t["col".concat(i+1)]=e.data.map((function(e){var t=e[i];return t instanceof Date&&(t=t.toISOString()),t}))},n=0;n<=e.data[0].length-1;n++)i(n);return t},parse:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(n,a){var r={delimiter:"",newline:"",quoteChar:'"',escapeChar:'"',header:!1,transformHeader:void 0,dynamicTyping:!0,preview:0,encoding:"UTF-8",worker:!0,comments:!1,step:void 0,complete:function(e){var i={data:t.getResult(e),delimiter:e.meta.delimiter,hasErrors:!1,rowCount:e.data.length};i.messages=e.errors.map((function(e){return e.type="UndetectableDelimiter"===e.code?"info":"error","error"===e.type&&(i.hasErrors=!0),e.hint=ye[e.code],e})),n(i)},error:function(e,t){a(e)},download:!1,downloadRequestHeaders:void 0,downloadRequestBody:void 0,skipEmptyLines:"greedy",chunk:void 0,chunkSize:void 0,fastMode:void 0,beforeFirstChunk:void 0,withCredentials:void 0,transform:void 0,delimitersToGuess:[",","\t","|",";",je.a.RECORD_SEP,je.a.UNIT_SEP]};je.a.parse(e,Object(I["a"])(Object(I["a"])({},r),i))}))}},Ce=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["icon",{disabled:e.disabled}],attrs:{width:e.size,height:e.size,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},on:{click:function(t){return t.stopPropagation(),e.$emit("click")}}},[i("path",{attrs:{d:"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z",fill:"#A2B1C6"}})])},ze=[],Te=(i("a9e3"),{name:"CloseIcon",props:{size:{type:Number,required:!1,default:14},disabled:{type:Boolean,required:!1,default:!1}}}),we=Te,xe=(i("f4da"),Object(s["a"])(we,Ce,ze,!1,null,"86f3a16c",null)),Oe=xe.exports,Ae=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:{disabled:e.disabled}},[i("div",{staticClass:"text-field-label"},[e._v("Delimiter")]),i("div",{staticClass:"delimiter-selector-container",style:{width:e.width},on:{click:e.onContainerClick}},[i("div",{staticClass:"value"},[i("input",{directives:[{name:"model",rawName:"v-model",value:e.inputValue,expression:"inputValue"}],ref:"delimiterInput",class:{filled:e.filled},attrs:{type:"text",maxlength:"1",disabled:e.disabled},domProps:{value:e.inputValue},on:{click:function(e){e.stopPropagation()},input:function(t){t.target.composing||(e.inputValue=t.target.value)}}}),i("div",{staticClass:"name"},[e._v(e._s(e.getSymbolName(e.value)))])]),i("div",{staticClass:"controls",on:{click:function(e){e.stopPropagation()}}},[i("clear-icon",{attrs:{disabled:e.disabled},nativeOn:{click:function(t){return e.clear(t)}}}),i("drop-down-chevron",{attrs:{disabled:e.disabled},nativeOn:{click:function(t){!e.disabled&&(e.showOptions=!e.showOptions)}}})],1)]),i("div",{directives:[{name:"show",rawName:"v-show",value:e.showOptions,expression:"showOptions"}],staticClass:"options",style:{width:e.width}},e._l(e.options,(function(t,n){return i("div",{key:n,staticClass:"option",on:{click:function(i){return e.chooseOption(t)}}},[i("pre",[e._v(e._s(t))]),i("div",[e._v(e._s(e.getSymbolName(t)))])])})),0)])},Le=[],ke=(i("25f0"),{0:{name:"null character"},1:{name:"start of header"},2:{name:"start of text"},3:{name:"end of text"},4:{name:"end of transmission"},5:{name:"enquiry"},6:{name:"acknowledge"},7:{name:"bell (ring)"},8:{name:"backspace"},9:{name:"horizontal tab"},10:{name:"line feed"},11:{name:"vertical tab"},12:{name:"form feed"},13:{name:"carriage return"},14:{name:"shift out"},15:{name:"shift in"},16:{name:"data link escape"},17:{name:"device control 1"},18:{name:"device control 2"},19:{name:"device control 3"},20:{name:"device control 4"},21:{name:"negative acknowledge"},22:{name:"synchronize"},23:{name:"end transmission block"},24:{name:"cancel"},25:{name:"end of medium"},26:{name:"substitute"},27:{name:"escape"},28:{name:"file separator"},29:{name:"group separator"},30:{name:"record separator"},31:{name:"unit separator"},32:{name:"space"},33:{name:"exclamation mark"},34:{name:"quotation mark"},35:{name:"number sign"},36:{name:"dollar sign"},37:{name:"percent sign"},38:{name:"ampersand"},39:{name:"apostrophe"},40:{name:"left parenthesis"},41:{name:"right parenthesis"},42:{name:"asterisk"},43:{name:"plus sign"},44:{name:"comma"},45:{name:"hyphen"},46:{name:"period"},47:{name:"slash"},48:{name:"digit 0"},49:{name:"digit 1"},50:{name:"digit 2"},51:{name:"digit 3"},52:{name:"digit 4"},53:{name:"digit 5"},54:{name:"digit 6"},55:{name:"digit 7"},56:{name:"digit 8"},57:{name:"digit 9"},58:{name:"colon"},59:{name:"semicolon"},60:{name:"less-than"},61:{name:"equals-to"},62:{name:"greater-than"},63:{name:"question mark"},64:{name:"at sign"},65:{name:"uppercase A"},66:{name:"uppercase B"},67:{name:"uppercase C"},68:{name:"uppercase D"},69:{name:"uppercase E"},70:{name:"uppercase F"},71:{name:"uppercase G"},72:{name:"uppercase H"},73:{name:"uppercase I"},74:{name:"uppercase J"},75:{name:"uppercase K"},76:{name:"uppercase L"},77:{name:"uppercase M"},78:{name:"uppercase N"},79:{name:"uppercase O"},80:{name:"uppercase P"},81:{name:"uppercase Q"},82:{name:"uppercase R"},83:{name:"uppercase S"},84:{name:"uppercase T"},85:{name:"uppercase U"},86:{name:"uppercase V"},87:{name:"uppercase W"},88:{name:"uppercase X"},89:{name:"uppercase Y"},90:{name:"uppercase Z"},91:{name:"left square bracket"},92:{name:"backslash"},93:{name:"right square bracket"},94:{name:"caret"},95:{name:"underscore"},96:{name:"grave accent"},97:{name:"lowercase a"},98:{name:"lowercase b"},99:{name:"lowercase c"},100:{name:"lowercase d"},101:{name:"lowercase e"},102:{name:"lowercase f"},103:{name:"lowercase g"},104:{name:"lowercase h"},105:{name:"lowercase i"},106:{name:"lowercase j"},107:{name:"lowercase k"},108:{name:"lowercase l"},109:{name:"lowercase m"},110:{name:"lowercase n"},111:{name:"lowercase o"},112:{name:"lowercase p"},113:{name:"lowercase q"},114:{name:"lowercase r"},115:{name:"lowercase s"},116:{name:"lowercase t"},117:{name:"lowercase u"},118:{name:"lowercase v"},119:{name:"lowercase w"},120:{name:"lowercase x"},121:{name:"lowercase y"},122:{name:"lowercase z"},123:{name:"left curly brace"},124:{name:"vertical bar"},125:{name:"right curly brace"},126:{name:"tilde"},127:{name:"delete (rubout)"}}),Ee=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["chevron-icon",{disabled:e.disabled}],attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[i("path",{attrs:{d:"M6.175 7.15002L10 10.975L13.825 7.15002L15 8.33336L10 13.3334L5 8.33336L6.175 7.15002Z",fill:"#C8D4E3"}})])},Se=[],Qe={name:"DropDownChevron",props:["disabled"]},Ue=Qe,Ye=(i("493e"),Object(s["a"])(Ue,Ee,Se,!1,null,"29bdb7bf",null)),Ze=Ye.exports,Pe=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["clear-icon",{disabled:e.disabled}],attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[i("path",{attrs:{d:"M14.3481 14.849C13.8791 15.318 13.1191 15.318 12.6511 14.849L10.0001 11.819L7.34907 14.848C6.88007 15.317 6.12007 15.317 5.65207 14.848C5.18307 14.379 5.18307 13.619 5.65207 13.151L8.41007 10.001L5.65107 6.84898C5.18207 6.37998 5.18207 5.62098 5.65107 5.15198C6.12007 4.68298 6.87907 4.68298 7.34807 5.15198L10.0001 8.18298L12.6511 5.15198C13.1201 4.68298 13.8791 4.68298 14.3481 5.15198C14.8171 5.62098 14.8171 6.38098 14.3481 6.84898L11.5901 10.001L14.3481 13.151C14.8171 13.62 14.8171 14.38 14.3481 14.849V14.849Z",fill:"#C8D4E3"}})])},_e=[],qe={name:"ClearIcon",props:["disabled"]},Ve=qe,Re=(i("f7a6"),Object(s["a"])(Ve,Pe,_e,!1,null,"69060e4e",null)),Be=Re.exports,Ge={name:"DelimiterSelector",props:["value","width","disabled"],components:{DropDownChevron:Ze,ClearIcon:Be},data:function(){return{showOptions:!1,options:[",","\t"," ","|",";","",""],filled:!1,inputValue:""}},watch:{inputValue:function(){this.inputValue?(this.filled=!0,this.inputValue!==this.value&&this.$emit("input",this.inputValue)):this.filled=!1}},created:function(){this.inputValue=this.value},methods:{getSymbolName:function(e){return e?ke[e.charCodeAt(0).toString()].name:""},chooseOption:function(e){this.inputValue=e,this.showOptions=!1},onContainerClick:function(e){this.$refs.delimiterInput.focus()},clear:function(){this.disabled||(this.inputValue="",this.$refs.delimiterInput.focus())}}},He=Ge,$e=(i("28f9"),Object(s["a"])(He,Ae,Le,!1,null,"44b0b048",null)),We=$e.exports,Fe=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:["checkbox-container",{checked:e.checked},{disabled:e.disabled}],on:{click:function(t){return t.stopPropagation(),e.onClick(t)}}},[n("div",{directives:[{name:"show",rawName:"v-show",value:!e.checked,expression:"!checked"}],staticClass:"unchecked"}),n("img",{directives:[{name:"show",rawName:"v-show",value:e.checked&&!e.disabled,expression:"checked && !disabled"}],attrs:{src:"light"===e.theme?i("69e6"):i("93dd")}}),n("img",{directives:[{name:"show",rawName:"v-show",value:e.checked&&e.disabled,expression:"checked && disabled"}],attrs:{src:i("3d10")}}),e.label?n("span",{staticClass:"label"},[e._v(e._s(e.label))]):e._e()])},Je=[],Xe={name:"CheckBox",props:{theme:{type:String,required:!1,default:"accent",validator:function(e){return["accent","light"].includes(e)}},init:{type:Boolean,required:!1,default:!1},label:{type:String,required:!1,default:""},disabled:{type:Boolean,required:!1,default:!1}},data:function(){return{checked:this.init}},methods:{onClick:function(){this.disabled||(this.checked=!this.checked,this.$emit("click",this.checked))}}},Ke=Xe,et=(i("a96d"),Object(s["a"])(Ke,Fe,Je,!1,null,"0dd86013",null)),tt=et.exports,it=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("div",{staticClass:"rounded-bg"},[i("div",{ref:"header-container",staticClass:"header-container"},[i("div",e._l(e.header,(function(t,n){return i("div",{key:n,staticClass:"fixed-header",style:{width:t.width+"px"}},[e._v(" "+e._s(t.name)+" ")])})),0)]),i("div",{ref:"table-container",staticClass:"table-container",on:{scroll:e.onScrollTable}},[i("table",{ref:"table",staticClass:"sqliteviz-table"},[i("thead",[i("tr",e._l(e.columns,(function(t,n){return i("th",{key:n,ref:"th",refInFor:!0},[i("div",{staticClass:"cell-data",style:e.cellStyle},[e._v(e._s(t))])])})),0)]),i("tbody",e._l(e.currentPageData.count,(function(t){return i("tr",{key:t},e._l(e.columns,(function(n,a){return i("td",{key:a},[i("div",{staticClass:"cell-data",style:e.cellStyle},[e._v(" "+e._s(e.dataSet[n][t-1+e.currentPageData.start])+" ")])])})),0)})),0)])])]),i("div",{staticClass:"table-footer"},[i("div",{staticClass:"table-footer-count"},[e._v(" "+e._s(e.rowCount)+" "+e._s(1===e.rowCount?"row":"rows")+" retrieved "),e.preview?i("span",[e._v("for preview")]):e._e(),e.time?i("span",[e._v("in "+e._s(e.time))]):e._e()]),i("pager",{directives:[{name:"show",rawName:"v-show",value:e.pageCount>1,expression:"pageCount > 1"}],attrs:{"page-count":e.pageCount},model:{value:e.currentPage,callback:function(t){e.currentPage=t},expression:"currentPage"}})],1)])},nt=[],at=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("paginate",{attrs:{"page-count":e.pageCount,"page-range":5,"margin-pages":1,"prev-text":e.chevron,"next-text":e.chevron,"no-li-surround":!0,"container-class":"paginator-continer","page-link-class":"paginator-page-link","active-class":"paginator-active-page","break-view-link-class":"paginator-break","next-link-class":"paginator-next","prev-link-class":"paginator-prev","disabled-class":"paginator-disabled"},model:{value:e.page,callback:function(t){e.page=t},expression:"page"}})},rt=[],st=i("8832"),ot=i.n(st),ct={name:"Pager",components:{Paginate:ot.a},props:["pageCount","value"],data:function(){return{page:this.value,chevron:'\n \n \n \n '}},watch:{page:function(){this.$emit("input",this.page)},value:function(){this.page=this.value}}},lt=ct,ut=(i("fc07"),Object(s["a"])(lt,at,rt,!1,null,"658886c7",null)),dt=ut.exports,Mt={name:"SqlTable",components:{Pager:dt},props:{dataSet:Object,time:String,pageSize:{type:Number,default:20},preview:Boolean},data:function(){return{header:null,tableWidth:null,currentPage:1,resizeObserver:null}},computed:{columns:function(){return Object.keys(this.dataSet)},rowCount:function(){return this.dataSet[this.columns[0]].length},cellStyle:function(){var e=this.tableWidth/this.columns.length;return{maxWidth:"".concat(Math.max(e,100),"px")}},pageCount:function(){return Math.ceil(this.rowCount/this.pageSize)},currentPageData:function(){var e=(this.currentPage-1)*this.pageSize,t=e+this.pageSize;return t>this.rowCount-1&&(t=this.rowCount-1),{start:e,end:t,count:t-e+1}}},methods:{calculateHeadersWidth:function(){var e=this;this.tableWidth=this.$refs["table-container"].offsetWidth,this.$nextTick((function(){e.header=e.$refs.th.map((function(e){return{name:e.innerText,width:e.getBoundingClientRect().width}}))}))},onScrollTable:function(){this.$refs["header-container"].scrollLeft=this.$refs["table-container"].scrollLeft}},mounted:function(){this.resizeObserver=new ResizeObserver(this.calculateHeadersWidth),this.resizeObserver.observe(this.$refs.table),this.calculateHeadersWidth()},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.table)},watch:{currentPageData:"calculateHeadersWidth",dataSet:function(){this.currentPage=1}}},gt=Mt,pt=Object(s["a"])(gt,it,nt,!1,null,"115cb541",null),ht=pt.exports,It=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"logsContainer",staticClass:"logs-container"},e._l(e.messages,(function(t,a){return n("div",{key:a,staticClass:"msg"},["error"===t.type?n("img",{attrs:{src:i("7314")}}):e._e(),"info"===t.type?n("img",{attrs:{src:i("db39"),width:"20px"}}):e._e(),"success"===t.type?n("img",{attrs:{src:i("0bf4")}}):e._e(),"loading"===t.type?n("loading-indicator",{attrs:{progress:t.progress}}):e._e(),n("span",{staticClass:"msg-text"},[e._v(e._s(e.serializeMessage(t)))])],1)})),0)},mt=[],Nt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:e.animationClass,attrs:{height:e.size,width:e.size,viewBox:"0 0 "+e.size+" "+e.size}},[i("circle",{staticClass:"loader-svg bg",style:{strokeWidth:e.strokeWidth},attrs:{cx:e.size/2,cy:e.size/2,r:e.radius}}),i("circle",{staticClass:"loader-svg front",style:{strokeDasharray:e.circleProgress,strokeDashoffset:e.offset,strokeWidth:e.strokeWidth},attrs:{cx:e.size/2,cy:e.size/2,r:e.radius}})])},ft=[],vt={name:"LoadingIndicator",props:{progress:{type:Number,required:!1},size:{type:Number,required:!1,default:20}},computed:{circleProgress:function(){var e=3.14*this.radius*2,t=this.progress?e*this.progress/100:1*e/3,i=e-t;return"".concat(t,"px, ").concat(i,"px")},animationClass:function(){return void 0===this.progress?"loading":"progress"},radius:function(){return this.size/2-this.strokeWidth},offset:function(){return 3.14*this.radius/2},strokeWidth:function(){return this.size/10}}},Dt=vt,jt=(i("d9ad"),Object(s["a"])(Dt,Nt,ft,!1,null,"62096452",null)),yt=jt.exports,bt={name:"logs",props:["messages"],components:{LoadingIndicator:yt},watch:{"messages.length":"scrollToBottom"},mounted:function(){this.scrollToBottom()},methods:{scrollToBottom:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(i=e.$refs.logsContainer,!i){t.next=5;break}return t.next=4,e.$nextTick();case 4:i.scrollTop=i.scrollHeight;case 5:case"end":return t.stop()}}),t)})))()},serializeMessage:function(e){var t="";return null!==e.row&&void 0!==e.row&&("error"===e.type?t+="Error in row ".concat(e.row,". "):t+="Information about row ".concat(e.row,". ")),t+=e.message,/(\.|!|\?)$/.test(t)||(t+="."),e.hint&&(t+=" ".concat(e.hint)),t}}},Ct=bt,zt=(i("0582"),Object(s["a"])(Ct,It,mt,!1,null,"1c9f27dc",null)),Tt=zt.exports,wt=(i("b680"),{getPeriod:function(e,t){var i=t.getTime()-e.getTime(),n=i/1e3;return n.toFixed(3)+"s"},debounce:function(e,t){var i;return function(){var n=arguments,a=this;clearTimeout(i),i=setTimeout((function(){return e.apply(a,n)}),t)}}}),xt={name:"CsvImport",components:{CloseIcon:Oe,TextField:F,DelimiterSelector:We,CheckBox:tt,SqlTable:ht,Logs:Tt},props:["file","db","dialogName"],data:function(){return{disableDialog:!1,tableName:"",delimiter:"",quoteChar:'"',escapeChar:'"',header:!0,importCsvCompleted:!1,importCsvMessages:[],previewData:null,addedTable:null,tableNameError:""}},watch:{quoteChar:function(){this.previewCsv()},escapeChar:function(){this.previewCsv()},header:function(){this.previewCsv()},tableName:wt.debounce((function(){var e=this;this.tableNameError="",this.tableName&&this.db.validateTableName(this.tableName).catch((function(t){e.tableNameError=t.message+". Try another table name."}))}),400)},methods:{cancelCsvImport:function(){this.disableDialog||(this.addedTable&&(this.db.execute('DROP TABLE "'.concat(this.addedTable,'"')),this.db.refreshSchema()),this.$modal.hide(this.dialogName),this.$emit("cancel"))},reset:function(){this.header=!0,this.quoteChar='"',this.escapeChar='"',this.delimiter="",this.tableName="",this.disableDialog=!1,this.importCsvCompleted=!1,this.importCsvMessages=[],this.previewData=null,this.addedTable=null,this.tableNameError=""},open:function(){this.tableName=this.db.sanitizeTableName(C.getFileName(this.file)),this.$modal.show(this.dialogName)},previewCsv:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n,a,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.importCsvCompleted=!1,i={preview:3,quoteChar:e.quoteChar||'"',escapeChar:e.escapeChar,header:e.header,delimiter:e.delimiter},t.prev=2,n=new Date,t.next=6,be.parse(e.file,i);case 6:a=t.sent,r=new Date,e.previewData=a.data,e.delimiter=a.delimiter,e.importCsvMessages=a.messages||[],a.hasErrors||e.importCsvMessages.push({message:"Preview parsing is completed in ".concat(wt.getPeriod(n,r),"."),type:"success"}),t.next=17;break;case 14:t.prev=14,t.t0=t["catch"](2),e.importCsvMessages=[{message:t.t0,type:"error"}];case 17:case"end":return t.stop()}}),t,null,[[2,14]])})))()},loadFromCsv:function(e){var t=this;return Object(u["a"])(regeneratorRuntime.mark((function e(){var i,n,a,r,s,o,c,l,u,d,M,g;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(t.tableName){e.next=3;break}return t.tableNameError="Table name can't be empty",e.abrupt("return");case 3:return t.disableDialog=!0,i={quoteChar:t.quoteChar||'"',escapeChar:t.escapeChar,header:t.header,delimiter:t.delimiter},n={message:"Parsing CSV...",type:"info"},t.importCsvMessages.push(n),a=setTimeout((function(){n.type="loading"}),1e3),r={message:"Importing CSV into a SQLite database...",type:"info"},s=null,o=function(e){t.$set(r,"progress",e)},c=t.db.createProgressCounter(o),e.prev=12,l=new Date,e.next=16,be.parse(t.file,i);case 16:if(u=e.sent,d=new Date,u.hasErrors){e.next=38;break}return M=u.rowCount,g=wt.getPeriod(l,d),n.type="success",u.messages.length>0?(t.importCsvMessages=t.importCsvMessages.concat(u.messages),n.message="".concat(M," rows are parsed in ").concat(g,".")):n.message="".concat(M," rows are parsed successfully in ").concat(g,"."),clearTimeout(a),t.importCsvMessages.push(r),s=setTimeout((function(){r.type="loading"}),1e3),l=new Date,e.next=29,t.db.addTableFromCsv(t.tableName,u.data,c);case 29:d=new Date,t.addedTable=t.tableName,g=wt.getPeriod(l,d),r.message="Importing CSV into a SQLite database is completed in ".concat(g,"."),r.type="success",clearTimeout(s),t.importCsvCompleted=!0,e.next=41;break;case 38:n.message="Parsing ended with errors.",n.type="info",t.importCsvMessages=t.importCsvMessages.concat(u.messages);case 41:e.next=48;break;case 43:e.prev=43,e.t0=e["catch"](12),"loading"===n.type&&(n.type="info"),"loading"===r.type&&(r.type="info"),t.importCsvMessages.push({message:e.t0,type:"error"});case 48:clearTimeout(a),clearTimeout(s),t.db.deleteProgressCounter(c),t.disableDialog=!1;case 52:case"end":return e.stop()}}),e,null,[[12,43]])})))()},finish:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.$modal.hide(e.dialogName),i=["/*"," * Your CSV file has been imported into ".concat(e.addedTable," table.")," * You can run this SQL query to make all CSV records available for charting."," */",'SELECT * FROM "'.concat(e.addedTable,'"')].join("\n"),t.next=4,e.$store.dispatch("addTab",{query:i});case 4:n=t.sent,e.$store.commit("setCurrentTabId",n),e.importCsvCompleted=!1,e.$emit("finish");case 8:case"end":return t.stop()}}),t)})))()}}},Ot=xt,At=(i("c4dc"),Object(s["a"])(Ot,fe,ve,!1,null,"68ef9d6c",null)),Lt=At.exports,kt={name:"DbUploader",props:{type:{type:String,required:!1,default:"small",validator:function(e){return["illustrated","small"].includes(e)}},width:{type:String,required:!1,default:"unset"}},components:{ChangeDbIcon:ae,CsvImport:Lt},data:function(){return{state:"",animationPromise:Promise.resolve(),file:null,newDb:null}},mounted:function(){var e=this;"illustrated"===this.type&&(this.animationPromise=new Promise((function(t){e.$refs.fileImg.addEventListener("animationend",(function(i){i.animationName.startsWith("fly")&&(e.state="dropped",t())}))})))},methods:{cancelCsvImport:function(){this.newDb&&(this.newDb.shutDown(),this.newDb=null)},finish:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:e.$store.commit("setDb",e.newDb),"/workspace"!==e.$route.path&&e.$router.push("/workspace");case 2:case"end":return t.stop()}}),t)})))()},loadDb:function(e){return Promise.all([this.newDb.loadDb(e),this.animationPromise]).then(this.finish)},checkFile:function(e){var t=this;return Object(u["a"])(regeneratorRuntime.mark((function i(){var n;return regeneratorRuntime.wrap((function(i){while(1)switch(i.prev=i.next){case 0:if(t.state="dropping",t.newDb=Ie.getNewDatabase(),!C.isDatabase(e)){i.next=6;break}t.loadDb(e),i.next=12;break;case 6:return t.file=e,i.next=9,t.$nextTick();case 9:return n=t.$refs.addCsv,n.reset(),i.abrupt("return",Promise.all([n.previewCsv(),t.animationPromise]).then(n.open));case 12:case"end":return i.stop()}}),i)})))()},browse:function(){C.getFileFromUser(".db,.sqlite,.sqlite3,.csv").then(this.checkFile)},drop:function(e){this.checkFile(e.dataTransfer.files[0])}}},Et=kt,St=(i("3311"),Object(s["a"])(Et,J,X,!1,null,"eefa30c0",null)),Qt=St.exports,Ut=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:function(t){return e.showTooltip(t,e.tooltipPosition)},mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M10.5 1.5H4.5C3.675 1.5 3 2.175 3 3V15C3 15.825 3.675 16.5 4.5 16.5H13.5C14.325 16.5 15 15.825 15 15V6L10.5 1.5ZM13.5 15H4.5V3H9.75V6.75H13.5V15ZM12 8.25V13.575L10.425 12L8.325 14.1L6.225 12L8.325 9.9L6.675 8.25H12Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" "+e._s(e.tooltip)+" ")])])},Yt=[],Zt={name:"ExportIcon",mixins:[q],props:["tooltip","tooltipPosition"],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},Pt=Zt,_t=(i("0ee2"),Object(s["a"])(Pt,Ut,Yt,!1,null,"15bea4a0",null)),qt=_t.exports,Vt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("g",{attrs:{"clip-path":"url(#clip0)"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"\n M13.6573 1.5H2.59985C1.77485 1.5 1.09985 2.175 1.09985 3V13.6649C1.09985 14.4899\n 1.77485 15.1649 2.59985\n 15.1649H9.84V13.6649H8.87866V9.08244H13.6573V9.83777H15.1573V3C15.1573\n 2.17 14.4873 1.5 13.6573 1.5ZM13.6573\n 7.58244V3H8.87866V7.58244H13.6573ZM7.37866 3H2.59985V7.58244H7.37866V3ZM2.59985\n 9.08244V13.6649H7.37866V9.08244H2.59985ZM13.1702\n 10.8434H15.6702V13.1717H18.0001V15.6717H15.6702V18H13.1702V15.6717H10.8401V13.1717H13.1702V10.8434Z\n ",fill:"#A2B1C6"}})]),i("defs",[i("clipPath",{attrs:{id:"clip0"}},[i("rect",{attrs:{width:"18",height:"18",fill:"white"}})])])]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Add new table from CSV ")])])},Rt=[],Bt={name:"AddTableIcon",mixins:[q],props:["tooltip"],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},Gt=Bt,Ht=(i("1640"),Object(s["a"])(Gt,Vt,Rt,!1,null,"0b825a18",null)),$t=Ht.exports,Wt={name:"Schema",components:{TableDescription:U,TextField:F,TreeChevron:k,DbUploader:Qt,ExportIcon:qt,AddTableIcon:$t,CsvImport:Lt},data:function(){return{schemaVisible:!0,filter:null,file:null}},computed:{schema:function(){var e=this;return this.$store.state.db.schema?this.filter?this.$store.state.db.schema.filter((function(t){return-1!==t.name.toUpperCase().indexOf(e.filter.toUpperCase())})):this.$store.state.db.schema:[]},dbName:function(){return this.$store.state.db.dbName}},methods:{exportToFile:function(){this.$store.state.db.export("".concat(this.dbName,".sqlite"))},addCsv:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,C.getFileFromUser(".csv");case 2:return e.file=t.sent,t.next=5,e.$nextTick();case 5:return i=e.$refs.addCsv,i.reset(),t.next=9,i.previewCsv();case 9:i.open();case 10:case"end":return t.stop()}}),t)})))()}}},Ft=Wt,Jt=(i("20c1"),Object(s["a"])(Ft,y,b,!1,null,"3fcc3d82",null)),Xt=Jt.exports,Kt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"tabs"}},[e.tabs.length>0?i("div",{attrs:{id:"tabs-header"}},e._l(e.tabs,(function(t,n){return i("div",{key:n,class:[{"tab-selected":t.id===e.selectedIndex},"tab"],on:{click:function(i){return e.selectTab(t.id)}}},[i("div",{staticClass:"tab-name"},[i("span",{directives:[{name:"show",rawName:"v-show",value:!t.isSaved,expression:"!tab.isSaved"}],staticClass:"star"},[e._v("*")]),t.name?i("span",[e._v(e._s(t.name))]):i("span",{staticClass:"tab-untitled"},[e._v(e._s(t.tempName))])]),i("div",[i("close-icon",{staticClass:"close-icon",attrs:{size:10},on:{click:function(t){return e.beforeCloseTab(n)}}})],1)])})),0):e._e(),e._l(e.tabs,(function(e,t){return i("tab",{key:e.id,attrs:{id:e.id,"init-name":e.name,"init-query":e.query,"init-view-options":e.viewOptions,"init-view-type":e.viewType,"is-predefined":e.isPredefined,"tab-index":t}})})),i("div",{directives:[{name:"show",rawName:"v-show",value:0===e.tabs.length,expression:"tabs.length === 0"}],attrs:{id:"start-guide"}},[i("span",{staticClass:"link",on:{click:function(t){return e.$root.$emit("createNewInquiry")}}},[e._v("Create")]),e._v(" new inquiry from scratch or open one from "),i("router-link",{staticClass:"link",attrs:{to:"/inquiries"}},[e._v("Inquiries")])],1),i("modal",{attrs:{name:"close-warn",classes:"dialog",height:"auto"}},[i("div",{staticClass:"dialog-header"},[e._v(" Close tab "+e._s(null!==e.closingTabIndex?e.tabs[e.closingTabIndex].name||"["+e.tabs[e.closingTabIndex].tempName+"]":"")+" "),i("close-icon",{on:{click:function(t){return e.$modal.hide("close-warn")}}})],1),i("div",{staticClass:"dialog-body"},[e._v(" You have unsaved changes. Save changes in "+e._s(null!==e.closingTabIndex?e.tabs[e.closingTabIndex].name||"["+e.tabs[e.closingTabIndex].tempName+"]":"")+" before closing? ")]),i("div",{staticClass:"dialog-buttons-container"},[i("button",{staticClass:"secondary",on:{click:function(t){return e.closeTab(e.closingTabIndex)}}},[e._v(" Close without saving ")]),i("button",{staticClass:"secondary",on:{click:function(t){return e.$modal.hide("close-warn")}}},[e._v("Cancel")]),i("button",{staticClass:"primary",on:{click:function(t){return e.saveAndClose(e.closingTabIndex)}}},[e._v("Save and close")])])])],2)},ei=[],ti=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"show",rawName:"v-show",value:e.isActive,expression:"isActive"}],staticClass:"tab-content-container"},[i("splitpanes",{staticClass:"query-results-splitter",attrs:{horizontal:"",before:{size:50,max:100},after:{size:50,max:100}},scopedSlots:e._u([{key:"left-pane",fn:function(){return[i("div",{staticClass:"above",attrs:{id:"above-"+e.tabIndex}})]},proxy:!0},{key:"right-pane",fn:function(){return[i("div",{ref:"bottomPane",staticClass:"bottomPane",attrs:{id:"bottom-"+e.tabIndex}})]},proxy:!0}])}),i("div",{staticClass:"hidden-part",attrs:{id:"hidden-"+e.tabIndex}}),i("teleport",{attrs:{to:"#"+e.layout.sqlEditor+"-"+e.tabIndex}},[i("sql-editor",{ref:"sqlEditor",attrs:{"is-getting-results":e.isGettingResults},on:{switchTo:function(t){return e.onSwitchView("sqlEditor",t)},run:e.execute},model:{value:e.query,callback:function(t){e.query=t},expression:"query"}})],1),i("teleport",{attrs:{to:"#"+e.layout.table+"-"+e.tabIndex}},[i("run-result",{attrs:{result:e.result,"is-getting-results":e.isGettingResults,error:e.error,time:e.time},on:{switchTo:function(t){return e.onSwitchView("table",t)}}})],1),i("teleport",{attrs:{to:"#"+e.layout.dataView+"-"+e.tabIndex}},[i("data-view",{ref:"dataView",attrs:{"data-source":e.result,"init-options":e.initViewOptions,"init-mode":e.initViewType},on:{switchTo:function(t){return e.onSwitchView("dataView",t)},update:e.onDataViewUpdate}})],1)],1)},ii=[],ni=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"sql-editor-panel"},[i("div",{staticClass:"codemirror-container"},[i("codemirror",{ref:"cm",attrs:{options:e.cmOptions},on:{changes:e.onChange},model:{value:e.query,callback:function(t){e.query=t},expression:"query"}})],1),i("side-tool-bar",{attrs:{panel:"sqlEditor"},on:{switchTo:function(t){return e.$emit("switchTo",t)}}},[i("icon-button",{attrs:{disabled:e.runDisabled,loading:e.isGettingResults,tooltip:"Run SQL query","tooltip-position":"top-left"},on:{click:function(t){return e.$emit("run")}}},[i("run-icon",{attrs:{disabled:e.runDisabled}})],1)],1)],1)},ai=[],ri=i("56b3"),si=i.n(ri),oi=(i("9b74"),i("991c"),i("2f62")),ci={tabs:[],currentTab:null,currentTabId:null,untitledLastIndex:0,predefinedInquiries:[],db:null},li=(i("a434"),{setDb:function(e,t){e.db&&e.db.shutDown(),e.db=t},updateTab:function(e,t){var i=t.index,a=t.name,r=t.id,s=t.query,o=t.viewType,c=t.viewOptions,l=t.isSaved,u=e.tabs[i],d=u.id;r&&e.currentTabId===d&&(e.currentTabId=r),r&&(u.id=r),a&&(u.name=a),s&&(u.query=s),o&&(u.viewType=o),c&&(u.viewOptions=c),void 0!==l&&(u.isSaved=l),l&&delete u.isPredefined,n["default"].set(e.tabs,i,u)},deleteTab:function(e,t){e.tabs[t].id===e.currentTabId&&(t0?e.currentTabId=e.tabs[t-1].id:(e.currentTabId=null,e.currentTab=null,e.untitledLastIndex=0)),e.tabs.splice(t,1)},setCurrentTabId:function(e,t){e.currentTabId=t},setCurrentTab:function(e,t){e.currentTab=t},updatePredefinedInquiries:function(e,t){e.predefinedInquiries=Array.isArray(t)?t:[t]}}),ui=i("e1bd"),di={addTab:function(e,t){return Object(u["a"])(regeneratorRuntime.mark((function i(){var n,a;return regeneratorRuntime.wrap((function(i){while(1)switch(i.prev=i.next){case 0:return n=e.state,a=t?JSON.parse(JSON.stringify(t)):{},t&&t.id?a.isSaved=!0:(a.id=Object(ui["a"])(),a.name=null,a.tempName=n.untitledLastIndex?"Untitled ".concat(n.untitledLastIndex):"Untitled",a.viewType="chart",a.viewOptions=void 0,a.isSaved=!1),n.tabs.some((function(e){return e.id===a.id}))||(n.tabs.push(a),a.name||(n.untitledLastIndex+=1)),i.abrupt("return",a.id);case 5:case"end":return i.stop()}}),i)})))()}};n["default"].use(oi["a"]);var Mi=new oi["a"].Store({state:ci,mutations:li,actions:di});function gi(e,t){var i=e.getTokenAt(e.getCursor()).string.toUpperCase(),n=si.a.hint.sql(e,t);return 1===n.list.length&&n.list[0].text.toUpperCase()===i&&(n.list=[]),n}var pi={get tables(){var e={};return Mi.state.db.schema&&Mi.state.db.schema.forEach((function(t){e[t.name]=t.columns.map((function(e){return e.name}))})),e},get defaultTable(){var e=Mi.state.db.schema;return e&&1===e.length?e[0].name:null},completeSingle:!1,completeOnSingleClick:!0,alignWithWord:!1};function hi(e){si.a.showHint(e,gi,pi)}function Ii(e){var t=e.getTokenAt(e.getCursor()),i=t.string.slice(-1),n=t.type;"string"!==n&&i&&" "!==i&&";"!==i&&si.a.showHint(e,gi,pi)}var mi=i("8f94"),Ni=(i("a7be"),i("ffda"),i("d5db"),i("f6b6"),i("f4ba"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"side-tool-bar"},[i("icon-button",{attrs:{active:"sqlEditor"===e.panel,tooltip:"Switch panel to SQL editor","tooltip-position":"top-left"},nativeOn:{click:function(t){return e.$emit("switchTo","sqlEditor")}}},[i("sql-editor-icon")],1),i("icon-button",{attrs:{active:"table"===e.panel,tooltip:"Switch panel to result set","tooltip-position":"top-left"},nativeOn:{click:function(t){return e.$emit("switchTo","table")}}},[i("table-icon")],1),i("icon-button",{attrs:{active:"dataView"===e.panel,tooltip:"Switch panel to data view","tooltip-position":"top-left"},nativeOn:{click:function(t){return e.$emit("switchTo","dataView")}}},[i("data-view-icon")],1),e.$slots.default?i("div",{staticClass:"side-tool-bar-divider"}):e._e(),e._t("default")],2)}),fi=[],vi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["icon-btn",{active:e.active},{disabled:e.disabled}],on:{click:e.onClick,mouseenter:function(t){return e.showTooltip(t,e.tooltipPosition)},mouseleave:e.hideTooltip}},[i("div",{staticClass:"icon"},[e._t("default")],2),i("div",{directives:[{name:"show",rawName:"v-show",value:e.loading,expression:"loading"}],staticClass:"icon-in-progress"},[i("loading-indicator")],1),e.tooltip?i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" "+e._s(e.tooltip)+" ")]):e._e()])},Di=[],ji={name:"SideBarButton",props:["active","disabled","tooltip","tooltipPosition","loading"],components:{LoadingIndicator:yt},mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},yi=ji,bi=(i("dd9c"),Object(s["a"])(yi,vi,Di,!1,null,"0c2b486e",null)),Ci=bi.exports,zi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M14.5 2.16512L3.5 2.16999C2.675 2.16999 2 2.84499 2 3.66999V14.3349C2 15.1599 2.675 15.8349 3.5 15.8349L14.5 15.83C15.3327 15.83 16 15.1551 16 14.33V3.66512C16 2.83511 15.33 2.16512 14.5 2.16512ZM14.5014 3.66512L3.49878 3.66999V14.33L14.5014 14.3251V3.66512Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M6.27319 14.7069L6.27319 3.32135L7.77319 3.32135L7.77319 14.7069L6.27319 14.7069Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M10.2639 14.6932L10.2639 3.30772L11.7639 3.30772L11.7639 14.6932L10.2639 14.6932Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.5108 7.48325H2.4895V5.98325H15.5108V7.48325Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.5108 11.6056H2.4895V10.1056H15.5108V11.6056Z",fill:"#A2B1C6"}})])},Ti=[],wi={name:"TableIcon"},xi=wi,Oi=Object(s["a"])(xi,zi,Ti,!1,null,null,null),Ai=Oi.exports,Li=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"19",viewBox:"0 0 18 19",fill:"none"}},[i("g",{attrs:{"clip-path":"url(#clip0)"}},[i("path",{attrs:{d:"M4.5 1.51343H10.5L15 6.01343V8.45284H13.5V6.76343H9.75V3.01343H4.5V8.45284H3V3.01343C3 2.18843 3.675 1.51343 4.5 1.51343Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M4.28369 14.8127C4.28369 14.5872 4.20312 14.4114 4.04199 14.2854C3.88379 14.1594 3.604 14.0291 3.20264 13.8943C2.80127 13.7595 2.47314 13.6292 2.21826 13.5032C1.38916 13.0959 0.974609 12.5364 0.974609 11.8245C0.974609 11.47 1.07715 11.158 1.28223 10.8884C1.49023 10.616 1.7832 10.405 2.16113 10.2556C2.53906 10.1033 2.96387 10.0271 3.43555 10.0271C3.89551 10.0271 4.30713 10.1091 4.67041 10.2732C5.03662 10.4373 5.3208 10.6716 5.52295 10.9763C5.7251 11.2781 5.82617 11.6238 5.82617 12.0134H4.28809C4.28809 11.7527 4.20752 11.5505 4.04639 11.407C3.88818 11.2634 3.67285 11.1917 3.40039 11.1917C3.125 11.1917 2.90674 11.2532 2.74561 11.3762C2.5874 11.4963 2.5083 11.6501 2.5083 11.8376C2.5083 12.0017 2.59619 12.1511 2.77197 12.2859C2.94775 12.4177 3.25684 12.5554 3.69922 12.699C4.1416 12.8396 4.50488 12.9919 4.78906 13.156C5.48047 13.5544 5.82617 14.1038 5.82617 14.804C5.82617 15.3635 5.61523 15.803 5.19336 16.1223C4.77148 16.4417 4.19287 16.6013 3.45752 16.6013C2.93896 16.6013 2.46875 16.509 2.04688 16.3245C1.62793 16.137 1.31152 15.8821 1.09766 15.5598C0.886719 15.2346 0.78125 14.8611 0.78125 14.4392H2.32812C2.32812 14.782 2.41602 15.0354 2.5918 15.1995C2.77051 15.3606 3.05908 15.4412 3.45752 15.4412C3.7124 15.4412 3.91309 15.387 4.05957 15.2786C4.20898 15.1672 4.28369 15.012 4.28369 14.8127ZM12.0444 13.446C12.0444 14.0378 11.9463 14.5549 11.75 14.9973C11.5537 15.4368 11.2827 15.7898 10.937 16.0564L11.9697 16.8738L11.0161 17.6824L9.64062 16.575C9.51172 16.5925 9.38281 16.6013 9.25391 16.6013C8.70898 16.6013 8.22559 16.4753 7.80371 16.2234C7.38184 15.9714 7.05225 15.6111 6.81494 15.1423C6.58057 14.6736 6.45898 14.1345 6.4502 13.5251V13.1868C6.4502 12.5569 6.56445 12.0032 6.79297 11.5256C7.02441 11.0481 7.35254 10.679 7.77734 10.4182C8.20508 10.1575 8.69434 10.0271 9.24512 10.0271C9.78711 10.0271 10.2705 10.156 10.6953 10.4138C11.1201 10.6716 11.4497 11.0393 11.6841 11.5168C11.9214 11.9915 12.0415 12.5364 12.0444 13.1516V13.446ZM10.4756 13.178C10.4756 12.5422 10.3687 12.0603 10.1548 11.7322C9.94385 11.4011 9.64062 11.2356 9.24512 11.2356C8.83789 11.2356 8.53174 11.3982 8.32666 11.7234C8.12158 12.0486 8.01758 12.5247 8.01465 13.1516V13.446C8.01465 14.0759 8.11865 14.5593 8.32666 14.8962C8.53467 15.2302 8.84375 15.3972 9.25391 15.3972C9.64648 15.3972 9.94678 15.2317 10.1548 14.9006C10.3657 14.5696 10.4727 14.0935 10.4756 13.4724V13.178ZM14.3735 15.3269H17.0586V16.5134H12.8311V10.115H14.3735V15.3269Z",fill:"#A2B1C6"}})]),i("defs",[i("clipPath",{attrs:{id:"clip0"}},[i("rect",{attrs:{width:"18",height:"18",fill:"white",transform:"translate(0 0.0134277)"}})])])])},ki=[],Ei={name:"SqlEditorIcon"},Si=Ei,Qi=Object(s["a"])(Si,Li,ki,!1,null,null,null),Ui=Qi.exports,Yi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13.5552 6.91522C13.7584 6.91357 13.9535 6.99442 14.096 7.13926L17.2582 10.3541C17.5486 10.6494 17.5447 11.1242 17.2494 11.4147C16.9541 11.7051 16.4793 11.7012 16.1888 11.4059L13.57 8.74357L9.29577 13.2318C9.01977 13.5216 8.56484 13.5436 8.2621 13.2819L5.35435 10.7677L2.03285 13.7321C1.72382 14.0079 1.24971 13.981 0.973901 13.6719C0.69809 13.3629 0.725022 12.8888 1.03406 12.613L4.8471 9.20986C5.12827 8.95892 5.55198 8.95559 5.83705 9.20208L8.70249 11.6797L13.0182 7.14796C13.1583 7.00084 13.3521 6.91686 13.5552 6.91522Z",fill:"#A2B1C6"}}),i("circle",{attrs:{cx:"5.50049",cy:"6.00339",r:"1.5",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M16.036 1.21788L1.96546 1.213C1.14046 1.213 0.465462 1.888 0.465462 2.713L0.464111 15.2821C0.464111 16.1071 1.13911 16.7821 1.96411 16.7821L16.0347 16.787C16.8674 16.787 17.5347 16.1121 17.5347 15.287L17.536 2.71788C17.536 1.88787 16.866 1.21788 16.036 1.21788ZM16.0374 2.71788L1.96424 2.713L1.96289 15.2773L16.036 15.2821L16.0374 2.71788Z",fill:"#A2B1C6"}})])},Zi=[],Pi={name:"DataViewIcon"},_i=Pi,qi=Object(s["a"])(_i,Yi,Zi,!1,null,null,null),Vi=qi.exports,Ri={name:"SideToolBar",props:["panel"],components:{IconButton:Ci,SqlEditorIcon:Ui,DataViewIcon:Vi,TableIcon:Ai}},Bi=Ri,Gi=(i("f4e5"),Object(s["a"])(Bi,Ni,fi,!1,null,"3b6366bb",null)),Hi=Gi.exports,$i=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"12",height:"13",viewBox:"0 0 12 13",fill:"none"}},[i("path",{attrs:{d:"M11.1624 6.94358L0.770043 12.9436L0.770043 0.943573L11.1624 6.94358Z",fill:"#A2B1C6"}})])},Wi=[],Fi={name:"RunIcon"},Ji=Fi,Xi=Object(s["a"])(Ji,$i,Wi,!1,null,null,null),Ki=Xi.exports,en={name:"SqlEditor",props:["value","isGettingResults"],components:{codemirror:mi["codemirror"],SideToolBar:Hi,IconButton:Ci,RunIcon:Ki},data:function(){return{query:this.value,cmOptions:{tabSize:4,mode:"text/x-mysql",theme:"neo",lineNumbers:!0,line:!0,autoRefresh:!0,extraKeys:{"Ctrl-Space":hi}}}},computed:{runDisabled:function(){return!this.$store.state.db||!this.query||this.isGettingResults}},watch:{query:function(){this.$emit("input",this.query)}},methods:{onChange:wt.debounce(Ii,400),focus:function(){this.$refs.cm.codemirror.focus()}}},tn=en,nn=(i("16a3"),Object(s["a"])(tn,ni,ai,!1,null,"c84dd870",null)),an=nn.exports,rn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"data-view-panel"},[i("div",{staticClass:"data-view-panel-content"},[i(e.mode,{ref:"viewComponent",tag:"component",attrs:{"init-options":e.mode===e.initMode?e.initOptions:void 0,"data-sources":e.dataSource,"import-to-png-enabled":e.importToPngEnabled},on:{"update:importToPngEnabled":function(t){e.importToPngEnabled=t},"update:import-to-png-enabled":function(t){e.importToPngEnabled=t},loadingImageCompleted:function(t){e.loadingImage=!1},update:function(t){return e.$emit("update")}}})],1),i("side-tool-bar",{attrs:{panel:"dataView"},on:{switchTo:function(t){return e.$emit("switchTo",t)}}},[i("icon-button",{attrs:{active:"chart"===e.mode,tooltip:"Switch to chart","tooltip-position":"top-left"},on:{click:function(t){e.mode="chart"}}},[i("chart-icon")],1),i("icon-button",{attrs:{active:"pivot"===e.mode,tooltip:"Switch to pivot","tooltip-position":"top-left"},on:{click:function(t){e.mode="pivot"}}},[i("pivot-icon")],1),i("div",{staticClass:"side-tool-bar-divider"}),i("icon-button",{attrs:{disabled:!e.importToPngEnabled||e.loadingImage,loading:e.loadingImage,tooltip:"Save as PNG image","tooltip-position":"top-left"},on:{click:e.saveAsPng}},[i("png-icon")],1)],1)],1)},sn=[],on=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],ref:"chartContainer",staticClass:"chart-container"},[i("div",{directives:[{name:"show",rawName:"v-show",value:!e.dataSources&&e.visible,expression:"!dataSources && visible"}],staticClass:"warning chart-warning"},[e._v(" There is no data to build a chart. Run your SQL query and make sure the result is not empty. ")]),i("PlotlyEditor",{ref:"plotlyEditor",staticClass:"chart",style:{height:e.dataSources?"100%":"calc(100% - 40px)"},attrs:{data:e.state.data,layout:e.state.layout,frames:e.state.frames,config:{editable:!0,displaylogo:!1,modeBarButtonsToRemove:["toImage"]},dataSources:e.dataSources,dataSourceOptions:e.dataSourceOptions,plotly:e.plotly,useResizeHandler:!0,debug:!0,advancedTraceTypeSelector:!0},on:{onUpdate:e.update,onRender:e.onRender}})],1)},cn=[],ln=i("030a"),un=i.n(ln),dn=(i("0848"),i("b1c6")),Mn=i.n(dn),gn=i("662f"),pn=i.n(gn);function hn(e){return e?Object.keys(e).map((function(e){return{value:e,label:e}})):[]}function In(e,t){var i=JSON.parse(JSON.stringify(e)),n={};for(var a in t)n[a]=[];return pn()(i.data,n),i}var mn={getOptionsFromDataSources:hn,getOptionsForSave:In},Nn={name:"Chart",props:["dataSources","initOptions","importToPngEnabled"],components:{PlotlyEditor:Mn.a},data:function(){return{plotly:un.a,state:this.initOptions||{data:[],layout:{},frames:[]},visible:!0,resizeObserver:null}},computed:{dataSourceOptions:function(){return mn.getOptionsFromDataSources(this.dataSources)}},mounted:function(){this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.$refs.chartContainer)},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.chartContainer)},watch:{dataSources:function(){pn()(this.state.data,this.dataSources)}},methods:{handleResize:function(){var e=this;this.visible=!1,this.$nextTick((function(){e.visible=!0}))},onRender:function(e,t,i){},update:function(e,t,i){this.state={data:e,layout:t,frames:i},this.$emit("update")},getOptionsForSave:function(){return mn.getOptionsForSave(this.state,this.dataSources)},saveAsPng:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return i=e.$refs.plotlyEditor.$el.querySelector(".js-plotly-plot"),t.next=3,un.a.toImage(i,{format:"png",width:null,height:null});case 3:n=t.sent,e.$emit("loadingImageCompleted"),C.downloadFromUrl(n,"chart");case 6:case"end":return t.stop()}}),t)})))()}}},fn=Nn,vn=(i("807c"),Object(s["a"])(fn,on,cn,!1,null,"31be4117",null)),Dn=vn.exports,jn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"pivot-container"},[i("div",{directives:[{name:"show",rawName:"v-show",value:!e.dataSources,expression:"!dataSources"}],staticClass:"warning pivot-warning"},[e._v(" There is no data to build a pivot. Run your SQL query and make sure the result is not empty. ")]),i("pivot-ui",{attrs:{"key-names":e.columns},on:{update:function(t){return e.$emit("update")},loadingCustomChartImageCompleted:function(t){return e.$emit("loadingImageCompleted")}},model:{value:e.pivotOptions,callback:function(t){e.pivotOptions=t},expression:"pivotOptions"}}),i("div",{ref:"pivotOutput",staticClass:"pivot-output"})],1)},yn=[],bn=i("c0e9"),Cn=i.n(bn),zn=i("1157"),Tn=i.n(zn),wn=(i("9751"),i("ccb1"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"pivot-ui"},[i("div",{class:{collapsed:e.collapsed}},[i("div",{staticClass:"row"},[i("label",[e._v("Columns")]),i("multiselect",{staticClass:"sqliteviz-select cols",attrs:{options:e.colsToSelect,disabled:0===e.colsToSelect.length,multiple:!0,hideSelected:!0,"close-on-select":!0,"show-labels":!1,max:e.colsToSelect.length,"open-direction":"bottom",placeholder:""},model:{value:e.cols,callback:function(t){e.cols=t},expression:"cols"}},[i("template",{slot:"maxElements"},[i("span",{staticClass:"no-results"},[e._v("No Results")])]),i("template",{slot:"placeholder"},[e._v("Choose columns")]),i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2),i("pivot-sort-btn",{staticClass:"sort-btn",attrs:{direction:"col"},model:{value:e.colOrder,callback:function(t){e.colOrder=t},expression:"colOrder"}})],1),i("div",{staticClass:"row"},[i("label",[e._v("Rows")]),i("multiselect",{staticClass:"sqliteviz-select rows",attrs:{options:e.rowsToSelect,disabled:0===e.rowsToSelect.length,multiple:!0,hideSelected:!0,"close-on-select":!0,"show-labels":!1,max:e.rowsToSelect.length,"option-height":29,"open-direction":"bottom",placeholder:""},model:{value:e.rows,callback:function(t){e.rows=t},expression:"rows"}},[i("template",{slot:"maxElements"},[i("span",{staticClass:"no-results"},[e._v("No Results")])]),i("template",{slot:"placeholder"},[e._v("Choose rows")]),i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2),i("pivot-sort-btn",{staticClass:"sort-btn",attrs:{direction:"row"},model:{value:e.rowOrder,callback:function(t){e.rowOrder=t},expression:"rowOrder"}})],1),i("div",{staticClass:"row aggregator"},[i("label",[e._v("Aggregator")]),i("multiselect",{staticClass:"sqliteviz-select short aggregator",attrs:{options:e.aggregators,label:"name","track-by":"name","close-on-select":!0,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose a function"},model:{value:e.aggregator,callback:function(t){e.aggregator=t},expression:"aggregator"}},[i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2),i("multiselect",{directives:[{name:"show",rawName:"v-show",value:e.valCount>0,expression:"valCount > 0"}],staticClass:"sqliteviz-select aggr-arg",attrs:{options:e.keyNames,disabled:0===e.keyNames.length,"close-on-select":!0,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose an argument"},model:{value:e.val1,callback:function(t){e.val1=t},expression:"val1"}}),i("multiselect",{directives:[{name:"show",rawName:"v-show",value:e.valCount>1,expression:"valCount > 1"}],staticClass:"sqliteviz-select aggr-arg",attrs:{options:e.keyNames,disabled:0===e.keyNames.length,"close-on-select":!0,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose a second argument"},model:{value:e.val2,callback:function(t){e.val2=t},expression:"val2"}})],1),i("div",{staticClass:"row"},[i("label",[e._v("View")]),i("multiselect",{staticClass:"sqliteviz-select short renderer",attrs:{options:e.renderers,label:"name","track-by":"name","close-on-select":!0,"allow-empty":!1,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose a view"},model:{value:e.renderer,callback:function(t){e.renderer=t},expression:"renderer"}},[i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2)],1)]),i("span",{staticClass:"switcher",on:{click:function(t){e.collapsed=!e.collapsed}}},[e._v(" "+e._s(e.collapsed?"Show pivot settings":"Hide pivot settings")+" ")])])}),xn=[],On=(i("2532"),i("8e5f")),An=i.n(On),Ln=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["pivot-sort-btn",e.direction],on:{click:e.changeSorting}},[e._v(" "+e._s(e.value.includes("key")?"key":"value")+" "),i("sort-icon",{staticClass:"sort-icon",attrs:{horizontal:"col"===e.direction,asc:e.value.includes("a_to_z")}})],1)},kn=[],En=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["sort-icon",{horizontal:e.horizontal},{asc:e.asc}],attrs:{width:"6",height:"12",viewBox:"0 0 6 12",fill:"none"}},[i("path",{attrs:{d:"M2.99932 -3.63032e-05C2.75092 -3.63032e-05 2.54932 0.201563 2.54932 0.449964L2.54932 11.55C2.54932 11.7984 2.75092 12 2.99932 12C3.24772 12 3.44932 11.7984 3.44932 11.55L3.44932 0.449964C3.44932 0.201563 3.24772 -3.63032e-05 2.99932 -3.63032e-05Z",fill:"#506784"}}),i("path",{attrs:{d:"M2.99915 1.80492e-05C2.8839 1.80492e-05 2.76865 0.0438534 2.68109 0.132073L0.581055 2.232C0.405273 2.40789 0.405273 2.69287 0.581055 2.86865C0.756946 3.04443 1.04193 3.04443 1.21771 2.86865L2.99969 1.08667L4.78168 2.86865C4.95746 3.04443 5.24255 3.04443 5.41833 2.86865C5.59412 2.69287 5.59412 2.40789 5.41833 2.232L3.3183 0.132073C3.22953 0.0438534 3.11428 1.80492e-05 2.99915 1.80492e-05V1.80492e-05Z",fill:"#506784"}})])},Sn=[],Qn={name:"SortIcon",props:{horizontal:{type:Boolean,required:!1,default:!1},asc:{type:Boolean,required:!1,default:!0}}},Un=Qn,Yn=(i("4c94"),Object(s["a"])(Un,En,Sn,!1,null,"28a29e7a",null)),Zn=Yn.exports,Pn={name:"PivotSortBtn",props:["direction","value"],components:{SortIcon:Zn},methods:{changeSorting:function(){"key_a_to_z"===this.value?this.$emit("input","value_a_to_z"):"value_a_to_z"===this.value?this.$emit("input","value_z_to_a"):this.$emit("input","key_a_to_z")}}},_n=Pn,qn=(i("0f34"),Object(s["a"])(_n,Ln,kn,!1,null,"e3801f08",null)),Vn=qn.exports,Rn=(i("8e51"),i("3c3e"),["Count","Count as Fraction of Total","Count as Fraction of Rows","Count as Fraction of Columns"]),Bn=["Sum over Sum","80% Upper Bound","80% Lower Bound"];function Gn(e){var t=e.getRowKeys(),i=e.getColKeys(),n={"Column keys":i.map((function(e){return e.join("-")})),"Row keys":t.map((function(e){return e.join("-")}))},a={},r={},s=e.rowAttrs.join("-"),o=e.colAttrs.join("-");return i.forEach((function(i){var n=o+":"+i.join("-");r[n]=[],t.forEach((function(t){var o=e.getAggregator(t,i).value();r[n].push(o);var c=s+":"+t.join("-");a[c]||(a[c]=[]),a[c].push(o)}))})),Object.assign(n,r,a)}function Hn(e,t){return t.customChartComponent.dataSources=Gn(e),t.customChartComponent.$mount(),Tn()(t.customChartComponent.$el)}Tn.a.extend(Tn.a.pivotUtilities.renderers,Tn.a.pivotUtilities.export_renderers,Tn.a.pivotUtilities.plotly_renderers,{"Custom chart":Hn});var $n=Object.keys(Tn.a.pivotUtilities.renderers).map((function(e){return{name:e,fun:Tn.a.pivotUtilities.renderers[e]}})),Wn=Object.keys(Tn.a.pivotUtilities.aggregators).map((function(e){return{name:e,fun:Tn.a.pivotUtilities.aggregators[e]}})),Fn=n["default"].extend(Dn),Jn={name:"pivotUi",props:["keyNames","value"],components:{Multiselect:An.a,PivotSortBtn:Vn},data:function(){var e=this.value&&this.value.aggregatorName||"Count",t=this.value&&this.value.rendererName||"Table";return{collapsed:!1,renderer:{name:t,fun:Tn.a.pivotUtilities.renderers[t]},aggregator:{name:e,fun:Tn.a.pivotUtilities.aggregators[e]},rows:this.value&&this.value.rows||[],cols:this.value&&this.value.cols||[],val1:this.value&&this.value.vals&&this.value.vals[0]||"",val2:this.value&&this.value.vals&&this.value.vals[1]||"",colOrder:this.value&&this.value.colOrder||"key_a_to_z",rowOrder:this.value&&this.value.rowOrder||"key_a_to_z",customChartComponent:this.value&&this.value.rendererOptions&&this.value.rendererOptions.customChartComponent||new Fn}},computed:{valCount:function(){return Rn.includes(this.aggregator.name)?0:Bn.includes(this.aggregator.name)?2:1},renderers:function(){return $n},aggregators:function(){return Wn},rowsToSelect:function(){var e=this;return this.keyNames.filter((function(t){return!e.cols.includes(t)}))},colsToSelect:function(){var e=this;return this.keyNames.filter((function(t){return!e.rows.includes(t)}))}},watch:{renderer:function(){this.returnValue()},aggregator:function(){this.returnValue()},rows:function(){this.returnValue()},cols:function(){this.returnValue()},val1:function(){this.returnValue()},val2:function(){this.returnValue()},colOrder:function(){this.returnValue()},rowOrder:function(){this.returnValue()}},created:function(){var e=this;this.customChartComponent.$on("update",(function(){e.$emit("update")})),this.customChartComponent.$on("loadingImageCompleted",(function(t){e.$emit("loadingCustomChartImageCompleted")}))},methods:{returnValue:function(){for(var e=[],t=1;t<=this.valCount;t++)e.push(this["val".concat(t)]);this.$emit("update"),this.$emit("input",{rows:this.rows,cols:this.cols,colOrder:this.colOrder,rowOrder:this.rowOrder,aggregator:this.aggregator.fun(e),aggregatorName:this.aggregator.name,renderer:this.renderer.fun,rendererName:this.renderer.name,rendererOptions:"Custom chart"!==this.renderer.name?void 0:{customChartComponent:this.customChartComponent},vals:e})}}},Xn=Jn,Kn=(i("81e6"),Object(s["a"])(Xn,wn,xn,!1,null,"6d818ae0",null)),ea=Kn.exports,ta=n["default"].extend(Dn),ia={name:"pivot",props:["dataSources","initOptions","importToPngEnabled"],components:{PivotUi:ea},data:function(){return{resizeObserver:null,pivotOptions:this.initOptions?{rows:this.initOptions.rows,cols:this.initOptions.cols,colOrder:this.initOptions.colOrder,rowOrder:this.initOptions.rowOrder,aggregatorName:this.initOptions.aggregatorName,aggregator:Tn.a.pivotUtilities.aggregators[this.initOptions.aggregatorName](this.initOptions.vals),vals:this.initOptions.vals,rendererName:this.initOptions.rendererName,renderer:Tn.a.pivotUtilities.renderers[this.initOptions.rendererName],rendererOptions:this.initOptions.rendererOptions?{customChartComponent:new ta({propsData:{initOptions:this.initOptions.rendererOptions.customChartOptions}})}:void 0}:{rows:[],cols:[],colOrder:"key_a_to_z",rowOrder:"key_a_to_z",aggregatorName:"Count",aggregator:Tn.a.pivotUtilities.aggregators.Count(),vals:[],rendererName:"Table",renderer:Tn.a.pivotUtilities.renderers.Table,rendererOptions:void 0}}},computed:{columns:function(){return Object.keys(this.dataSources||{})}},watch:{dataSources:function(){this.show()},"pivotOptions.rendererName":{immediate:!0,handler:function(){this.$emit("update:importToPngEnabled","TSV Export"!==this.pivotOptions.rendererName)}},pivotOptions:function(){this.show()}},mounted:function(){this.show(),this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.$refs.pivotOutput)},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.pivotOutput)},methods:{handleResize:function(){this.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers&&window.dispatchEvent(new Event("resize"))},show:function(){var e=Object(I["a"])({},this.pivotOptions);this.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers&&(e.rendererOptions={plotly:{autosize:!0,width:null,height:null},plotlyConfig:{displaylogo:!1,responsive:!0,modeBarButtonsToRemove:["toImage"]}}),Tn()(this.$refs.pivotOutput).pivot(function(e){for(var t=this,i=this.dataSources?this.dataSources[this.columns[0]].length:0,n=function(i){var n={};t.columns.forEach((function(e){n[e]=t.dataSources[e][i-1]})),e(n)},a=1;a<=i;a++)n(a)}.bind(this),e),this.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers&&window.dispatchEvent(new Event("resize"))},getOptionsForSave:function(){var e=Object(I["a"])({},this.pivotOptions);if(e.rendererOptions){var t=this.pivotOptions.rendererOptions.customChartComponent;e.rendererOptions={customChartOptions:t.getOptionsForSave()}}return e},saveAsPng:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n,a,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if("Custom chart"!==e.pivotOptions.rendererName){t.next=4;break}e.pivotOptions.rendererOptions.customChartComponent.saveAsPng(),t.next=19;break;case 4:if(!(e.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers)){t.next=13;break}return i=e.$refs.pivotOutput.querySelector(".js-plotly-plot"),t.next=8,un.a.toImage(i,{format:"png",width:null,height:null});case 8:n=t.sent,e.$emit("loadingImageCompleted"),C.downloadFromUrl(n,"pivot"),t.next=19;break;case 13:return a=e.$refs.pivotOutput.querySelector(".pvtTable"),t.next=16,Cn()(a);case 16:r=t.sent,e.$emit("loadingImageCompleted"),C.downloadFromUrl(r.toDataURL("image/png"),"pivot","image/png");case 19:case"end":return t.stop()}}),t)})))()}}},na=ia,aa=(i("d7ec"),Object(s["a"])(na,jn,yn,!1,null,"ca17e020",null)),ra=aa.exports,sa=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M8.41943 16V10H10.4194V16H8.41943Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M2.41943 16L2.41943 10H4.41943V16H2.41943Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.4194 16V7H13.4194V16H11.4194Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M14.4194 16V8H16.4194V16H14.4194Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7.41943 12V16H5.41943V12H7.41943Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12.4332 1.80676L16.6265 6.00001L15.9194 6.70712L12.4055 3.19326L5.93169 9.1691L1.71436 5.55424L2.36515 4.79499L5.90707 7.83092L12.4332 1.80676Z",fill:"#A2B1C6"}})])},oa=[],ca={name:"ChartIcon"},la=ca,ua=Object(s["a"])(la,sa,oa,!1,null,null,null),da=ua.exports,Ma=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.7661 5.13901L18.3407 9.43008H16.5161V12.8467C16.5161 13.7957 16.2783 14.6451 15.6714 15.2521C15.0645 15.859 14.215 16.0967 13.2661 16.0967H9.84942V17.9214L5.55835 15.3467L9.84942 12.7721V14.5967H13.2661C13.9838 14.5967 14.3844 14.4178 14.6108 14.1914C14.8372 13.965 15.0161 13.5645 15.0161 12.8467V9.43008H13.1914L15.7661 5.13901Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M6.41943 0H18.4194V4H6.41943V0Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M0.419434 6H4.41943V18H0.419434V6Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M0.419434 0H4.41943V4H0.419434V0Z",fill:"#A2B1C6"}})])},ga=[],pa={name:"PivotIcon"},ha=pa,Ia=Object(s["a"])(ha,Ma,ga,!1,null,null,null),ma=Ia.exports,Na=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{d:"M9 5.51953C6.57686 5.51953 4.60547 7.49092 4.60547 9.91406C4.60547 12.3372 6.57686 14.3086 9 14.3086C11.4231 14.3086 13.3945 12.3372 13.3945 9.91406C13.3945 7.49092 11.4231 5.51953 9 5.51953ZM9 12.9023C7.35226 12.9023 6.01172 11.5618 6.01172 9.91406C6.01172 8.26632 7.35226 6.92578 9 6.92578C10.6477 6.92578 11.9883 8.26632 11.9883 9.91406C11.9883 11.5618 10.6477 12.9023 9 12.9023Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M15.8906 3.41016H13.304C13.2221 3.41016 13.1483 3.36547 13.1104 3.29319L12.3948 1.78945C12.3928 1.78534 12.3908 1.78126 12.3887 1.77718C12.1117 1.22312 11.5548 0.878906 10.9353 0.878906H7.11478C6.49529 0.878906 5.93835 1.22312 5.66135 1.77722C5.65928 1.7813 5.65731 1.78538 5.65534 1.78949L4.9397 3.2933C4.90173 3.36547 4.82797 3.41016 4.74609 3.41016H2.10938C0.946266 3.41016 0 4.35642 0 5.51953V15.0117C0 16.1748 0.946266 17.1211 2.10938 17.1211H15.8906C17.0537 17.1211 18 16.1748 18 15.0117V5.51953C18 4.35642 17.0537 3.41016 15.8906 3.41016ZM16.5938 15.0117C16.5938 15.3994 16.2783 15.7148 15.8906 15.7148H2.10938C1.72167 15.7148 1.40625 15.3994 1.40625 15.0117V5.51953C1.40625 5.13183 1.72167 4.81641 2.10938 4.81641H4.74609C5.36555 4.81641 5.92249 4.47223 6.19952 3.91816C6.2016 3.91409 6.20357 3.90997 6.20557 3.90586L6.92121 2.40205C6.95914 2.32984 7.0329 2.28516 7.11478 2.28516H10.9353C11.0172 2.28516 11.091 2.32984 11.1289 2.40202L11.8445 3.90582C11.8465 3.90994 11.8485 3.91405 11.8506 3.91813C12.1276 4.47219 12.6846 4.81637 13.304 4.81637H15.8906C16.2783 4.81637 16.5938 5.13179 16.5938 5.5195V15.0117Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M15.1875 6.22266H13.7812V7.62891H15.1875V6.22266Z",fill:"#A2B1C6"}})])},fa=[],va={name:"PngIcon"},Da=va,ja=Object(s["a"])(Da,Na,fa,!1,null,null,null),ya=ja.exports,ba={name:"DataView",props:["dataSource","initOptions","initMode"],components:{Chart:Dn,Pivot:ra,SideToolBar:Hi,IconButton:Ci,ChartIcon:da,PivotIcon:ma,PngIcon:ya},data:function(){return{mode:this.initMode||"chart",importToPngEnabled:!0,loadingImage:!1}},watch:{mode:function(){this.$emit("update"),this.importToPngEnabled=!0}},methods:{saveAsPng:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:e.loadingImage=!0,setTimeout((function(){e.$refs.viewComponent.saveAsPng()}),0);case 2:case"end":return t.stop()}}),t)})))()},getOptionsForSave:function(){return this.$refs.viewComponent.getOptionsForSave()}}},Ca=ba,za=(i("be12"),Object(s["a"])(Ca,rn,sn,!1,null,"513fdbc5",null)),Ta=za.exports,wa=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{ref:"runResultPanel",staticClass:"run-result-panel"},[i("div",{staticClass:"run-result-panel-content"},[i("div",{directives:[{name:"show",rawName:"v-show",value:null===e.result&&!e.isGettingResults&&!e.error,expression:"result === null && !isGettingResults && !error"}],staticClass:"table-preview result-before"},[e._v(" Run your query and get results here ")]),e.isGettingResults?i("div",{staticClass:"table-preview result-in-progress"},[i("loading-indicator",{attrs:{size:30}}),e._v(" Fetching results... ")],1):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:void 0===e.result&&!e.isGettingResults&&!e.error,expression:"result === undefined && !isGettingResults && !error"}],staticClass:"table-preview result-empty"},[e._v(" No rows retrieved according to your query ")]),e.error?i("logs",{attrs:{messages:[e.error]}}):e._e(),e.result?i("sql-table",{staticClass:"straight",attrs:{"data-set":e.result,time:e.time,pageSize:e.pageSize}}):e._e()],1),i("side-tool-bar",{attrs:{panel:"table"},on:{switchTo:function(t){return e.$emit("switchTo",t)}}})],1)},xa=[],Oa={name:"RunResult",props:["result","isGettingResults","error","time"],data:function(){return{resizeObserver:null,pageSize:20}},components:{SqlTable:ht,LoadingIndicator:yt,Logs:Tt,SideToolBar:Hi},mounted:function(){this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.$refs.runResultPanel),this.calculatePageSize()},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.runResultPanel)},methods:{handleResize:function(){this.calculatePageSize()},calculatePageSize:function(){var e=this.$refs.runResultPanel,t=e.offsetHeight-27-5-35;this.pageSize=Math.max(Math.floor(t/35),20)}}},Aa=Oa,La=(i("cd48"),Object(s["a"])(Aa,wa,xa,!1,null,"73e5054b",null)),ka=La.exports,Ea=i("b0cc"),Sa={name:"Tab",props:["id","initName","initQuery","initViewOptions","tabIndex","isPredefined","initViewType"],components:{SqlEditor:an,DataView:Ta,RunResult:ka,Splitpanes:j,Teleport:Ea["a"]},data:function(){return{query:this.initQuery,result:null,isGettingResults:!1,error:null,time:0,layout:{sqlEditor:"above",table:"bottom",dataView:"hidden"}}},computed:{isActive:function(){return this.id===this.$store.state.currentTabId}},watch:{isActive:{immediate:!0,handler:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(!e.isActive){t.next=5;break}return e.$store.commit("setCurrentTab",e),t.next=4,e.$nextTick();case 4:e.$refs.sqlEditor.focus();case 5:case"end":return t.stop()}}),t)})))()}},query:function(){this.$store.commit("updateTab",{index:this.tabIndex,isSaved:!1})}},methods:{onSwitchView:function(e,t){var i=this.layout[e];this.layout[e]=this.layout[t],this.layout[t]=i},onDataViewUpdate:function(){this.$store.commit("updateTab",{index:this.tabIndex,isSaved:!1})},execute:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.isGettingResults=!0,e.result=null,e.error=null,i=e.$store.state,t.prev=4,n=new Date,t.next=8,i.db.execute(e.query+";");case 8:e.result=t.sent,e.time=wt.getPeriod(n,new Date),t.next=15;break;case 12:t.prev=12,t.t0=t["catch"](4),e.error={type:"error",message:t.t0};case 15:i.db.refreshSchema(),e.isGettingResults=!1;case 17:case"end":return t.stop()}}),t,null,[[4,12]])})))()}}},Qa=Sa,Ua=(i("2a6d"),Object(s["a"])(Qa,ti,ii,!1,null,"24244834",null)),Ya=Ua.exports,Za={components:{Tab:Ya,CloseIcon:Oe},data:function(){return{closingTabIndex:null}},computed:{tabs:function(){return this.$store.state.tabs},selectedIndex:function(){return this.$store.state.currentTabId}},created:function(){window.addEventListener("beforeunload",this.leavingSqliteviz)},methods:{leavingSqliteviz:function(e){this.tabs.some((function(e){return!e.isSaved}))&&(e.preventDefault(),e.returnValue="")},selectTab:function(e){this.$store.commit("setCurrentTabId",e)},beforeCloseTab:function(e){this.closingTabIndex=e,this.tabs[e].isSaved?this.closeTab(e):this.$modal.show("close-warn")},closeTab:function(e){this.$modal.hide("close-warn"),this.closingTabIndex=null,this.$store.commit("deleteTab",e)},saveAndClose:function(e){var t=this;this.$root.$on("inquirySaved",(function(){t.closeTab(e),t.$root.$off("inquirySaved")})),this.selectTab(this.tabs[e].id),this.$modal.hide("close-warn"),this.$nextTick((function(){t.$root.$emit("saveInquiry")}))}}},Pa=Za,_a=(i("64b6"),Object(s["a"])(Pa,Kt,ei,!1,null,null,null)),qa=_a.exports,Va={name:"Workspace",components:{Schema:Xt,Splitpanes:j,Tabs:qa},beforeCreate:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(i=e.$store.state.db.schema,i&&0!==i.length){t.next=7;break}return n=["/*"," * Your database is empty. In order to start building charts"," * you should create a table and insert data into it."," */","CREATE TABLE house","("," name TEXT,"," points INTEGER",");","INSERT INTO house VALUES","('Gryffindor', 100),","('Hufflepuff', 90),","('Ravenclaw', 95),","('Slytherin', 80);"].join("\n"),t.next=5,e.$store.dispatch("addTab",{query:n});case 5:a=t.sent,e.$store.commit("setCurrentTabId",a);case 7:case"end":return t.stop()}}),t)})))()}},Ra=Va,Ba=(i("2a3d"),Object(s["a"])(Ra,M,g,!1,null,"de063d86",null)),Ga=Ba.exports,Ha=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[0===e.showedInquiries.length?n("div",{attrs:{id:"start-guide"}},[e._v(" You don't have saved inquiries so far. "),n("span",{staticClass:"link",on:{click:function(t){return e.$root.$emit("createNewInquiry")}}},[e._v("Create")]),e._v(" the one from scratch or "),n("span",{staticClass:"link",on:{click:e.importInquiries}},[e._v("import")]),e._v(" from a file. ")]):e._e(),n("div",{directives:[{name:"show",rawName:"v-show",value:e.showedInquiries.length>0,expression:"showedInquiries.length > 0"}],ref:"my-inquiries-content",attrs:{id:"my-inquiries-content"}},[n("div",{attrs:{id:"my-inquiries-toolbar"}},[n("div",{attrs:{id:"toolbar-buttons"}},[n("button",{staticClass:"toolbar",attrs:{id:"toolbar-btns-import"},on:{click:e.importInquiries}},[e._v(" Import ")]),n("button",{directives:[{name:"show",rawName:"v-show",value:e.selectedInquiriesCount>0,expression:"selectedInquiriesCount > 0"}],staticClass:"toolbar",attrs:{id:"toolbar-btns-export"},on:{click:function(t){return e.exportSelectedInquiries()}}},[e._v(" Export ")]),n("button",{directives:[{name:"show",rawName:"v-show",value:e.selectedNotPredefinedCount>0,expression:"selectedNotPredefinedCount > 0"}],staticClass:"toolbar",attrs:{id:"toolbar-btns-delete"},on:{click:function(t){return e.showDeleteDialog(e.selectedInquiriesIds)}}},[e._v(" Delete ")])]),n("div",{attrs:{id:"toolbar-search"}},[n("text-field",{attrs:{placeholder:"Search inquiry by name",width:"300px"},model:{value:e.filter,callback:function(t){e.filter=t},expression:"filter"}})],1)]),n("div",{staticClass:"rounded-bg"},[n("div",{staticClass:"header-container"},[n("div",[n("div",{ref:"name-th",staticClass:"fixed-header"},[n("check-box",{ref:"mainCheckBox",attrs:{theme:"light"},on:{click:e.toggleSelectAll}}),n("div",{staticClass:"name-th"},[e._v("Name")])],1),n("div",{staticClass:"fixed-header"},[e._v(" Created at ")])])]),n("div",{staticClass:"table-container",style:{"max-height":e.maxTableHeight+"px"}},[n("table",{ref:"table",staticClass:"sqliteviz-table"},[n("tbody",e._l(e.showedInquiries,(function(t,i){return n("tr",{key:t.id,on:{click:function(t){return e.openInquiry(i)}}},[n("td",{ref:"name-td",refInFor:!0},[n("div",{staticClass:"cell-data"},[n("check-box",{ref:"rowCheckBox",refInFor:!0,attrs:{init:e.selectAll||e.selectedInquiriesIds.has(t.id)},on:{click:function(i){return e.toggleRow(i,t.id)}}}),n("div",{staticClass:"name"},[e._v(e._s(t.name))]),t.isPredefined?n("div",{staticClass:"badge",on:{mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[e._v(" Predefined "),n("span",{ref:"tooltip",refInFor:!0,staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Predefined inquiries come from the server. These inquiries can’t be deleted or renamed. ")])]):e._e()],1)]),n("td",[n("div",{staticClass:"second-column"},[n("div",{staticClass:"date-container"},[e._v(e._s(e._f("date")(t.createdAt)))]),n("div",{staticClass:"icons-container"},[t.isPredefined?e._e():n("rename-icon",{on:{click:function(i){return e.showRenameDialog(t.id)}}}),n("copy-icon",{on:{click:function(t){return e.duplicateInquiry(i)}}}),n("export-icon",{attrs:{tooltip:"Export inquiry to file","tooltip-position":"top-left"},on:{click:function(i){return e.exportToFile([t],t.name+".json")}}}),t.isPredefined?e._e():n("delete-icon",{on:{click:function(i){e.showDeleteDialog((new Set).add(t.id))}}})],1)])])])})),0)])])])]),n("modal",{attrs:{name:"rename",classes:"dialog",height:"auto"}},[n("div",{staticClass:"dialog-header"},[e._v(" Rename inquiry "),n("close-icon",{on:{click:function(t){return e.$modal.hide("rename")}}})],1),n("div",{staticClass:"dialog-body"},[n("text-field",{attrs:{label:"New inquiry name","error-msg":e.errorMsg,width:"100%"},model:{value:e.newName,callback:function(t){e.newName=t},expression:"newName"}})],1),n("div",{staticClass:"dialog-buttons-container"},[n("button",{staticClass:"secondary",on:{click:function(t){return e.$modal.hide("rename")}}},[e._v("Cancel")]),n("button",{staticClass:"primary",on:{click:e.renameInquiry}},[e._v("Rename")])])]),n("modal",{attrs:{name:"delete",classes:"dialog",height:"auto"}},[n("div",{staticClass:"dialog-header"},[e._v(" Delete "+e._s(e.deleteGroup?"inquiries":"inquiry")+" "),n("close-icon",{on:{click:function(t){return e.$modal.hide("delete")}}})],1),n("div",{staticClass:"dialog-body"},[e._v(" "+e._s(e.deleteDialogMsg)+" "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.selectedInquiriesCount>e.selectedNotPredefinedCount,expression:"selectedInquiriesCount > selectedNotPredefinedCount"}],attrs:{id:"note"}},[n("img",{attrs:{src:i("db39")}}),e._v(" Note: Predefined inquiries you've selected won't be deleted ")])]),n("div",{staticClass:"dialog-buttons-container"},[n("button",{staticClass:"secondary",on:{click:function(t){return e.$modal.hide("delete")}}},[e._v("Cancel")]),n("button",{staticClass:"primary",on:{click:e.deleteInquiry}},[e._v("Delete")])])])],1)},$a=[],Wa=(i("6062"),i("c740"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M10.545 6.75L11.25 7.455L4.44 14.25H3.75V13.56L10.545 6.75ZM13.245 2.25C13.0575 2.25 12.8625 2.325 12.72 2.4675L11.3475 3.84L14.16 6.6525L15.5325 5.28C15.825 4.9875 15.825 4.5 15.5325 4.2225L13.7775 2.4675C13.6275 2.3175 13.44 2.25 13.245 2.25ZM10.545 4.6425L2.25 12.9375V15.75H5.0625L13.3575 7.455L10.545 4.6425Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Rename inquiry ")])])}),Fa=[],Ja={name:"RenameIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},Xa=Ja,Ka=(i("b5fd"),Object(s["a"])(Xa,Wa,Fa,!1,null,"075cb800",null)),er=Ka.exports,tr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M14.25 15.75H6V5.25H14.25V15.75ZM14.25 3.75H6C5.60218 3.75 5.22064 3.90804 4.93934 4.18934C4.65804 4.47064 4.5 4.85218 4.5 5.25V15.75C4.5 16.1478 4.65804 16.5294 4.93934 16.8107C5.22064 17.092 5.60218 17.25 6 17.25H14.25C14.6478 17.25 15.0294 17.092 15.3107 16.8107C15.592 16.5294 15.75 16.1478 15.75 15.75V5.25C15.75 4.85218 15.592 4.47064 15.3107 4.18934C15.0294 3.90804 14.6478 3.75 14.25 3.75ZM12 0.75H3C2.60218 0.75 2.22064 0.908035 1.93934 1.18934C1.65804 1.47064 1.5 1.85218 1.5 2.25V12.75H3V2.25H12V0.75Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Duplicate inquiry ")])])},ir=[],nr={name:"CopyIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},ar=nr,rr=(i("cba9"),Object(s["a"])(ar,tr,ir,!1,null,"3a61cb73",null)),sr=rr.exports,or=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:function(t){return e.showTooltip(t,"top-left")},mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M6.75 2.25V3H3V4.5H3.75V14.25C3.75 14.6478 3.90804 15.0294 4.18934 15.3107C4.47064 15.592 4.85218 15.75 5.25 15.75H12.75C13.1478 15.75 13.5294 15.592 13.8107 15.3107C14.092 15.0294 14.25 14.6478 14.25 14.25V4.5H15V3H11.25V2.25H6.75ZM5.25 4.5H12.75V14.25H5.25V4.5ZM6.75 6V12.75H8.25V6H6.75ZM9.75 6V12.75H11.25V6H9.75Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Delete inquiry ")])])},cr=[],lr={name:"DeleteIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},ur=lr,dr=(i("7e99"),Object(s["a"])(ur,or,cr,!1,null,"581e8819",null)),Mr=dr.exports,gr={_migrate:function(e,t){if(1===e)return t.forEach((function(e){e.viewType="chart",e.viewOptions=e.chart,delete e.chart})),t}},pr=gr._migrate,hr={version:2,getStoredInquiries:function(){var e=JSON.parse(localStorage.getItem("myInquiries"));if(!e){var t=localStorage.getItem("myQueries");return t?(e=pr(1,JSON.parse(t)),this.updateStorage(e),e):[]}return e&&e.inquiries||[]},duplicateInquiry:function(e){var t=JSON.parse(JSON.stringify(e));return t.name=t.name+" Copy",t.id=Object(ui["a"])(),t.createdAt=new Date,delete t.isPredefined,t},isTabNeedName:function(e){var t=!e.initName;return e.isPredefined||t},save:function(e,t){var i={id:e.isPredefined?Object(ui["a"])():e.id,query:e.query,viewType:e.$refs.dataView.mode,viewOptions:e.$refs.dataView.getOptionsForSave(),name:t||e.initName},n=this.getStoredInquiries();if(t)i.createdAt=new Date;else{var a=n.findIndex((function(t){return t.id===e.id}));i.createdAt=n[a].createdAt}return t?n.push(i):n[a]=i,this.updateStorage(n),i},updateStorage:function(e){localStorage.setItem("myInquiries",JSON.stringify({version:this.version,inquiries:e}))},serialiseInquiries:function(e){var t=JSON.parse(JSON.stringify(e));return t.forEach((function(e){return delete e.isPredefined})),JSON.stringify({version:this.version,inquiries:t},null,4)},deserialiseInquiries:function(e){var t=this,i=JSON.parse(e),n=[];return i.version?n=i.inquiries||[]:(n=Array.isArray(i)?i:[i],n=pr(1,n)),n.forEach((function(e){var i=t.getStoredInquiries().map((function(e){return e.id}));i.includes(e.id)&&(e.id=Object(ui["a"])())})),n},importInquiries:function(){var e=this;return C.importFile().then((function(t){return e.deserialiseInquiries(t)}))},readPredefinedInquiries:function(){return Object(u["a"])(regeneratorRuntime.mark((function e(){var t,i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,C.readFile("./inquiries.json");case 2:return t=e.sent,e.next=5,t.json();case 5:if(i=e.sent,i.version){e.next=10;break}return e.abrupt("return",i.length>0?pr(1,i):[]);case 10:return e.abrupt("return",i.inquiries);case 11:case"end":return e.stop()}}),e)})))()}},Ir={name:"Inquiries",components:{RenameIcon:er,CopyIcon:sr,ExportIcon:qt,DeleteIcon:Mr,CloseIcon:Oe,TextField:F,CheckBox:tt},mixins:[q],data:function(){return{inquiries:[],filter:null,newName:null,processedInquiryId:null,errorMsg:null,selectedInquiriesIds:new Set,selectedInquiriesCount:0,selectedNotPredefinedCount:0,selectAll:!1,deleteGroup:!1,resizeObserver:null,maxTableHeight:0}},computed:{predefinedInquiries:function(){return this.$store.state.predefinedInquiries.map((function(e){return e.isPredefined=!0,e}))},predefinedInquiriesIds:function(){return new Set(this.predefinedInquiries.map((function(e){return e.id})))},showedInquiries:function(){var e=this,t=this.allInquiries;return this.filter&&(t=t.filter((function(t){return t.name.toUpperCase().indexOf(e.filter.toUpperCase())>=0}))),t},allInquiries:function(){return this.predefinedInquiries.concat(this.inquiries)},processedInquiryIndex:function(){var e=this;return this.inquiries.findIndex((function(t){return t.id===e.processedInquiryId}))},deleteDialogMsg:function(){if(!this.deleteGroup&&(null===this.processedInquiryIndex||this.processedInquiryIndex<0||this.processedInquiryIndex>this.inquiries.length))return"";var e=this.deleteGroup?"".concat(this.selectedNotPredefinedCount," ").concat(this.selectedNotPredefinedCount>1?"inquiries":"inquiry"):'"'.concat(this.inquiries[this.processedInquiryIndex].name,'"');return"Are you sure you want to delete ".concat(e,"?")}},created:function(){var e=this;hr.readPredefinedInquiries().then((function(t){e.$store.commit("updatePredefinedInquiries",t)})).catch(console.error).finally((function(){e.inquiries=hr.getStoredInquiries()}))},mounted:function(){this.resizeObserver=new ResizeObserver(this.calcMaxTableHeight),this.resizeObserver.observe(this.$refs["my-inquiries-content"]),this.tableResizeObserver=new ResizeObserver(this.calcNameWidth),this.tableResizeObserver.observe(this.$refs.table),this.calcNameWidth(),this.calcMaxTableHeight()},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs["my-inquiries-content"]),this.tableResizeObserver.unobserve(this.$refs.table)},filters:{date:function(e){if(!e)return"";var t={year:"numeric",month:"long",day:"numeric"},i={hour12:!1,hour:"2-digit",minute:"2-digit"};return new Date(e).toLocaleDateString("en-GB",t)+" "+new Date(e).toLocaleTimeString("en-GB",i)}},methods:{calcNameWidth:function(){var e=this.$refs["name-td"]?this.$refs["name-td"][0].getBoundingClientRect().width:0;this.$refs["name-th"].style="width: ".concat(e,"px")},calcMaxTableHeight:function(){var e=this.$refs["my-inquiries-content"].offsetHeight-200;this.maxTableHeight=e-e%40+1},openInquiry:function(e){var t=this,i=this.showedInquiries[e];this.$store.dispatch("addTab",i).then((function(e){t.$store.commit("setCurrentTabId",e),t.$router.push("/workspace")}))},showRenameDialog:function(e){this.errorMsg=null,this.processedInquiryId=e,this.newName=this.inquiries[this.processedInquiryIndex].name,this.$modal.show("rename")},renameInquiry:function(){if(this.newName){var e=this.inquiries[this.processedInquiryIndex];e.name=this.newName,this.$set(this.inquiries,this.processedInquiryIndex,e),hr.updateStorage(this.inquiries);var t=this.findTabIndex(e.id);t>=0&&this.$store.commit("updateTab",{index:t,name:this.newName,id:e.id}),this.$modal.hide("rename")}else this.errorMsg="Inquiry name can't be empty"},duplicateInquiry:function(e){var t=hr.duplicateInquiry(this.showedInquiries[e]);this.selectAll&&(this.selectedInquiriesIds.add(t.id),this.selectedInquiriesCount=this.selectedInquiriesIds.size),this.inquiries.push(t),hr.updateStorage(this.inquiries)},showDeleteDialog:function(e){this.deleteGroup=e.size>1,this.deleteGroup||(this.processedInquiryId=e.values().next().value),this.$modal.show("delete")},deleteInquiry:function(){var e=this;if(this.$modal.hide("delete"),this.deleteGroup){this.inquiries=this.selectAll?[]:this.inquiries.filter((function(t){return!e.selectedInquiriesIds.has(t.id)}));for(var t=this.$store.state.tabs,i=t.length-1;i>=0;i--)this.selectedInquiriesIds.has(t[i].id)&&this.$store.commit("deleteTab",i);this.selectedInquiriesIds.clear()}else{this.inquiries.splice(this.processedInquiryIndex,1);var n=this.findTabIndex(this.processedInquiryId);n>=0&&this.$store.commit("deleteTab",n),this.selectedInquiriesIds.has(this.processedInquiryId)&&this.selectedInquiriesIds.delete(this.processedInquiryId)}this.selectedInquiriesCount=this.selectedInquiriesIds.size,hr.updateStorage(this.inquiries)},findTabIndex:function(e){return this.$store.state.tabs.findIndex((function(t){return t.id===e}))},exportToFile:function(e,t){var i=hr.serialiseInquiries(e);C.exportToFile(i,t)},exportSelectedInquiries:function(){var e=this,t=this.selectAll?this.allInquiries:this.allInquiries.filter((function(t){return e.selectedInquiriesIds.has(t.id)}));this.exportToFile(t,"My sqliteviz inquiries.json")},importInquiries:function(){var e=this;hr.importInquiries().then((function(t){e.selectAll&&(t.forEach((function(t){e.selectedInquiriesIds.add(t.id)})),e.selectedInquiriesCount=e.selectedInquiriesIds.size),e.inquiries=e.inquiries.concat(t),hr.updateStorage(e.inquiries)}))},toggleSelectAll:function(e){this.selectAll=e,this.$refs.rowCheckBox.forEach((function(t){t.checked=e})),this.selectedInquiriesIds=e?new Set(this.allInquiries.map((function(e){return e.id}))):new Set,this.selectedInquiriesCount=this.selectedInquiriesIds.size,this.selectedNotPredefinedCount=e?this.inquiries.length:0},toggleRow:function(e,t){var i=this.predefinedInquiriesIds.has(t);e?(this.selectedInquiriesIds.add(t),i||(this.selectedNotPredefinedCount+=1)):(this.selectedInquiriesIds.size===this.allInquiries.length&&(this.$refs.mainCheckBox.checked=!1,this.selectAll=!1),this.selectedInquiriesIds.delete(t),i||(this.selectedNotPredefinedCount-=1)),this.selectedInquiriesCount=this.selectedInquiriesIds.size}}},mr=Ir,Nr=(i("f8c1"),Object(s["a"])(mr,Ha,$a,!1,null,"2b039cec",null)),fr=Nr.exports,vr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"dbloader-container"}},[i("db-uploader",{attrs:{type:"illustrated"}}),i("div",{attrs:{id:"note"}},[e._v(" Sqliteviz is fully client-side. Your database never leaves your computer. ")]),i("button",{staticClass:"secondary",attrs:{id:"skip"},on:{click:function(t){return e.$router.push("/workspace")}}},[e._v(" Create empty database ")])],1)},Dr=[],jr={name:"Welcome",components:{DbUploader:Qt}},yr=jr,br=(i("f2b5"),Object(s["a"])(yr,vr,Dr,!1,null,"0da5ae79",null)),Cr=br.exports,zr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("main-menu"),i("keep-alive",{attrs:{include:"Workspace"}},[i("router-view",{attrs:{id:"main-view"}})],1)],1)},Tr=[],wr=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("nav",[n("div",[n("router-link",{attrs:{to:"/workspace"}},[e._v("Workspace")]),n("router-link",{attrs:{to:"/inquiries"}},[e._v("Inquiries")]),n("a",{attrs:{href:"https://github.com/lana-k/sqliteviz/wiki",target:"_blank"}},[e._v("Help")])],1),n("div",{attrs:{id:"nav-buttons"}},[n("button",{directives:[{name:"show",rawName:"v-show",value:e.currentInquiry&&"/workspace"===e.$route.path,expression:"currentInquiry && $route.path === '/workspace'"}],staticClass:"primary",attrs:{id:"save-btn",disabled:e.isSaved},on:{click:e.checkInquiryBeforeSave}},[e._v(" Save ")]),n("button",{staticClass:"primary",attrs:{id:"create-btn"},on:{click:e.createNewInquiry}},[e._v(" Create ")]),n("app-diagnostic-info")],1),n("modal",{attrs:{name:"save",classes:"dialog",height:"auto"}},[n("div",{staticClass:"dialog-header"},[e._v(" Save inquiry "),n("close-icon",{on:{click:e.cancelSave}})],1),n("div",{staticClass:"dialog-body"},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isPredefined,expression:"isPredefined"}],attrs:{id:"save-note"}},[n("img",{attrs:{src:i("db39")}}),e._v(" Note: Predefined inquiries can't be edited. That's why your modifications will be saved as a new inquiry. Enter the name for it. ")]),n("text-field",{attrs:{label:"Inquiry name","error-msg":e.errorMsg,width:"100%"},model:{value:e.name,callback:function(t){e.name=t},expression:"name"}})],1),n("div",{staticClass:"dialog-buttons-container"},[n("button",{staticClass:"secondary",on:{click:e.cancelSave}},[e._v("Cancel")]),n("button",{staticClass:"primary",on:{click:e.saveInquiry}},[e._v("Save")])])])],1)},xr=[],Or=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app-info-container"}},[n("img",{attrs:{id:"app-info-icon",src:i("db39")},on:{click:function(t){return e.$modal.show("app-info")}}}),n("modal",{attrs:{name:"app-info",classes:"dialog",height:"auto",width:"400px"}},[n("div",{staticClass:"dialog-header"},[e._v(" App info "),n("close-icon",{on:{click:function(t){return e.$modal.hide("app-info")}}})],1),n("div",{staticClass:"dialog-body"},e._l(e.info,(function(t,i){return n("div",{key:i,staticClass:"info-item"},[e._v(" "+e._s(t.name)+" "),n("div",{staticClass:"divider"}),n("div",{staticClass:"options"},e._l(t.info,(function(t,i){return n("div",{key:i},[e._v(" "+e._s(t)+" ")])})),0)])})),0)])],1)},Ar=[],Lr={name:"AppDiagnosticInfo",components:{CloseIcon:Oe},data:function(){return{info:[{name:"sqliteviz version",info:[i("9224").version]}]}},created:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return i=e.$store.state,t.next=3,i.db.execute("select sqlite_version()");case 3:return n=t.sent,e.info.push({name:"SQLite version",info:n["sqlite_version()"]}),t.next=7,i.db.execute("PRAGMA compile_options");case 7:n=t.sent,e.info.push({name:"SQLite compile options",info:n.compile_options});case 9:case"end":return t.stop()}}),t)})))()}},kr=Lr,Er=(i("2930"),Object(s["a"])(kr,Or,Ar,!1,null,"a80fbe8a",null)),Sr=Er.exports,Qr={name:"MainMenu",components:{TextField:F,CloseIcon:Oe,AppDiagnosticInfo:Sr},data:function(){return{name:"",errorMsg:null}},computed:{currentInquiry:function(){return this.$store.state.currentTab},isSaved:function(){if(!this.currentInquiry)return!1;var e=this.currentInquiry.tabIndex,t=this.$store.state.tabs[e];return t&&t.isSaved},isPredefined:function(){return!!this.currentInquiry&&this.currentInquiry.isPredefined},runDisabled:function(){return this.currentInquiry&&(!this.$store.state.db||!this.currentInquiry.query)}},created:function(){this.$root.$on("createNewInquiry",this.createNewInquiry),this.$root.$on("saveInquiry",this.checkInquiryBeforeSave),document.addEventListener("keydown",this._keyListener)},beforeDestroy:function(){document.removeEventListener("keydown",this._keyListener)},methods:{createNewInquiry:function(){var e=this;this.$store.dispatch("addTab").then((function(t){e.$store.commit("setCurrentTabId",t),"/workspace"!==e.$route.path&&e.$router.push("/workspace")}))},cancelSave:function(){this.$modal.hide("save"),this.$root.$off("inquirySaved")},checkInquiryBeforeSave:function(){this.errorMsg=null,this.name="",hr.isTabNeedName(this.currentInquiry)?this.$modal.show("save"):this.saveInquiry()},saveInquiry:function(){var e=this,t=hr.isTabNeedName(this.currentInquiry);if(!t||this.name){var i=this.currentInquiry.result,n=this.currentInquiry.view,a=hr.save(this.currentInquiry,this.name);this.$store.commit("updateTab",{index:this.currentInquiry.tabIndex,name:a.name,id:a.id,query:a.query,viewType:a.viewType,viewOptions:a.viewOptions,isSaved:!0}),this.$nextTick((function(){e.currentInquiry.result=i,e.currentInquiry.view=n})),this.$modal.hide("save"),this.$root.$emit("inquirySaved")}else this.errorMsg="Inquiry name can't be empty"},_keyListener:function(e){if("/workspace"===this.$route.path){if(("r"===e.key||"Enter"===e.key)&&(e.ctrlKey||e.metaKey))return e.preventDefault(),void(this.runDisabled||this.currentInquiry.execute());if("s"===e.key&&(e.ctrlKey||e.metaKey))return e.preventDefault(),void(this.isSaved||this.checkInquiryBeforeSave())}"b"===e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),this.createNewInquiry())}}},Ur=Qr,Yr=(i("2cf3"),Object(s["a"])(Ur,wr,xr,!1,null,"707ebea6",null)),Zr=Yr.exports,Pr=(i("e506"),{name:"Main",components:{MainMenu:Zr}}),_r=Pr,qr=(i("d2db"),Object(s["a"])(_r,zr,Tr,!1,null,"25aa04f9",null)),Vr=qr.exports;n["default"].use(d["a"]);var Rr=[{path:"/",name:"Welcome",component:Cr},{path:"/",name:"Main",component:Vr,children:[{path:"/workspace",name:"Workspace",component:Ga},{path:"/inquiries",name:"Inquiries",component:fr}]}],Br=new d["a"]({routes:Rr});Br.beforeEach(function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t,i,n){var a;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(Mi.state.db){e.next=5;break}return a=Ie.getNewDatabase(),e.next=4,a.loadDb();case 4:Mi.commit("setDb",a);case 5:n();case 6:case"end":return e.stop()}}),e)})));return function(t,i,n){return e.apply(this,arguments)}}());var Gr=Br,Hr=i("b8ae"),$r=i("1881"),Wr=i.n($r);i("017d"),i("33da"),i("6d26"),i("bebf"),i("7432"),i("4a8d"),i("e607"),i("feae");["localhost","127.0.0.1"].includes(location.hostname)||i.e("chunk-60cbf026").then(i.t.bind(null,"ddb8",7)),n["default"].use(Hr["VuePlugin"]),n["default"].use(Wr.a),n["default"].config.productionTip=!1,new n["default"]({router:Gr,store:Mi,render:function(e){return e(l)}}).$mount("#app")},"5ca7":function(e,t,i){},"5f8a":function(e,t,i){},"60f1":function(e,t,i){},"637d":function(e,t,i){"use strict";var n=i("6afd"),a=i.n(n);a.a},"64b6":function(e,t,i){"use strict";var n=i("231b"),a=i.n(n);a.a},"69e6":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iI0YzRjZGQSIgc3Ryb2tlPSIjQzhENEUzIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjQ5ODhMNi43NSAxNC4yNDk5TDIuNjI1IDEwLjEyNDlMMy42ODI1IDkuMDY3MzhMNi43NSAxMi4xMjc0TDE0LjY5MjUgNC4xOTIzOEwxNS43NSA1LjI0OTg4WiIgZmlsbD0iIzExOURGRiIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2QiIHg9IjAuNjI1IiB5PSIzLjE5MjM4IiB3aWR0aD0iMTcuMTI1IiBoZWlnaHQ9IjE0LjA1NzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiLz4KPGZlT2Zmc2V0IGR5PSIxIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMC4xNjQ3MDYgMCAwIDAgMCAwLjI0NzA1OSAwIDAgMCAwIDAuMzcyNTQ5IDAgMCAwIDAuNDUgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K"},"6a0b":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgdmlld0JveD0iMCAwIDQ1MCAxNjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ1MCIgaGVpZ2h0PSIxNjciPgo8cmVjdCB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTEyOC4yMDcgLTE2OS4wMDdDNzAuMTk3MiAtMTgwLjg0OSAxOC43NDUgLTE0MC4xMSA0LjMxOTg1IC03OC4zMzIyQy0xMC4xMDU0IC0xNi41NTM5IDE0LjMzMzcgMTUuMzMxOCAzNy4zMjE4IDU1LjE4OTFDNzIuMzc4NCAxMTUuOTcxIDE4MS41NTEgMTcwLjIzNyAyNjUuMDgzIDE2Ni43ODlDMzM3LjUxNyAxNjMuOCAzODkuMDI4IDE0NS41MTQgNDI1LjkzNiA3Ny4xMTA3QzQ4OS4zNzggLTQwLjQ2NzkgNDE3LjQ0NCAtMTE3LjA5MyAzMjUuNTI3IC0xMDIuNzQ1QzIxNC41NzEgLTg1LjQyNCAyMTMuNjI5IC0xNTEuNTcgMTI4LjIwNyAtMTY5LjAwN1oiIGZpbGw9IiNERkU4RjMiLz4KPHBhdGggZD0iTTE0Ny4yMjIgOS40ODcxNkMxNDcuMjIyIDYuNzI4MjQgMTQ5LjQ1OCA0LjQ5MTcgMTUyLjIxNyA0LjQ5MTdIMzQzLjA0NEMzNDUuODAyIDQuNDkxNyAzNDguMDM5IDYuNzI4MjQgMzQ4LjAzOSA5LjQ4NzE1VjEyMi4zODRDMzQ4LjAzOSAxMjUuMTQzIDM0NS44MDIgMTI3LjM4IDM0My4wNDQgMTI3LjM4SDE1Mi4yMTdDMTQ5LjQ1OCAxMjcuMzggMTQ3LjIyMiAxMjUuMTQzIDE0Ny4yMjIgMTIyLjM4NFY5LjQ4NzE2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE1Ni4yODQgLTEuNTczNzNDMTU4LjE1OCAtMy40NDczOSAxNjAuNjk5IC00LjUgMTYzLjM0OSAtNC41SDMzMS45MTFDMzM0LjU2MSAtNC41IDMzNy4xMDIgLTMuNDQ3MzkgMzM4Ljk3NiAtMS41NzM3M0wzNDYuMDQxIDUuNDkwOTFIMTQ5LjIyTDE1Ni4yODQgLTEuNTczNzNaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNDcuMjIyIDkuNDg3MTVDMTQ3LjIyMiA2LjcyODI0IDE0OS40NTggNC40OTE3IDE1Mi4yMTcgNC40OTE3SDM0My4wNDRDMzQ1LjgwMiA0LjQ5MTcgMzQ4LjAzOSA2LjcyODI0IDM0OC4wMzkgOS40ODcxNVYyNy40NzA4SDE0Ny4yMjJWOS40ODcxNVoiIGZpbGw9IiNBMkIxQzYiLz4KPHBhdGggZD0iTTI1NC45MzkgNjcuOTU3MUMyNTQuMjUgNjcuNTMzNSAyNTMuNTk3IDY3LjA1MTkgMjUyLjk4OCA2Ni41MTc0VjU3LjY5MzVIMjU2LjgzMlY2OS4wMThDMjU2LjE5NSA2OC42ODY5IDI1NS41NjQgNjguMzMzMiAyNTQuOTM5IDY3Ljk1NzFaTTI2Mi4zNDEgNjMuNTAzMUgyNTguNDk4VjY5LjcyNTNDMjU5Ljc1MiA3MC4zMDkgMjYxLjAzNSA3MC44Mjg4IDI2Mi4zNDEgNzEuMjgyOVY2My41MDMxWk0yNTIuOTg4IDY4LjI4NTVMMjUyLjczNyA2OC4wODM0QzI1Mi4zNTIgNjcuNzYzNSAyNTEuOTkyIDY3LjQzNTEgMjUxLjY0OCA2Ny4xMDY4TDI0Mi41MyA2Ni4wNDU5TDI0NC4yMDUgNjkuMjk1OUwyNTUuOTI3IDcwLjI1NTdDMjU0Ljg5OSA2OS42NzU4IDI1My45MTYgNjkuMDE3MiAyNTIuOTg4IDY4LjI4NTVWNjguMjg1NVpNMjYyLjE0IDczLjAwOUMyNjAuODMyIDcyLjU3OTMgMjU5LjU0OSA3Mi4wNzYyIDI1OC4yOTcgNzEuNTAxOEwyNTcuODI4IDcxLjI2NjFMMjUwLjA5OSA3MC43NTI1TDI1MS40MDYgNzMuNDg4OUwyNjQuODg3IDczLjgwMDRDMjYzLjk2NiA3My41ODE1IDI2My4wMzYgNzMuMzEyMSAyNjIuMTQgNzMuMDA5Wk0yNDYuMDk3IDU3LjY5MzVDMjQ3LjU3MiA2MC4yODc1IDI0OS4zMjcgNjIuNzEwMSAyNTEuMzMgNjQuOTE3NlY1Ni4xMjc1TDI0Mi44ODIgNTEuOTQyOUwyNDIuMTI4IDYxLjc1MThMMjUwLjgyOCA2Ni4yMzk1QzI0OC41NDcgNjMuODQ2OSAyNDYuOTE4IDYwLjkwMzYgMjQ2LjA5NyA1Ny42OTM1VjU3LjY5MzVaIiBmaWxsPSIjMTE5REZGIi8+CjxwYXRoIGQ9Ik0yMTAuNzM4IDg0LjI4NThDMjExLjc5NSA4NC44NzYzIDIxMi44NTggODUuMTcxNSAyMTMuOTI2IDg1LjE3MTVDMjE0LjgxNSA4NS4xNzE1IDIxNS4zMzYgODQuODU1NyAyMTUuNDkgODQuMjI0MkMyMTUuNTQxIDg0LjAwODUgMjE1LjU2NyA4My43NDY3IDIxNS41NjcgODMuNDM4NkMyMTUuNTY3IDgzLjEyNTQgMjE1LjUzMSA4Mi44ODQgMjE1LjQ1OSA4Mi43MTQ2QzIxNS4zODcgODIuNTQgMjE1LjI2NiA4Mi40MTE3IDIxNS4wOTcgODIuMzI5NUMyMTQuOTI3IDgyLjI0MjIgMjE0LjcwMiA4Mi4xNzggMjE0LjQxOSA4Mi4xMzdDMjE0LjE0MiA4Mi4wOTU5IDIxMy43ODggODIuMDM5NCAyMTMuMzU2IDgxLjk2NzVDMjEyLjkyNSA4MS44OTA1IDIxMi41MyA4MS44MDU4IDIxMi4xNyA4MS43MTM0QzIxMS44MTEgODEuNjIwOSAyMTEuNTA1IDgxLjQ4NzQgMjExLjI1NCA4MS4zMTI5QzIxMC43MiA4MC45MzggMjEwLjQ2MyA4MC4zMDY1IDIxMC40ODMgNzkuNDE4MlY3OS4yMjU2QzIxMC40ODMgNzguMjkxMiAyMTAuNzkyIDc3LjYyNjIgMjExLjQwOCA3Ny4yMzA5QzIxMi4wMDMgNzYuODQwNiAyMTIuOTg3IDc2LjcwNzEgMjE0LjM1OCA3Ni44MzA0QzIxNS4yOTIgNzYuOTE3NiAyMTYuMDM3IDc3LjA3OTQgMjE2LjU5MSA3Ny4zMTU2TDIxNi4yMjkgNzguNDc4NkMyMTUuNjEzIDc4LjIxNjcgMjE0Ljg3NCA3OC4wMjY3IDIxNC4wMTEgNzcuOTA4NkMyMTMuNzQ0IDc3Ljg3MjcgMjEzLjQ5MiA3Ny44NTQ3IDIxMy4yNTYgNzcuODU0N0MyMTMuMDI1IDc3Ljg1NDcgMjEyLjgxNSA3Ny44NzI3IDIxMi42MjUgNzcuOTA4NkMyMTIuNDM1IDc3Ljk0NDYgMjEyLjI3NSA3OC4wMTEzIDIxMi4xNDcgNzguMTA4OUMyMTEuOTAxIDc4LjMwOTEgMjExLjc3MiA3OC42ODE0IDIxMS43NjIgNzkuMjI1NkMyMTEuNzQ3IDc5Ljg2NzUgMjExLjkyNiA4MC4yNzU3IDIxMi4zMDEgODAuNDUwM0MyMTIuNjYxIDgwLjYxOTcgMjEzLjA4NyA4MC43Mzc4IDIxMy41OCA4MC44MDQ1QzIxNC4wNzMgODAuODY2MiAyMTQuNDc2IDgwLjkyMjYgMjE0Ljc4OSA4MC45NzRDMjE1LjEwMiA4MS4wMjAyIDIxNS4zODcgODEuMDg0NCAyMTUuNjQ0IDgxLjE2NjVDMjE1LjkgODEuMjQ4NyAyMTYuMTIxIDgxLjM3OTYgMjE2LjMwNiA4MS41NTkzQzIxNi42OTEgODEuOTIzOSAyMTYuODc5IDgyLjU1OCAyMTYuODY4IDgzLjQ2MTdDMjE2Ljg0MyA4NS4wMzggMjE2LjE4NSA4NS45MzY2IDIxNC44OTcgODYuMTU3NEMyMTQuNTA2IDg2LjIyNDEgMjE0LjExNiA4Ni4yNTc1IDIxMy43MjYgODYuMjU3NUMyMTMuMzM2IDg2LjI1NzUgMjEyLjk3NiA4Ni4yMzE4IDIxMi42NDggODYuMTgwNUMyMTIuMzI0IDg2LjEzNDMgMjEyLjAxNCA4Ni4wNjc1IDIxMS43MTYgODUuOTgwMkMyMTEuMTUxIDg1LjgyMSAyMTAuNjQgODUuNjEwNSAyMTAuMTgzIDg1LjM0ODdMMjEwLjczOCA4NC4yODU4WiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjI1Ljc3OSA4NS4yMjU0QzIyNC43OTkgODUuOTEzNSAyMjMuNzYyIDg2LjI1NzUgMjIyLjY2OCA4Ni4yNTc1QzIyMS4zODkgODYuMjU3NSAyMjAuNTM3IDg1LjgwMzEgMjIwLjExMSA4NC44OTQyQzIxOS44NjQgODQuMzgwOCAyMTkuNzIxIDgzLjczMTMgMjE5LjY4IDgyLjk0NTdDMjE5LjY2NCA4Mi41ODYyIDIxOS42NTYgODIuMTkwOSAyMTkuNjU2IDgxLjc1OTZDMjE5LjY1NiA4MS4zMjMxIDIxOS42NTkgODAuODg0MSAyMTkuNjY0IDgwLjQ0MjVDMjE5LjY3NCA4MC4wMDEgMjE5LjcwOCA3OS41OTI4IDIxOS43NjQgNzkuMjE3OUMyMTkuODIxIDc4Ljg0MzEgMjE5LjkwOCA3OC41MDY4IDIyMC4wMjYgNzguMjA5QzIyMC4xNDkgNzcuOTA2MSAyMjAuMzI0IDc3LjY0OTMgMjIwLjU1IDc3LjQzODhDMjIxLjAxNyA3Ny4wMDI0IDIyMS43MzYgNzYuNzg0MSAyMjIuNzA2IDc2Ljc4NDFDMjIzLjY4MiA3Ni43ODQxIDIyNC43MTkgNzcuMDQ2IDIyNS44MTggNzcuNTY5N0wyMjUuOTQxIDc2LjkzODJIMjI3LjA1TDIyNy4wNTggODkuNjA3OEgyMjUuNzc5Vjg1LjIyNTRaTTIyNS43NzkgNzguNjMyNkMyMjQuODU1IDc4LjE3MDUgMjIzLjk2MiA3Ny45Mzk0IDIyMy4wOTkgNzcuOTM5NEMyMjIuNDczIDc3LjkzOTQgMjIyLjA1OSA3Ny45OTA4IDIyMS44NTkgNzguMDkzNUMyMjEuNjU5IDc4LjE5NjIgMjIxLjUwNSA3OC4zMjk3IDIyMS4zOTcgNzguNDk0QzIyMS4yOTQgNzguNjU4MyAyMjEuMjEgNzguODg0MiAyMjEuMTQzIDc5LjE3MTdDMjIxLjAyNSA3OS43MTA5IDIyMC45NjYgODAuNTk5MiAyMjAuOTY2IDgxLjgzNjZWODIuMDA2QzIyMC45NjYgODMuMTQ1OSAyMjEuMTA3IDgzLjk0NDMgMjIxLjM4OSA4NC40MDEzQzIyMS42NzIgODQuODY4NiAyMjIuMTg4IDg1LjEwMjIgMjIyLjkzNyA4NS4xMDIySDIyMy4wNTNDMjIzLjc2MiA4NS4xMDIyIDIyNC40ODYgODQuOTA3MSAyMjUuMjI1IDg0LjUxNjlDMjI1LjQzNSA4NC40MDkgMjI1LjYyIDg0LjI5ODYgMjI1Ljc3OSA4NC4xODU3Vjc4LjYzMjZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzAuNzAxIDczLjAxMDJMMjMxLjk3MiA3Mi45MDI0Vjg2LjEwMzRIMjMwLjcxNkwyMzAuNzAxIDczLjAxMDJaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzYuNjA4IDc0Ljc0MzFDMjM2LjI2NCA3NC43NDMxIDIzNi4wNDQgNzQuNjk0NCAyMzUuOTQ2IDc0LjU5NjhDMjM1Ljc5MiA3NC40Mzc2IDIzNS43MTUgNzQuMjE5NCAyMzUuNzE1IDczLjk0MjFDMjM1LjcxNSA3My42NTk3IDIzNS43MyA3My40NTk1IDIzNS43NjEgNzMuMzQxNEMyMzUuNzk3IDczLjIxODIgMjM1Ljg0OCA3My4xMjMyIDIzNS45MTUgNzMuMDU2NEMyMzYuMDM4IDcyLjkzMzIgMjM2LjIyNiA3Mi44NzE2IDIzNi40NzcgNzIuODcxNkMyMzYuNzM0IDcyLjg3MTYgMjM2LjkxNiA3Mi44ODQ0IDIzNy4wMjQgNzIuOTEwMUMyMzcuMTM3IDcyLjkzNTggMjM3LjIzIDcyLjk4NDUgMjM3LjMwMSA3My4wNTY0QzIzNy40MjUgNzMuMTc5NyAyMzcuNDg2IDczLjM4MjUgMjM3LjQ4NiA3My42NjQ5QzIzNy40ODYgNzMuOTQyMSAyMzcuNDcxIDc0LjE0MjQgMjM3LjQ0IDc0LjI2NTZDMjM3LjQxNCA3NC4zODM3IDIzNy4zNjggNzQuNDc4NyAyMzcuMzAxIDc0LjU1MDZDMjM3LjE3MyA3NC42NzkgMjM2Ljk0MiA3NC43NDMxIDIzNi42MDggNzQuNzQzMVpNMjM1Ljk4NCA3Ni45MzgySDIzNy4yNDhWODYuMTAzNEgyMzZMMjM1Ljk4NCA3Ni45MzgyWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjQ1LjQ3MyA4NS42NjQ0QzI0NC42MzYgODYuMDU5OCAyNDMuODY0IDg2LjI1NzUgMjQzLjE1NSA4Ni4yNTc1QzI0MS44NzEgODYuMjU3NSAyNDEuMTQyIDg1LjcwODEgMjQwLjk2OCA4NC42MDkzQzI0MC45MjcgODQuMzQ3NCAyNDAuOTA2IDgzLjk2NzUgMjQwLjkwNiA4My40Njk0Vjc4LjAwODdIMjM5Ljc5N1Y3Ny4wNjE0TDI0MC45MDYgNzYuOTM4MkwyNDEuMTA2IDc0Ljg0MzNIMjQyLjE3N1Y3Ni45MzgySDI0NC44NDlWNzguMDA4N0gyNDIuMTc3VjgzLjQ0NjNDMjQyLjE3NyA4NC4wNzc4IDI0Mi4yMjMgODQuNDgwOSAyNDIuMzE1IDg0LjY1NTVDMjQyLjQ4NSA4NC45NzM4IDI0Mi44MjQgODUuMTMzIDI0My4zMzIgODUuMTMzQzI0My44NCA4NS4xMzMgMjQ0LjQwOCA4NC45NzY0IDI0NS4wMzQgODQuNjYzMkwyNDUuNDczIDg1LjY2NDRaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTQuNzE1IDg1LjYxODJDMjUzLjY1MyA4Ni4wNDQ0IDI1Mi40NzkgODYuMjU3NSAyNTEuMTk2IDg2LjI1NzVDMjUwLjQ1MSA4Ni4yNTc1IDI0OS44MiA4Ni4xODA1IDI0OS4zMDEgODYuMDI2NEMyNDguNDc0IDg1Ljc5MDIgMjQ3LjkyNSA4NS4zMDI0IDI0Ny42NTMgODQuNTYzMUMyNDcuNDAxIDgzLjg2OTkgMjQ3LjI3NSA4Mi44NDMgMjQ3LjI3NSA4MS40ODIzVjgxLjA4OTVDMjQ3LjI3NSA3OS40NjE4IDI0Ny42MTQgNzguMzE5NCAyNDguMjkyIDc3LjY2MjJDMjQ4LjkwMyA3Ny4wNzY4IDI0OS45MjIgNzYuNzg0MSAyNTEuMzUgNzYuNzg0MUMyNTIuNzQxIDc2Ljc4NDEgMjUzLjY5MSA3Ny4xMjgyIDI1NC4xOTkgNzcuODE2MkMyNTQuNDQ2IDc4LjE0OTkgMjU0LjYwOCA3OC41NTU2IDI1NC42ODUgNzkuMDMzMUMyNTQuNzY3IDc5LjUwNTUgMjU0LjgwOCA3OS45NTczIDI1NC44MDggODAuMzg4NkMyNTQuODA4IDgxLjA2MTMgMjU0Ljc5MyA4MS41ODI0IDI1NC43NjIgODEuOTUyMUMyNTQuMDM4IDgxLjk4MjkgMjUzLjM4OCA4MS45OTgzIDI1Mi44MTMgODEuOTk4M0MyNTIuODEzIDgxLjk5ODMgMjUyLjQgODEuOTk4MyAyNTEuNTczIDgxLjk5ODNDMjUwLjI3OSA4MS45OTgzIDI0OS4yODMgODEuOTQxOSAyNDguNTg1IDgxLjgyODlDMjQ4LjU4NSA4My4wMDk4IDI0OC43MzQgODMuODM0IDI0OS4wMzEgODQuMzAxMkMyNDkuMzk2IDg0Ljg3MTEgMjUwLjEyMyA4NS4xNTYxIDI1MS4yMTEgODUuMTU2MUMyNTIuMyA4NS4xNTYxIDI1My4zNDIgODQuOTQzIDI1NC4zMzggODQuNTE2OUwyNTQuNzE1IDg1LjYxODJaTTI1My41MDYgODAuOTI3OFY4MC4xODg0QzI1My41MDYgNzkuMzgyMyAyNTMuMzUgNzguODA3MiAyNTMuMDM2IDc4LjQ2MzJDMjUyLjY4NyA3OC4wNzgxIDI1Mi4wODQgNzcuODg1NSAyNTEuMjI3IDc3Ljg4NTVDMjUwLjIgNzcuODg1NSAyNDkuNDk5IDc4LjEwODkgMjQ5LjEyNCA3OC41NTU2QzI0OC43NjQgNzguOTgxOCAyNDguNTg1IDc5Ljc3MjUgMjQ4LjU4NSA4MC45Mjc4SDI1My41MDZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTYuOTU3IDc2LjkzODJIMjU4LjMzNUwyNjAuNzM4IDg0LjQxNjdMMjYwLjk2OSA4NS4xNzkyTDI2MS4xODUgODQuNDE2N0wyNjMuNDggNzYuOTM4MkgyNjQuODc0TDI2MS43NzggODYuMTAzNEgyNjAuMDk5TDI1Ni45NTcgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI2OC4xNTUgNzQuNzQzMUMyNjcuODExIDc0Ljc0MzEgMjY3LjU5IDc0LjY5NDQgMjY3LjQ5MyA3NC41OTY4QzI2Ny4zMzkgNzQuNDM3NiAyNjcuMjYyIDc0LjIxOTQgMjY3LjI2MiA3My45NDIxQzI2Ny4yNjIgNzMuNjU5NyAyNjcuMjc3IDczLjQ1OTUgMjY3LjMwOCA3My4zNDE0QzI2Ny4zNDQgNzMuMjE4MiAyNjcuMzk1IDczLjEyMzIgMjY3LjQ2MiA3My4wNTY0QzI2Ny41ODUgNzIuOTMzMiAyNjcuNzczIDcyLjg3MTYgMjY4LjAyNCA3Mi44NzE2QzI2OC4yODEgNzIuODcxNiAyNjguNDYzIDcyLjg4NDQgMjY4LjU3MSA3Mi45MTAxQzI2OC42ODQgNzIuOTM1OCAyNjguNzc3IDcyLjk4NDUgMjY4Ljg0OCA3My4wNTY0QzI2OC45NzIgNzMuMTc5NyAyNjkuMDMzIDczLjM4MjUgMjY5LjAzMyA3My42NjQ5QzI2OS4wMzMgNzMuOTQyMSAyNjkuMDE4IDc0LjE0MjQgMjY4Ljk4NyA3NC4yNjU2QzI2OC45NjEgNzQuMzgzNyAyNjguOTE1IDc0LjQ3ODcgMjY4Ljg0OCA3NC41NTA2QzI2OC43MiA3NC42NzkgMjY4LjQ4OSA3NC43NDMxIDI2OC4xNTUgNzQuNzQzMVpNMjY3LjUzMSA3Ni45MzgySDI2OC43OTVWODYuMTAzNEgyNjcuNTQ3TDI2Ny41MzEgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI3MS42MDYgODUuMjMzMUwyNzYuMjk2IDc4LjAwMUgyNzEuNTA2Vjc2LjkzODJIMjc3Ljg1MlY3Ny44MDg1TDI3My4xNzcgODUuMDMyOUgyNzguMDQ1Vjg2LjEwMzRIMjcxLjYwNlY4NS4yMzMxWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjA0LjE3IDE2LjQ4MUMyMDQuMTcgMTQuMjczOSAyMDUuOTU5IDEyLjQ4NDYgMjA4LjE2NiAxMi40ODQ2SDMzNi4wNUMzMzguMjU3IDEyLjQ4NDYgMzQwLjA0NiAxNC4yNzM5IDM0MC4wNDYgMTYuNDgxVjE2LjQ4MUMzNDAuMDQ2IDE4LjY4ODEgMzM4LjI1NyAyMC40NzczIDMzNi4wNSAyMC40NzczSDIwOC4xNjZDMjA1Ljk1OSAyMC40NzczIDIwNC4xNyAxOC42ODgxIDIwNC4xNyAxNi40ODFWMTYuNDgxWiIgZmlsbD0iI0YzRjZGQSIvPgo8cGF0aCBkPSJNMTY1LjIwNSAxNi40ODA4QzE2NS4yMDUgMTkuMjM5NyAxNjIuOTY5IDIxLjQ3NjMgMTYwLjIxIDIxLjQ3NjNDMTU3LjQ1MSAyMS40NzYzIDE1NS4yMTQgMTkuMjM5NyAxNTUuMjE0IDE2LjQ4MDhDMTU1LjIxNCAxMy43MjE5IDE1Ny40NTEgMTEuNDg1NCAxNjAuMjEgMTEuNDg1NEMxNjIuOTY5IDExLjQ4NTQgMTY1LjIwNSAxMy43MjE5IDE2NS4yMDUgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE4MS4xOTEgMTYuNDgwOEMxODEuMTkxIDE5LjIzOTcgMTc4Ljk1NCAyMS40NzYzIDE3Ni4xOTUgMjEuNDc2M0MxNzMuNDM2IDIxLjQ3NjMgMTcxLjIgMTkuMjM5NyAxNzEuMiAxNi40ODA4QzE3MS4yIDEzLjcyMTkgMTczLjQzNiAxMS40ODU0IDE3Ni4xOTUgMTEuNDg1NEMxNzguOTU0IDExLjQ4NTQgMTgxLjE5MSAxMy43MjE5IDE4MS4xOTEgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE5Ny4xNzYgMTYuNDgwOEMxOTcuMTc2IDE5LjIzOTcgMTk0Ljk0IDIxLjQ3NjMgMTkyLjE4MSAyMS40NzYzQzE4OS40MjIgMjEuNDc2MyAxODcuMTg2IDE5LjIzOTcgMTg3LjE4NiAxNi40ODA4QzE4Ny4xODYgMTMuNzIxOSAxODkuNDIyIDExLjQ4NTQgMTkyLjE4MSAxMS40ODU0QzE5NC45NCAxMS40ODU0IDE5Ny4xNzYgMTMuNzIxOSAxOTcuMTc2IDE2LjQ4MDhaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNzQuMDk5IC0wLjc0MTUzNUMxNzQuMjgzIC0wLjkwOTg0MyAxNzQuNTI0IC0xLjAwMzE3IDE3NC43NzMgLTEuMDAzMTdIMzE4LjQ5QzMxOC43MzkgLTEuMDAzMTcgMzE4Ljk4IC0wLjkwOTg0MyAzMTkuMTY0IC0wLjc0MTUzM1YtMC43NDE1MzNDMzE5LjgzNyAtMC4xMjYzMTYgMzE5LjQwMiAwLjk5NTAwOCAzMTguNDkgMC45OTUwMDhIMTc0Ljc3M0MxNzMuODYxIDAuOTk1MDA4IDE3My40MjYgLTAuMTI2MzE5IDE3NC4wOTkgLTAuNzQxNTM1Vi0wLjc0MTUzNVoiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTM0Ljg3NSAxMTkuNzM1TDQyLjU0NjUgMTI2LjEzNkwzMC4zODU1IDE0MC43MTJMMjIuNzE0IDEzNC4zMTFMMzQuODc1IDExOS43MzVaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik0yNy4wOTcyIDEyOS4yNTdMMzQuNzY4NyAxMzUuNjU3QzM0Ljc2ODcgMTM1LjY1NyAzOC44MDggMTQxLjExMiAzOS4zMDM0IDE0Ni41OTdDMzkuNDk0MSAxNDguNzA4IDM3LjA2MzMgMTQ5LjI4MiAzNy4wNjMzIDE0OS4yODJMMjEuMzM2NyAxMzYuMTYxTDI3LjA5NzIgMTI5LjI1N1oiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTUyLjg5MjEgMzIuODE0NUw5Mi4yNzE4IDY0LjI4NThDMTA0Ljg3NCA5Ni4yOTIzIDM4LjMyMDkgMTMzLjcyMyAzOC4zMjA5IDEzMy43MjNMMjcuODU1NiAxMjYuMDU4QzI3Ljg1NTYgMTI2LjA1OCAzOS42ODg4IDEwOC41MjYgNTAuODA5NSA4MS43Njk5QzU2LjgzMDEgNjcuMjg0MyA1NC41NzMxIDQ4LjE0ODggNTIuODkyMSAzMi44MTQ1WiIgZmlsbD0iIzBENzZCRiIvPgo8cGF0aCBkPSJNMTAzLjI2MiAxMzAuNzI2SDExMy4yNTNWMTQ5LjcwOEgxMDMuMjYyVjEzMC43MjZaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik01NC4zMDY3IDQyLjMwNTlDNTAuODEwMSAzNS44MTE4IDQ4LjgxMTcgMzEuMzE1OSA0OS43NzM5IDE3LjgyODFIMTE1LjAxMUMxMjEuMjQ2IDI4LjMxODYgMTI1LjI0MiA1NC4yOTQ5IDEyNS4yNDIgNzUuNzc1NEMxMjUuMjQyIDk3LjI1NTkgMTIyLjI0NSAxMTYuMjM5IDExNS4wMTEgMTQxLjIxNkgxMDAuNzY0QzEwMC43NjQgMTQxLjIxNiA5NC43NzAxIDEwMS4yNTIgOTIuMjcyMyA4Mi43NjlDOTAuOTY3OSA3My4xMTYgNTcuMDE5NyA0Ny4zNDQ1IDU0LjMwNjcgNDIuMzA1OVoiIGZpbGw9IiMxMTlERkYiLz4KPHBhdGggZD0iTTEwMy4yNjIgMTQ0LjQyNkgxMTMuMjUzQzExMy4yNTMgMTQ0LjQyNiAxMTkuODQ5IDE0Ni4wMjcgMTIzLjc0NCAxNDkuOTIxQzEyNS4yNDIgMTUxLjQyIDEyMy43NDQgMTUzLjQxOCAxMjMuNzQ0IDE1My40MThIMTAzLjI2MlYxNDQuNDI2WiIgZmlsbD0iIzUwNjc4NCIvPgo8L2c+Cjwvc3ZnPgo="},"6afd":function(e,t,i){},"6d26":function(e,t,i){},"6eba":function(e,t,i){},7314:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTkuOTk5ODQgMTYuNjY2N0M2LjMyNDg0IDE2LjY2NjcgMy4zMzMxNyAxMy42NzUgMy4zMzMxNyAxMEMzLjMzMzE3IDYuMzI1MDIgNi4zMjQ4NCAzLjMzMzM1IDkuOTk5ODQgMy4zMzMzNUMxMy42NzQ4IDMuMzMzMzUgMTYuNjY2NSA2LjMyNTAyIDE2LjY2NjUgMTBDMTYuNjY2NSAxMy42NzUgMTMuNjc0OCAxNi42NjY3IDkuOTk5ODQgMTYuNjY2N1pNOS45OTk4NCAxLjY2NjY5QzguOTA1NDkgMS42NjY2OSA3LjgyMTg2IDEuODgyMjQgNi44MTA4MSAyLjMwMTAyQzUuNzk5NzYgMi43MTk4MSA0Ljg4MTEgMy4zMzM2NCA0LjEwNzI4IDQuMTA3NDZDMi41NDQ0OCA1LjY3MDI3IDEuNjY2NSA3Ljc4OTg4IDEuNjY2NSAxMEMxLjY2NjUgMTIuMjEwMiAyLjU0NDQ4IDE0LjMyOTggNC4xMDcyOCAxNS44OTI2QzQuODgxMSAxNi42NjY0IDUuNzk5NzYgMTcuMjgwMiA2LjgxMDgxIDE3LjY5OUM3LjgyMTg2IDE4LjExNzggOC45MDU0OSAxOC4zMzM0IDkuOTk5ODQgMTguMzMzNEMxMi4yMSAxOC4zMzM0IDE0LjMyOTYgMTcuNDU1NCAxNS44OTI0IDE1Ljg5MjZDMTcuNDU1MiAxNC4zMjk4IDE4LjMzMzIgMTIuMjEwMiAxOC4zMzMyIDEwQzE4LjMzMzIgOC45MDU2NyAxOC4xMTc2IDcuODIyMDQgMTcuNjk4OCA2LjgxMDk5QzE3LjI4IDUuNzk5OTUgMTYuNjY2MiA0Ljg4MTI5IDE1Ljg5MjQgNC4xMDc0NkMxNS4xMTg2IDMuMzMzNjQgMTQuMTk5OSAyLjcxOTgxIDEzLjE4ODkgMi4zMDEwMkMxMi4xNzc4IDEuODgyMjQgMTEuMDk0MiAxLjY2NjY5IDkuOTk5ODQgMS42NjY2OVoiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iNi4zNjc2OCIgeT0iNy41NDg1NSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDYuMzY3NjggNy41NDg1NSkiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iMTIuNDUxNyIgeT0iNi4zNjc3MSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTIuNDUxNyA2LjM2NzcxKSIgZmlsbD0iI0VGNTUzQiIvPgo8L3N2Zz4K"},7432:function(e,t,i){},"77ca":function(e,t,i){},7974:function(e,t,i){},"7a18":function(e,t,i){},"7e99":function(e,t,i){"use strict";var n=i("3db6"),a=i.n(n);a.a},"807c":function(e,t,i){"use strict";var n=i("3c99"),a=i.n(n);a.a},"80ad":function(e,t,i){"use strict";var n=i("2337"),a=i.n(n);a.a},"81e6":function(e,t,i){"use strict";var n=i("3856"),a=i.n(n);a.a},8458:function(e,t,i){},"85ec":function(e,t,i){},"87d4":function(e,t,i){e.exports=i.p+"img/file.f5540c43.png"},8913:function(e,t,i){},"8c0b":function(e,t,i){},"8f6e":function(e,t,i){},"8fcc":function(e,t,i){},9080:function(e,t,i){},9224:function(e){e.exports=JSON.parse('{"name":"sqliteviz","version":"0.15.0","license":"Apache-2.0","private":true,"scripts":{"serve":"vue-cli-service serve","build":"NODE_OPTIONS=--max_old_space_size=4096 vue-cli-service build","test":"vue-cli-service karma","lint":"vue-cli-service lint"},"dependencies":{"codemirror":"^5.57.0","core-js":"^3.6.5","html2canvas":"^1.1.4","jquery":"^3.6.0","nanoid":"^3.1.12","papaparse":"^5.3.1","pivottable":"^2.23.0","plotly.js":"^1.58.4","promise-worker":"^2.0.1","react":"^16.13.1","react-chart-editor":"^0.45.0","react-dom":"^16.13.1","sql.js":"file:./lib/sql-js","sqlite-parser":"^1.0.1","vue":"^2.6.11","vue-codemirror":"^4.0.6","vue-js-modal":"^2.0.0-rc.6","vue-multiselect":"^2.1.6","vue-router":"^3.2.0","vue2-teleport":"^1.0.1","vuejs-paginate":"^2.1.0","vuera":"^0.2.7","vuex":"^3.4.0"},"devDependencies":{"@vue/cli-plugin-babel":"^4.4.0","@vue/cli-plugin-eslint":"^4.4.0","@vue/cli-plugin-router":"^4.4.0","@vue/cli-plugin-vuex":"^4.4.0","@vue/cli-service":"^4.4.0","@vue/eslint-config-standard":"^5.1.2","@vue/test-utils":"^1.1.2","babel-eslint":"^10.1.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^6.7.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-vue":"^6.2.2","karma":"^3.1.4","karma-firefox-launcher":"^2.1.0","karma-webpack":"^4.0.2","vue-cli-plugin-ui-karma":"^0.2.5","vue-template-compiler":"^2.6.11","workbox-webpack-plugin":"^6.1.5","worker-loader":"^3.0.8"}}')},"93dd":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iIzExOURGRiIgc3Ryb2tlPSIjMEQ3NkJGIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjVMNi43NSAxNC4yNUwyLjYyNSAxMC4xMjVMMy42ODI1IDkuMDY3NUw2Ljc1IDEyLjEyNzVMMTQuNjkyNSA0LjE5MjVMMTUuNzUgNS4yNVoiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZCIgeD0iMC42MjUiIHk9IjMuMTkyNSIgd2lkdGg9IjE3LjEyNSIgaGVpZ2h0PSIxNC4wNTc1IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+CjxmZU9mZnNldCBkeT0iMSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIi8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAuMTY0NzA2IDAgMCAwIDAgMC4yNDcwNTkgMCAwIDAgMCAwLjM3MjU0OSAwIDAgMCAwLjcgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K"},"9ae5":function(e,t,i){},"9bf4":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE0IiBoZWlnaHQ9IjkwIiB2aWV3Qm94PSIwIDAgMTE0IDkwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNOTYuMzgyOCAxLjkzODk1QzkxLjQyNDQgMC4wOTI4MTQgODYuNjAyMiA1LjYyNTA1IDg1Ljg1OCAxMC42ODE2TDk3LjI4NTEgMTUuNTQ5QzEwMC4xOTQgMTAuNTg1NiAxMDEuMzQxIDMuNzg1MDggOTYuMzgyOCAxLjkzODk1WiIgZmlsbD0iI0YzQzZCRiIvPgo8cGF0aCBkPSJNODQuOTc3NSA5LjEyNDEzQzc1LjA2NTMgMzUuMjAzNSAzMC43MTc5IDQ2LjczNTkgMjEuNDEwNiAzNy43MjY1TDE0LjUzNTkgNzkuNDg1N0M2Ny43NjA3IDg2LjQ5MTIgOTEuOTI2NCA1NS40MTExIDk5LjA5NzMgMTQuNzEzOEw4NC45Nzc1IDkuMTI0MTNaIiBmaWxsPSIjQTJCMUM2Ii8+Cjwvc3ZnPgo="},a1f0:function(e,t,i){"use strict";var n=i("5ca7"),a=i.n(n);a.a},a303:function(e,t,i){},a96d:function(e,t,i){"use strict";var n=i("3a01"),a=i.n(n);a.a},b288:function(e,t,i){},b3ae:function(e,t,i){},b51c:function(e,t,i){},b5fd:function(e,t,i){"use strict";var n=i("5f8a"),a=i.n(n);a.a},be12:function(e,t,i){"use strict";var n=i("9ae5"),a=i.n(n);a.a},bebf:function(e,t,i){},c4dc:function(e,t,i){"use strict";var n=i("1c6b"),a=i.n(n);a.a},cba9:function(e,t,i){"use strict";var n=i("6eba"),a=i.n(n);a.a},cd48:function(e,t,i){"use strict";var n=i("8f6e"),a=i.n(n);a.a},d24f:function(e,t,i){},d2db:function(e,t,i){"use strict";var n=i("9080"),a=i.n(n);a.a},d7ec:function(e,t,i){"use strict";var n=i("4313"),a=i.n(n);a.a},d9ad:function(e,t,i){"use strict";var n=i("a303"),a=i.n(n);a.a},daef:function(e,t,i){"use strict";var n=i("547f"),a=i.n(n);a.a},db39:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExIDlIMTNWN0gxMVY5Wk0xMiAyMEM3LjU5IDIwIDQgMTYuNDEgNCAxMkM0IDcuNTkgNy41OSA0IDEyIDRDMTYuNDEgNCAyMCA3LjU5IDIwIDEyQzIwIDE2LjQxIDE2LjQxIDIwIDEyIDIwWk0xMiAyQzEwLjY4NjggMiA5LjM4NjQyIDIuMjU4NjYgOC4xNzMxNyAyLjc2MTJDNi45NTk5MSAzLjI2Mzc1IDUuODU3NTIgNC4wMDAzNSA0LjkyODkzIDQuOTI4OTNDMy4wNTM1NyA2LjgwNDMgMiA5LjM0Nzg0IDIgMTJDMiAxNC42NTIyIDMuMDUzNTcgMTcuMTk1NyA0LjkyODkzIDE5LjA3MTFDNS44NTc1MiAxOS45OTk3IDYuOTU5OTEgMjAuNzM2MiA4LjE3MzE3IDIxLjIzODhDOS4zODY0MiAyMS43NDEzIDEwLjY4NjggMjIgMTIgMjJDMTQuNjUyMiAyMiAxNy4xOTU3IDIwLjk0NjQgMTkuMDcxMSAxOS4wNzExQzIwLjk0NjQgMTcuMTk1NyAyMiAxNC42NTIyIDIyIDEyQzIyIDEwLjY4NjggMjEuNzQxMyA5LjM4NjQyIDIxLjIzODggOC4xNzMxN0MyMC43MzYyIDYuOTU5OTEgMTkuOTk5NyA1Ljg1NzUyIDE5LjA3MTEgNC45Mjg5M0MxOC4xNDI1IDQuMDAwMzUgMTcuMDQwMSAzLjI2Mzc1IDE1LjgyNjggMi43NjEyQzE0LjYxMzYgMi4yNTg2NiAxMy4zMTMyIDIgMTIgMlYyWk0xMSAxN0gxM1YxMUgxMVYxN1oiIGZpbGw9IiNBMkIxQzYiLz4KPC9zdmc+Cg=="},dbb4:function(e,t,i){},dd9c:function(e,t,i){"use strict";var n=i("345a"),a=i.n(n);a.a},dfd4:function(e,t,i){"use strict";var n=i("7974"),a=i.n(n);a.a},e506:function(e,t,i){},f2b5:function(e,t,i){"use strict";var n=i("0cce"),a=i.n(n);a.a},f4da:function(e,t,i){"use strict";var n=i("8913"),a=i.n(n);a.a},f4e5:function(e,t,i){"use strict";var n=i("b51c"),a=i.n(n);a.a},f7a6:function(e,t,i){"use strict";var n=i("0720"),a=i.n(n);a.a},f8c1:function(e,t,i){"use strict";var n=i("8458"),a=i.n(n);a.a},fc07:function(e,t,i){"use strict";var n=i("60f1"),a=i.n(n);a.a},feae:function(e,t,i){}}); -//# sourceMappingURL=app.023944c6.js.map \ No newline at end of file +(function(e){function t(t){for(var n,s,o=t[0],c=t[1],l=t[2],u=0,M=[];u0&&e.paneBefore.size>0}]},[100===e.after.max&&e.paneAfter.size>0?n("div",{staticClass:"toggle-btn",on:{click:function(t){return e.togglePane(e.paneBefore)}}},[n("img",{staticClass:"direction-icon",style:e.directionBeforeIconStyle,attrs:{src:i("0ca3")}})]):e._e(),100===e.before.max&&e.paneBefore.size>0?n("div",{staticClass:"toggle-btn",on:{click:function(t){return e.togglePane(e.paneAfter)}}},[n("img",{staticClass:"direction-icon",style:e.directionAfterIconStyle,attrs:{src:i("0ca3")}})]):e._e()])]),n("div",{ref:"right",staticClass:"splitpanes-pane",style:e.styles.after},[e._t("right-pane")],2)])}),h=[],I=i("5530"),m=i("ade3"),N={getCurrentMouseDrag:function(e,t){var i=t.getBoundingClientRect(),n="ontouchstart"in window&&e.touches?e.touches[0]:e,a=n.clientX,r=n.clientY;return{x:a-i.left,y:r-i.top}},getCurrentDragPercentage:function(e,t,i){var n=this.getCurrentMouseDrag(e,t);n=n[i?"y":"x"];var a=t[i?"clientHeight":"clientWidth"];return 100*n/a},calculateOffset:function(e,t){var i=t.container,n=t.isHorisontal,a=t.paneBeforeMax,r=t.paneAfterMax,s=this.getCurrentDragPercentage(e,i,n),o=a<100&&s>=a,c=r<100&&s<=100-r;return o||c?o?a:Math.max(100-r,0):Math.min(Math.max(s,0),a)}},f={name:"Splitpanes",props:{horizontal:{type:Boolean,default:!1},before:{type:Object},after:{type:Object}},data:function(){return{container:null,paneBefore:this.before,paneAfter:this.after,beforeMinimising:{before:this.before.size,after:this.after.size},dragging:!1,movableSplitter:{top:0,left:0,visibility:"hidden"}}},computed:{styles:function(){return{before:Object(m["a"])({},this.horizontal?"height":"width","".concat(this.paneBefore.size,"%")),after:Object(m["a"])({},this.horizontal?"height":"width","".concat(this.paneAfter.size,"%"))}},movableSplitterStyle:function(){var e=Object(I["a"])({},this.movableSplitter);return e.top+="%",e.left+="%",e},directionBeforeIconStyle:function(){var e=0!==this.paneBefore.size,t="translate(-50%, -50%) ",i="";return i=this.horizontal?e?"rotate(90deg)":"rotate(-90deg)":e?"rotate(0deg)":"rotate(180deg)",{transform:t+i}},directionAfterIconStyle:function(){var e=0!==this.paneAfter.size,t="translate(-50%, -50%)",i="";return i=this.horizontal?e?"rotate(-90deg)":"rotate(90deg)":e?"rotate(180deg)":"rotate(0deg)",{transform:t+i}}},methods:{bindEvents:function(){document.addEventListener("mousemove",this.onMouseMove,{passive:!1}),document.addEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.addEventListener("touchmove",this.onMouseMove,{passive:!1}),document.addEventListener("touchend",this.onMouseUp))},unbindEvents:function(){document.removeEventListener("mousemove",this.onMouseMove,{passive:!1}),document.removeEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.removeEventListener("touchmove",this.onMouseMove,{passive:!1}),document.removeEventListener("touchend",this.onMouseUp))},onMouseMove:function(e){e.preventDefault(),this.dragging=!0,this.movableSplitter.visibility="visible",this.moveSplitter(e)},onMouseUp:function(){if(this.dragging){var e=this.horizontal?this.movableSplitter.top:this.movableSplitter.left;this.paneBefore.size=e,this.paneAfter.size=100-e,this.movableSplitter={top:0,left:0,visibility:"hidden"},this.dragging=!1}this.unbindEvents()},moveSplitter:function(e){var t={container:this.container,paneBeforeMax:this.paneBefore.max,paneAfterMax:this.paneAfter.max,isHorisontal:this.horizontal},i=N.calculateOffset(e,t),n=this.horizontal?"top":"left";this.movableSplitter[n]=i},togglePane:function(e){if(e.size>0){this.beforeMinimising.before=this.paneBefore.size,this.beforeMinimising.after=this.paneAfter.size,e.size=0;var t=e===this.paneBefore?this.paneAfter:this.paneBefore;t.size=100-e.size}else this.paneBefore.size=this.beforeMinimising.before,this.paneAfter.size=this.beforeMinimising.after}},mounted:function(){this.container=this.$refs.container}},v=f,D=(i("a1f0"),Object(s["a"])(v,p,h,!1,null,null,null)),j=D.exports,y=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"schema-container"}},[i("div",{attrs:{id:"schema-filter"}},[i("text-field",{attrs:{placeholder:"Search table",width:"100%"},model:{value:e.filter,callback:function(t){e.filter=t},expression:"filter"}})],1),i("div",{attrs:{id:"db"}},[i("div",{staticClass:"db-name",on:{click:function(t){e.schemaVisible=!e.schemaVisible}}},[i("tree-chevron",{directives:[{name:"show",rawName:"v-show",value:e.schema.length>0,expression:"schema.length > 0"}],attrs:{expanded:e.schemaVisible}}),e._v(" "+e._s(e.dbName)+" ")],1),i("db-uploader",{attrs:{id:"db-edit",type:"small"}}),i("export-icon",{attrs:{tooltip:"Export database"},on:{click:e.exportToFile}}),i("add-table-icon",{on:{click:e.addCsv}})],1),i("div",{directives:[{name:"show",rawName:"v-show",value:e.schemaVisible,expression:"schemaVisible"}],staticClass:"schema"},e._l(e.schema,(function(e){return i("table-description",{key:e.name,attrs:{name:e.name,columns:e.columns}})})),1),i("csv-import",{ref:"addCsv",attrs:{file:e.file,db:e.$store.state.db,"dialog-name":"addCsv"}})],1)},b=[],C=(i("4de4"),i("b0c0"),i("ac1f"),i("5319"),i("2b3d"),{isDatabase:function(e){var t=["application/vnd.sqlite3","application/x-sqlite3"];return e.type?t.includes(e.type):/\.(db|sqlite(3)?)+$/.test(e.name)},getFileName:function(e){return e.name.replace(/\.[^.]+$/,"")},downloadFromUrl:function(e,t){var i=document.createElement("a");i.href=e,i.download=t,i.click(),URL.revokeObjectURL(e)},exportToFile:function(e,t){var i=arguments,n=this;return Object(u["a"])(regeneratorRuntime.mark((function a(){var r,s,o;return regeneratorRuntime.wrap((function(a){while(1)switch(a.prev=a.next){case 0:r=i.length>2&&void 0!==i[2]?i[2]:"octet/stream",s=new Blob([e],{type:r}),o=URL.createObjectURL(s),n.downloadFromUrl(o,t);case 4:case"end":return a.stop()}}),a)})))()},getFileFromUser:function(e){return new Promise((function(t){var i=document.createElement("input");i.type="file",i.accept=e,i.addEventListener("change",(function(){var e=i.files[0];t(e)})),i.click()}))},importFile:function(){var e=new FileReader;return this.getFileFromUser(".json").then((function(t){return new Promise((function(i,n){e.onload=function(e){i(e.target.result)},e.readAsText(t)}))}))},readFile:function(e){return fetch(e)},readAsArrayBuffer:function(e){var t=new FileReader;return new Promise((function(i,n){t.onerror=function(){t.abort(),n(new Error("Problem parsing input file."))},t.onload=function(){i(t.result)},t.readAsArrayBuffer(e)}))}}),z=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("div",{staticClass:"table-name",on:{click:function(t){e.colVisible=!e.colVisible}}},[i("tree-chevron",{attrs:{expanded:e.colVisible}}),e._v(" "+e._s(e.name)+" ")],1),i("div",{directives:[{name:"show",rawName:"v-show",value:e.colVisible,expression:"colVisible"}],staticClass:"columns"},e._l(e.columns,(function(t,n){return i("div",{key:n,staticClass:"column"},[e._v(" "+e._s(t.name)+" "),i("span",{staticClass:"column-type"},[e._v(e._s(t.type))])])})),0)])},T=[],w=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{staticClass:"chevron-icon",style:{transform:e.expanded?"rotate(90deg)":"rotate(0)"},attrs:{width:"9",height:"9",viewBox:"0 0 8 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[i("path",{attrs:{d:"M0.721924 9.93097L4.85292 5.79997L0.721924 1.66897L1.99992 0.399973L7.39992 5.79997L1.99992 11.2L0.721924 9.93097Z",fill:e.expanded?"#506784":"rgba(80, 103, 132, 0.5)"}})])},x=[],O={name:"treeChevron",props:{expanded:{type:Boolean,required:!0}}},A=O,L=(i("2edc"),Object(s["a"])(A,w,x,!1,null,"bfc135e8",null)),k=L.exports,E={name:"TableDescription",components:{TreeChevron:k},props:["name","columns"],data:function(){return{colVisible:!1}}},S=E,Q=(i("dfd4"),Object(s["a"])(S,z,T,!1,null,"060be7fb",null)),U=Q.exports,Y=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[e.label?i("div",{class:["text-field-label",{error:e.errorMsg},{disabled:e.disabled}]},[e._v(" "+e._s(e.label)+" "),e.hint?i("hint-icon",{staticClass:"hint",attrs:{hint:e.hint,"max-width":e.maxHintWidth||"149px"}}):e._e()],1):e._e(),i("input",{class:{error:e.errorMsg},style:{width:e.width},attrs:{type:"text",placeholder:e.placeholder,disabled:e.disabled},domProps:{value:e.value},on:{input:function(t){return e.$emit("input",t.target.value)}}}),i("div",{directives:[{name:"show",rawName:"v-show",value:e.errorMsg,expression:"errorMsg"}],staticClass:"text-field-error"},[e._v(e._s(e.errorMsg))])])},Z=[],P=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("svg",{staticClass:"hint-icon",attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M8.75 14.1666H10.4167V12.5H8.75V14.1666ZM9.58333 16.25C5.90833 16.25 2.91667 13.2583 2.91667 9.58333C2.91667 5.90833 5.90833 2.91667 9.58333 2.91667C13.2583 2.91667 16.25 5.90833 16.25 9.58333C16.25 13.2583 13.2583 16.25 9.58333 16.25ZM9.58333 1.25C8.48898 1.25 7.40535 1.46555 6.3943 1.88434C5.38326 2.30313 4.4646 2.91696 3.69078 3.69078C2.12797 5.25358 1.25 7.3732 1.25 9.58333C1.25 11.7935 2.12797 13.9131 3.69078 15.4759C4.4646 16.2497 5.38326 16.8635 6.3943 17.2823C7.40535 17.7011 8.48898 17.9167 9.58333 17.9167C11.7935 17.9167 13.9131 17.0387 15.4759 15.4759C17.0387 13.9131 17.9167 11.7935 17.9167 9.58333C17.9167 8.48898 17.7011 7.40535 17.2823 6.3943C16.8635 5.38326 16.2497 4.4646 15.4759 3.69078C14.7021 2.91696 13.7834 2.30313 12.7724 1.88434C11.7613 1.46555 10.6777 1.25 9.58333 1.25Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M9.91601 4.51787C8.98167 4.42606 8.05144 4.69097 7.36309 5.24472C6.68735 5.78828 6.2998 6.56661 6.2998 7.38012H7.92488C7.92488 6.97463 8.11059 6.60187 8.44779 6.33061C8.79784 6.049 9.25647 5.92005 9.73896 5.96755C10.4832 6.04076 11.0828 6.57277 11.1647 7.23265C11.2306 7.764 10.9661 8.28194 10.4744 8.58426C9.38676 9.25303 8.73742 10.343 8.73742 11.5H10.3625C10.3625 10.8243 10.7477 10.184 11.3929 9.78733C12.3808 9.17985 12.9122 8.13913 12.7798 7.07124C12.6144 5.73863 11.41 4.66476 9.91601 4.51787Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:Object.assign({},e.tooltipStyle,{maxWidth:e.maxWidth})},[e._v(" "+e._s(e.hint)+" ")])])},_=[],q=(i("1276"),{data:function(){return{tooltipStyle:{visibility:"hidden"}}},computed:{tooltipElement:function(){return this.$refs.tooltip}},methods:{showTooltip:function(e,t){var i=t?t.split("-"):["top","right"],n=12;"top"===i[0]?this.tooltipStyle.top=e.clientY-n+"px":this.tooltipStyle.top=e.clientY+n+"px","right"===i[1]?this.tooltipStyle.left=e.clientX+n+"px":this.tooltipStyle.left=e.clientX-n-this.tooltipElement.offsetWidth+"px",this.tooltipStyle.visibility="visible"},hideTooltip:function(){this.tooltipStyle.visibility="hidden"}}}),V={name:"HintIcon",props:["hint","maxWidth"],mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},R=V,B=(i("80ad"),Object(s["a"])(R,P,_,!1,null,"30581f31",null)),G=B.exports,H={name:"textField",props:["placeholder","label","errorMsg","value","width","hint","maxHintWidth","disabled"],components:{HintIcon:G}},$=H,W=(i("daef"),Object(s["a"])($,Y,Z,!1,null,"59fd41a8",null)),F=W.exports,J=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"db-uploader-container",style:{width:e.width}},["small"===e.type?n("change-db-icon",{on:{click:e.browse}}):e._e(),"illustrated"===e.type?n("div",{staticClass:"drop-area-container"},[n("div",{staticClass:"drop-area",on:{dragover:function(t){t.preventDefault(),e.state="dragover"},dragleave:function(t){t.preventDefault(),e.state=""},drop:function(t){return t.preventDefault(),e.drop(t)},click:e.browse}},[n("div",{staticClass:"text"},[e._v(" Drop the database or CSV file here or click to choose a file from your computer. ")])])]):e._e(),"illustrated"===e.type?n("div",{attrs:{id:"img-container"}},[n("img",{attrs:{id:"drop-file-top-img",src:i("3a016")}}),n("img",{class:{swing:"dragover"===e.state},attrs:{id:"left-arm-img",src:i("9bf4")}}),n("img",{ref:"fileImg",class:{swing:"dragover"===e.state,fly:"dropping"===e.state,hidden:"dropped"===e.state},attrs:{id:"file-img",src:i("87d4")}}),n("img",{attrs:{id:"drop-file-bottom-img",src:i("6a0b")}}),n("img",{attrs:{id:"body-img",src:i("1678")}}),n("img",{class:{swing:"dragover"===e.state},attrs:{id:"right-arm-img",src:i("2335")}})]):e._e(),n("div",{staticClass:"error",attrs:{id:"error"}}),n("csv-import",{ref:"addCsv",attrs:{file:e.file,db:e.newDb,"dialog-name":"importFromCsv"},on:{cancel:e.cancelCsvImport,finish:e.finish}})],1)},X=[],K=(i("2ca0"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("svg",{staticClass:"db-edit-icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M3 10.5V12.75C3 14.25 5.2875 15.54 8.25 15.75V13.5825L8.3475 13.5C5.34 13.32 3 12.045 3 10.5ZM9 9.75C5.685 9.75 3 8.4075 3 6.75V9C3 10.6575 5.685 12 9 12C9.2925 12 9.5775 12 9.87 12L12.75 9.09C11.55 9.54 10.2825 9.75 9 9.75ZM9 2.25C5.685 2.25 3 3.5925 3 5.25C3 6.9075 5.685 8.25 9 8.25C12.315 8.25 15 6.9075 15 5.25C15 3.5925 12.315 2.25 9 2.25ZM15.75 8.3475C15.6375 8.3475 15.5325 8.3925 15.4575 8.475L14.7075 9.225L16.245 10.725L16.995 9.975C17.1525 9.825 17.16 9.57 16.995 9.3975L16.065 8.475C15.99 8.3925 15.885 8.3475 15.78 8.3475H15.75ZM14.28 9.66L9.75 14.205V15.75H11.295L15.84 11.1975L14.28 9.66Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Load another database or CSV ")])])}),ee=[],te={name:"changeDbIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},ie=te,ne=(i("637d"),Object(s["a"])(ie,K,ee,!1,null,"2c7f445c",null)),ae=ne.exports,re=i("d4ec"),se=i("bee2"),oe=(i("159b"),i("53ca")),ce=i("3835"),le=(i("d81d"),i("b64b"),i("fb6a"),i("99af"),i("6283")),ue=i.n(le),de={generateChunks:regeneratorRuntime.mark((function e(t,i){var n,a,r,s,o,c,l,u;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:n=Object.keys(t).map((function(e){return t[e]})),a=Object(ce["a"])(n,1),r=a[0],s=r.map((function(e,t){return n.map((function(e){return e[t]}))})),o=Math.ceil(s.length/i),c=0;case 5:if(!(c<=o-1)){e.next=13;break}return l=i*c,u=l+i,e.next=10,s.slice(l,u);case 10:c++,e.next=5;break;case 13:case"end":return e.stop()}}),e)})),getInsertStmt:function(e,t){var i='"'.concat(t.join('", "'),'"'),n=t.map((function(){return"?"})).join(", ");return'INSERT INTO "'.concat(e,'" (').concat(i,") VALUES (").concat(n,");")},getCreateStatement:function(e,t){var i='CREATE table "'.concat(e,'"(');for(var n in t){var a=t[n][0],r="";switch(Object(oe["a"])(a)){case"number":r="REAL";break;case"boolean":r="INTEGER";break;case"string":r="TEXT";break;default:r="TEXT"}i+='"'.concat(n,'" ').concat(r,", ")}return i=i.replace(/,\s$/,");"),i},getAst:function(e){var t=e.replace(/(tokenize=[^,]+)"tokenchars=.+?"/,"$1").replace(/(tokenize=[^,]+)"remove_diacritics=.+?"/,"$1").replace(/(tokenize=[^,]+)"separators=.+?"/,"$1").replace(/tokenize=.+?(,|\))/,"tokenize=unicode61$1");return ue()(t)},getColumns:function(e){var t=[],i=this.getAst(e),n="table"===i.statement[0].format?i.statement[0].definition:i.statement[0].result.args.expression;return n.forEach((function(e){if("column"===e.variant&&["identifier","definition"].includes(e.type)){var i=e.datatype?e.datatype.variant:"N/A";e.datatype&&e.datatype.args&&(i=i+"("+e.datatype.args.expression[0].value,2===e.datatype.args.expression.length&&(i=i+", "+e.datatype.args.expression[1].value),i+=")"),t.push({name:e.name,type:i})}})),t}};function Me(){return new Worker(i.p+"js/_worker.5e0dd41a.worker.js")}var ge=i("ebb0"),pe=i.n(ge);function he(){var e=new Me;return new Ne(e)}var Ie={getNewDatabase:he},me=0,Ne=function(){function e(t){var i=this;Object(re["a"])(this,e),this.dbName=null,this.schema=null,this.worker=t,this.pw=new pe.a(t),this.importProgresses={},t.addEventListener("message",(function(e){var t=e.data.progress;if(void 0!==t){var n=e.data.id;i.importProgresses[n].dispatchEvent(new CustomEvent("progress",{detail:t}))}}))}return Object(se["a"])(e,[{key:"shutDown",value:function(){this.worker.terminate()}},{key:"createProgressCounter",value:function(e){var t=me++;return this.importProgresses[t]=new EventTarget,this.importProgresses[t].addEventListener("progress",(function(t){e(t.detail)})),t}},{key:"deleteProgressCounter",value:function(e){delete this.importProgresses[e]}},{key:"addTableFromCsv",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t,i,n){var a;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.pw.postMessage({action:"import",data:i,progressCounterId:n,tabName:t});case 2:if(a=e.sent,!a.error){e.next=5;break}throw new Error(a.error);case 5:this.dbName=this.dbName||"database",this.refreshSchema();case 7:case"end":return e.stop()}}),e,this)})));function t(t,i,n){return e.apply(this,arguments)}return t}()},{key:"loadDb",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){var i,n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!t){e.next=6;break}return e.next=3,C.readAsArrayBuffer(t);case 3:e.t0=e.sent,e.next=7;break;case 6:e.t0=null;case 7:return i=e.t0,e.next=10,this.pw.postMessage({action:"open",buffer:i});case 10:if(n=e.sent,!n.error){e.next=13;break}throw new Error(n.error);case 13:this.dbName=t?C.getFileName(t):"database",this.refreshSchema();case 15:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"refreshSchema",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(){var t,i,n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return t="\n SELECT name, sql\n FROM sqlite_master\n WHERE type='table' AND name NOT LIKE 'sqlite_%';\n ",e.next=3,this.execute(t);case 3:i=e.sent,n=[],i&&i.name&&i.name.forEach((function(e,t){n.push({name:e,columns:de.getColumns(i.sql[t])})})),this.schema=n;case 7:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"execute",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){var i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.pw.postMessage({action:"reopen"});case 2:return e.next=4,this.pw.postMessage({action:"exec",sql:t});case 4:if(i=e.sent,!i.error){e.next=7;break}throw new Error(i.error);case 7:return e.abrupt("return",i[i.length-1]);case 8:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"export",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){var i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.pw.postMessage({action:"export"});case 2:if(i=e.sent,!i.error){e.next=5;break}throw new Error(i.error);case 5:C.exportToFile(i,t);case 6:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"validateTableName",value:function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(!t.startsWith("sqlite_")){e.next=2;break}throw new Error("Table name can't start with sqlite_");case 2:if(!/[^\w]/.test(t)){e.next=4;break}throw new Error("Table name can contain only letters, digits and underscores");case 4:if(!/^(\d)/.test(t)){e.next=6;break}throw new Error("Table name can't start with a digit");case 6:return e.next=8,this.execute('BEGIN; CREATE TABLE "'.concat(t,'"(id); ROLLBACK;'));case 8:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"sanitizeTableName",value:function(e){return e.replace(/[^\w]/g,"_").replace(/^(\d)/,"_$1").replace(/_{2,}/g,"_")}}]),e}(),fe=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("modal",{attrs:{name:e.dialogName,classes:"dialog",height:"auto",width:"80%",scrollable:"",clickToClose:!1}},[i("div",{staticClass:"dialog-header"},[e._v(" CSV import "),i("close-icon",{attrs:{disabled:e.disableDialog},on:{click:e.cancelCsvImport}})],1),i("div",{staticClass:"dialog-body"},[i("text-field",{attrs:{label:"Table name",width:"484px",disabled:e.disableDialog,"error-msg":e.tableNameError,id:"csv-table-name"},model:{value:e.tableName,callback:function(t){e.tableName=t},expression:"tableName"}}),i("div",{staticClass:"chars"},[i("delimiter-selector",{staticClass:"char-input",attrs:{width:"210px",disabled:e.disableDialog},on:{input:e.previewCsv},model:{value:e.delimiter,callback:function(t){e.delimiter=t},expression:"delimiter"}}),i("text-field",{staticClass:"char-input",attrs:{label:"Quote char",hint:"The character used to quote fields.",width:"93px",disabled:e.disableDialog,id:"quote-char"},model:{value:e.quoteChar,callback:function(t){e.quoteChar=t},expression:"quoteChar"}}),i("text-field",{staticClass:"char-input",attrs:{label:"Escape char",hint:'The character used to escape the quote character within a field (e.g. "column with ""quotes"" in text").',"max-hint-width":"242px",width:"93px",disabled:e.disableDialog,id:"escape-char"},model:{value:e.escapeChar,callback:function(t){e.escapeChar=t},expression:"escapeChar"}})],1),i("check-box",{attrs:{init:!0,label:"Use first row as column headers",disabled:e.disableDialog},on:{click:function(t){e.header=t}}}),e.previewData&&(e.previewData.rowCount>0||Object.keys(e.previewData).length>0)?i("sql-table",{staticClass:"preview-table",attrs:{"data-set":e.previewData,preview:!0}}):i("div",{staticClass:"no-data"},[e._v("No data")]),i("logs",{staticClass:"import-csv-errors",attrs:{messages:e.importCsvMessages}})],1),i("div",{staticClass:"dialog-buttons-container"},[i("button",{staticClass:"secondary",attrs:{disabled:e.disableDialog,id:"csv-cancel"},on:{click:e.cancelCsvImport}},[e._v(" Cancel ")]),i("button",{directives:[{name:"show",rawName:"v-show",value:!e.importCsvCompleted,expression:"!importCsvCompleted"}],staticClass:"primary",attrs:{disabled:e.disableDialog,id:"csv-import"},on:{click:function(t){return e.loadFromCsv(e.file)}}},[e._v(" Import ")]),i("button",{directives:[{name:"show",rawName:"v-show",value:e.importCsvCompleted,expression:"importCsvCompleted"}],staticClass:"primary",attrs:{disabled:e.disableDialog,id:"csv-finish"},on:{click:e.finish}},[e._v(" Finish ")])])])},ve=[],De=(i("498a"),i("369b")),je=i.n(De),ye={MissingQuotes:"Edit your CSV so that the field has a closing quote char.",TooFewFields:"Add fields or try another delimiter.",TooManyFields:"Edit your CSV or try another delimiter."},be={getResult:function(e){var t={};if(e.meta.fields)e.meta.fields.forEach((function(i){t[i.trim()]=e.data.map((function(e){var t=e[i];return t instanceof Date&&(t=t.toISOString()),t}))}));else for(var i=function(i){t["col".concat(i+1)]=e.data.map((function(e){var t=e[i];return t instanceof Date&&(t=t.toISOString()),t}))},n=0;n<=e.data[0].length-1;n++)i(n);return t},parse:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(n,a){var r={delimiter:"",newline:"",quoteChar:'"',escapeChar:'"',header:!1,transformHeader:void 0,dynamicTyping:!0,preview:0,encoding:"UTF-8",worker:!0,comments:!1,step:void 0,complete:function(e){var i={data:t.getResult(e),delimiter:e.meta.delimiter,hasErrors:!1,rowCount:e.data.length};i.messages=e.errors.map((function(e){return e.type="UndetectableDelimiter"===e.code?"info":"error","error"===e.type&&(i.hasErrors=!0),e.hint=ye[e.code],e})),n(i)},error:function(e,t){a(e)},download:!1,downloadRequestHeaders:void 0,downloadRequestBody:void 0,skipEmptyLines:"greedy",chunk:void 0,chunkSize:void 0,fastMode:void 0,beforeFirstChunk:void 0,withCredentials:void 0,transform:void 0,delimitersToGuess:[",","\t","|",";",je.a.RECORD_SEP,je.a.UNIT_SEP]};je.a.parse(e,Object(I["a"])(Object(I["a"])({},r),i))}))}},Ce=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["icon",{disabled:e.disabled}],attrs:{width:e.size,height:e.size,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},on:{click:function(t){return t.stopPropagation(),e.$emit("click")}}},[i("path",{attrs:{d:"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z",fill:"#A2B1C6"}})])},ze=[],Te=(i("a9e3"),{name:"CloseIcon",props:{size:{type:Number,required:!1,default:14},disabled:{type:Boolean,required:!1,default:!1}}}),we=Te,xe=(i("f4da"),Object(s["a"])(we,Ce,ze,!1,null,"86f3a16c",null)),Oe=xe.exports,Ae=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:{disabled:e.disabled}},[i("div",{staticClass:"text-field-label"},[e._v("Delimiter")]),i("div",{staticClass:"delimiter-selector-container",style:{width:e.width},on:{click:e.onContainerClick}},[i("div",{staticClass:"value"},[i("input",{directives:[{name:"model",rawName:"v-model",value:e.inputValue,expression:"inputValue"}],ref:"delimiterInput",class:{filled:e.filled},attrs:{type:"text",maxlength:"1",disabled:e.disabled},domProps:{value:e.inputValue},on:{click:function(e){e.stopPropagation()},input:function(t){t.target.composing||(e.inputValue=t.target.value)}}}),i("div",{staticClass:"name"},[e._v(e._s(e.getSymbolName(e.value)))])]),i("div",{staticClass:"controls",on:{click:function(e){e.stopPropagation()}}},[i("clear-icon",{attrs:{disabled:e.disabled},nativeOn:{click:function(t){return e.clear(t)}}}),i("drop-down-chevron",{attrs:{disabled:e.disabled},nativeOn:{click:function(t){!e.disabled&&(e.showOptions=!e.showOptions)}}})],1)]),i("div",{directives:[{name:"show",rawName:"v-show",value:e.showOptions,expression:"showOptions"}],staticClass:"options",style:{width:e.width}},e._l(e.options,(function(t,n){return i("div",{key:n,staticClass:"option",on:{click:function(i){return e.chooseOption(t)}}},[i("pre",[e._v(e._s(t))]),i("div",[e._v(e._s(e.getSymbolName(t)))])])})),0)])},Le=[],ke=(i("25f0"),{0:{name:"null character"},1:{name:"start of header"},2:{name:"start of text"},3:{name:"end of text"},4:{name:"end of transmission"},5:{name:"enquiry"},6:{name:"acknowledge"},7:{name:"bell (ring)"},8:{name:"backspace"},9:{name:"horizontal tab"},10:{name:"line feed"},11:{name:"vertical tab"},12:{name:"form feed"},13:{name:"carriage return"},14:{name:"shift out"},15:{name:"shift in"},16:{name:"data link escape"},17:{name:"device control 1"},18:{name:"device control 2"},19:{name:"device control 3"},20:{name:"device control 4"},21:{name:"negative acknowledge"},22:{name:"synchronize"},23:{name:"end transmission block"},24:{name:"cancel"},25:{name:"end of medium"},26:{name:"substitute"},27:{name:"escape"},28:{name:"file separator"},29:{name:"group separator"},30:{name:"record separator"},31:{name:"unit separator"},32:{name:"space"},33:{name:"exclamation mark"},34:{name:"quotation mark"},35:{name:"number sign"},36:{name:"dollar sign"},37:{name:"percent sign"},38:{name:"ampersand"},39:{name:"apostrophe"},40:{name:"left parenthesis"},41:{name:"right parenthesis"},42:{name:"asterisk"},43:{name:"plus sign"},44:{name:"comma"},45:{name:"hyphen"},46:{name:"period"},47:{name:"slash"},48:{name:"digit 0"},49:{name:"digit 1"},50:{name:"digit 2"},51:{name:"digit 3"},52:{name:"digit 4"},53:{name:"digit 5"},54:{name:"digit 6"},55:{name:"digit 7"},56:{name:"digit 8"},57:{name:"digit 9"},58:{name:"colon"},59:{name:"semicolon"},60:{name:"less-than"},61:{name:"equals-to"},62:{name:"greater-than"},63:{name:"question mark"},64:{name:"at sign"},65:{name:"uppercase A"},66:{name:"uppercase B"},67:{name:"uppercase C"},68:{name:"uppercase D"},69:{name:"uppercase E"},70:{name:"uppercase F"},71:{name:"uppercase G"},72:{name:"uppercase H"},73:{name:"uppercase I"},74:{name:"uppercase J"},75:{name:"uppercase K"},76:{name:"uppercase L"},77:{name:"uppercase M"},78:{name:"uppercase N"},79:{name:"uppercase O"},80:{name:"uppercase P"},81:{name:"uppercase Q"},82:{name:"uppercase R"},83:{name:"uppercase S"},84:{name:"uppercase T"},85:{name:"uppercase U"},86:{name:"uppercase V"},87:{name:"uppercase W"},88:{name:"uppercase X"},89:{name:"uppercase Y"},90:{name:"uppercase Z"},91:{name:"left square bracket"},92:{name:"backslash"},93:{name:"right square bracket"},94:{name:"caret"},95:{name:"underscore"},96:{name:"grave accent"},97:{name:"lowercase a"},98:{name:"lowercase b"},99:{name:"lowercase c"},100:{name:"lowercase d"},101:{name:"lowercase e"},102:{name:"lowercase f"},103:{name:"lowercase g"},104:{name:"lowercase h"},105:{name:"lowercase i"},106:{name:"lowercase j"},107:{name:"lowercase k"},108:{name:"lowercase l"},109:{name:"lowercase m"},110:{name:"lowercase n"},111:{name:"lowercase o"},112:{name:"lowercase p"},113:{name:"lowercase q"},114:{name:"lowercase r"},115:{name:"lowercase s"},116:{name:"lowercase t"},117:{name:"lowercase u"},118:{name:"lowercase v"},119:{name:"lowercase w"},120:{name:"lowercase x"},121:{name:"lowercase y"},122:{name:"lowercase z"},123:{name:"left curly brace"},124:{name:"vertical bar"},125:{name:"right curly brace"},126:{name:"tilde"},127:{name:"delete (rubout)"}}),Ee=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["chevron-icon",{disabled:e.disabled}],attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[i("path",{attrs:{d:"M6.175 7.15002L10 10.975L13.825 7.15002L15 8.33336L10 13.3334L5 8.33336L6.175 7.15002Z",fill:"#C8D4E3"}})])},Se=[],Qe={name:"DropDownChevron",props:["disabled"]},Ue=Qe,Ye=(i("493e"),Object(s["a"])(Ue,Ee,Se,!1,null,"29bdb7bf",null)),Ze=Ye.exports,Pe=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["clear-icon",{disabled:e.disabled}],attrs:{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[i("path",{attrs:{d:"M14.3481 14.849C13.8791 15.318 13.1191 15.318 12.6511 14.849L10.0001 11.819L7.34907 14.848C6.88007 15.317 6.12007 15.317 5.65207 14.848C5.18307 14.379 5.18307 13.619 5.65207 13.151L8.41007 10.001L5.65107 6.84898C5.18207 6.37998 5.18207 5.62098 5.65107 5.15198C6.12007 4.68298 6.87907 4.68298 7.34807 5.15198L10.0001 8.18298L12.6511 5.15198C13.1201 4.68298 13.8791 4.68298 14.3481 5.15198C14.8171 5.62098 14.8171 6.38098 14.3481 6.84898L11.5901 10.001L14.3481 13.151C14.8171 13.62 14.8171 14.38 14.3481 14.849V14.849Z",fill:"#C8D4E3"}})])},_e=[],qe={name:"ClearIcon",props:["disabled"]},Ve=qe,Re=(i("f7a6"),Object(s["a"])(Ve,Pe,_e,!1,null,"69060e4e",null)),Be=Re.exports,Ge={name:"DelimiterSelector",props:["value","width","disabled"],components:{DropDownChevron:Ze,ClearIcon:Be},data:function(){return{showOptions:!1,options:[",","\t"," ","|",";","",""],filled:!1,inputValue:""}},watch:{inputValue:function(){this.inputValue?(this.filled=!0,this.inputValue!==this.value&&this.$emit("input",this.inputValue)):this.filled=!1}},created:function(){this.inputValue=this.value},methods:{getSymbolName:function(e){return e?ke[e.charCodeAt(0).toString()].name:""},chooseOption:function(e){this.inputValue=e,this.showOptions=!1},onContainerClick:function(e){this.$refs.delimiterInput.focus()},clear:function(){this.disabled||(this.inputValue="",this.$refs.delimiterInput.focus())}}},He=Ge,$e=(i("28f9"),Object(s["a"])(He,Ae,Le,!1,null,"44b0b048",null)),We=$e.exports,Fe=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:["checkbox-container",{checked:e.checked},{disabled:e.disabled}],on:{click:function(t){return t.stopPropagation(),e.onClick(t)}}},[n("div",{directives:[{name:"show",rawName:"v-show",value:!e.checked,expression:"!checked"}],staticClass:"unchecked"}),n("img",{directives:[{name:"show",rawName:"v-show",value:e.checked&&!e.disabled,expression:"checked && !disabled"}],attrs:{src:"light"===e.theme?i("69e6"):i("93dd")}}),n("img",{directives:[{name:"show",rawName:"v-show",value:e.checked&&e.disabled,expression:"checked && disabled"}],attrs:{src:i("3d10")}}),e.label?n("span",{staticClass:"label"},[e._v(e._s(e.label))]):e._e()])},Je=[],Xe={name:"CheckBox",props:{theme:{type:String,required:!1,default:"accent",validator:function(e){return["accent","light"].includes(e)}},init:{type:Boolean,required:!1,default:!1},label:{type:String,required:!1,default:""},disabled:{type:Boolean,required:!1,default:!1}},data:function(){return{checked:this.init}},methods:{onClick:function(){this.disabled||(this.checked=!this.checked,this.$emit("click",this.checked))}}},Ke=Xe,et=(i("a96d"),Object(s["a"])(Ke,Fe,Je,!1,null,"0dd86013",null)),tt=et.exports,it=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("div",{staticClass:"rounded-bg"},[i("div",{ref:"header-container",staticClass:"header-container"},[i("div",e._l(e.header,(function(t,n){return i("div",{key:n,staticClass:"fixed-header",style:{width:t.width+"px"}},[e._v(" "+e._s(t.name)+" ")])})),0)]),i("div",{ref:"table-container",staticClass:"table-container",on:{scroll:e.onScrollTable}},[i("table",{ref:"table",staticClass:"sqliteviz-table"},[i("thead",[i("tr",e._l(e.columns,(function(t,n){return i("th",{key:n,ref:"th",refInFor:!0},[i("div",{staticClass:"cell-data",style:e.cellStyle},[e._v(e._s(t))])])})),0)]),i("tbody",e._l(e.currentPageData.count,(function(t){return i("tr",{key:t},e._l(e.columns,(function(n,a){return i("td",{key:a},[i("div",{staticClass:"cell-data",style:e.cellStyle},[e._v(" "+e._s(e.dataSet[n][t-1+e.currentPageData.start])+" ")])])})),0)})),0)])])]),i("div",{staticClass:"table-footer"},[i("div",{staticClass:"table-footer-count"},[e._v(" "+e._s(e.rowCount)+" "+e._s(1===e.rowCount?"row":"rows")+" retrieved "),e.preview?i("span",[e._v("for preview")]):e._e(),e.time?i("span",[e._v("in "+e._s(e.time))]):e._e()]),i("pager",{directives:[{name:"show",rawName:"v-show",value:e.pageCount>1,expression:"pageCount > 1"}],attrs:{"page-count":e.pageCount},model:{value:e.currentPage,callback:function(t){e.currentPage=t},expression:"currentPage"}})],1)])},nt=[],at=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("paginate",{attrs:{"page-count":e.pageCount,"page-range":5,"margin-pages":1,"prev-text":e.chevron,"next-text":e.chevron,"no-li-surround":!0,"container-class":"paginator-continer","page-link-class":"paginator-page-link","active-class":"paginator-active-page","break-view-link-class":"paginator-break","next-link-class":"paginator-next","prev-link-class":"paginator-prev","disabled-class":"paginator-disabled"},model:{value:e.page,callback:function(t){e.page=t},expression:"page"}})},rt=[],st=i("8832"),ot=i.n(st),ct={name:"Pager",components:{Paginate:ot.a},props:["pageCount","value"],data:function(){return{page:this.value,chevron:'\n \n \n \n '}},watch:{page:function(){this.$emit("input",this.page)},value:function(){this.page=this.value}}},lt=ct,ut=(i("fc07"),Object(s["a"])(lt,at,rt,!1,null,"658886c7",null)),dt=ut.exports,Mt={name:"SqlTable",components:{Pager:dt},props:{dataSet:Object,time:String,pageSize:{type:Number,default:20},preview:Boolean},data:function(){return{header:null,tableWidth:null,currentPage:1,resizeObserver:null}},computed:{columns:function(){return Object.keys(this.dataSet)},rowCount:function(){return this.dataSet[this.columns[0]].length},cellStyle:function(){var e=this.tableWidth/this.columns.length;return{maxWidth:"".concat(Math.max(e,100),"px")}},pageCount:function(){return Math.ceil(this.rowCount/this.pageSize)},currentPageData:function(){var e=(this.currentPage-1)*this.pageSize,t=e+this.pageSize;return t>this.rowCount-1&&(t=this.rowCount-1),{start:e,end:t,count:t-e+1}}},methods:{calculateHeadersWidth:function(){var e=this;this.tableWidth=this.$refs["table-container"].offsetWidth,this.$nextTick((function(){e.header=e.$refs.th.map((function(e){return{name:e.innerText,width:e.getBoundingClientRect().width}}))}))},onScrollTable:function(){this.$refs["header-container"].scrollLeft=this.$refs["table-container"].scrollLeft}},mounted:function(){this.resizeObserver=new ResizeObserver(this.calculateHeadersWidth),this.resizeObserver.observe(this.$refs.table),this.calculateHeadersWidth()},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.table)},watch:{currentPageData:"calculateHeadersWidth",dataSet:function(){this.currentPage=1}}},gt=Mt,pt=Object(s["a"])(gt,it,nt,!1,null,"115cb541",null),ht=pt.exports,It=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"logsContainer",staticClass:"logs-container"},e._l(e.messages,(function(t,a){return n("div",{key:a,staticClass:"msg"},["error"===t.type?n("img",{attrs:{src:i("7314")}}):e._e(),"info"===t.type?n("img",{attrs:{src:i("db39"),width:"20px"}}):e._e(),"success"===t.type?n("img",{attrs:{src:i("0bf4")}}):e._e(),"loading"===t.type?n("loading-indicator",{attrs:{progress:t.progress}}):e._e(),n("span",{staticClass:"msg-text"},[e._v(e._s(e.serializeMessage(t)))])],1)})),0)},mt=[],Nt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:e.animationClass,attrs:{height:e.size,width:e.size,viewBox:"0 0 "+e.size+" "+e.size}},[i("circle",{staticClass:"loader-svg bg",style:{strokeWidth:e.strokeWidth},attrs:{cx:e.size/2,cy:e.size/2,r:e.radius}}),i("circle",{staticClass:"loader-svg front",style:{strokeDasharray:e.circleProgress,strokeDashoffset:e.offset,strokeWidth:e.strokeWidth},attrs:{cx:e.size/2,cy:e.size/2,r:e.radius}})])},ft=[],vt={name:"LoadingIndicator",props:{progress:{type:Number,required:!1},size:{type:Number,required:!1,default:20}},computed:{circleProgress:function(){var e=3.14*this.radius*2,t=this.progress?e*this.progress/100:1*e/3,i=e-t;return"".concat(t,"px, ").concat(i,"px")},animationClass:function(){return void 0===this.progress?"loading":"progress"},radius:function(){return this.size/2-this.strokeWidth},offset:function(){return 3.14*this.radius/2},strokeWidth:function(){return this.size/10}}},Dt=vt,jt=(i("d9ad"),Object(s["a"])(Dt,Nt,ft,!1,null,"62096452",null)),yt=jt.exports,bt={name:"logs",props:["messages"],components:{LoadingIndicator:yt},watch:{"messages.length":"scrollToBottom"},mounted:function(){this.scrollToBottom()},methods:{scrollToBottom:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(i=e.$refs.logsContainer,!i){t.next=5;break}return t.next=4,e.$nextTick();case 4:i.scrollTop=i.scrollHeight;case 5:case"end":return t.stop()}}),t)})))()},serializeMessage:function(e){var t="";return null!==e.row&&void 0!==e.row&&("error"===e.type?t+="Error in row ".concat(e.row,". "):t+="Information about row ".concat(e.row,". ")),t+=e.message,/(\.|!|\?)$/.test(t)||(t+="."),e.hint&&(t+=" ".concat(e.hint)),t}}},Ct=bt,zt=(i("0582"),Object(s["a"])(Ct,It,mt,!1,null,"1c9f27dc",null)),Tt=zt.exports,wt=(i("b680"),{getPeriod:function(e,t){var i=t.getTime()-e.getTime(),n=i/1e3;return n.toFixed(3)+"s"},debounce:function(e,t){var i;return function(){var n=arguments,a=this;clearTimeout(i),i=setTimeout((function(){return e.apply(a,n)}),t)}}}),xt={name:"CsvImport",components:{CloseIcon:Oe,TextField:F,DelimiterSelector:We,CheckBox:tt,SqlTable:ht,Logs:Tt},props:["file","db","dialogName"],data:function(){return{disableDialog:!1,tableName:"",delimiter:"",quoteChar:'"',escapeChar:'"',header:!0,importCsvCompleted:!1,importCsvMessages:[],previewData:null,addedTable:null,tableNameError:""}},watch:{quoteChar:function(){this.previewCsv()},escapeChar:function(){this.previewCsv()},header:function(){this.previewCsv()},tableName:wt.debounce((function(){var e=this;this.tableNameError="",this.tableName&&this.db.validateTableName(this.tableName).catch((function(t){e.tableNameError=t.message+". Try another table name."}))}),400)},methods:{cancelCsvImport:function(){this.disableDialog||(this.addedTable&&(this.db.execute('DROP TABLE "'.concat(this.addedTable,'"')),this.db.refreshSchema()),this.$modal.hide(this.dialogName),this.$emit("cancel"))},reset:function(){this.header=!0,this.quoteChar='"',this.escapeChar='"',this.delimiter="",this.tableName="",this.disableDialog=!1,this.importCsvCompleted=!1,this.importCsvMessages=[],this.previewData=null,this.addedTable=null,this.tableNameError=""},open:function(){this.tableName=this.db.sanitizeTableName(C.getFileName(this.file)),this.$modal.show(this.dialogName)},previewCsv:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n,a,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.importCsvCompleted=!1,i={preview:3,quoteChar:e.quoteChar||'"',escapeChar:e.escapeChar,header:e.header,delimiter:e.delimiter},t.prev=2,n=new Date,t.next=6,be.parse(e.file,i);case 6:a=t.sent,r=new Date,e.previewData=a.data,e.delimiter=a.delimiter,e.importCsvMessages=a.messages||[],a.hasErrors||e.importCsvMessages.push({message:"Preview parsing is completed in ".concat(wt.getPeriod(n,r),"."),type:"success"}),t.next=17;break;case 14:t.prev=14,t.t0=t["catch"](2),e.importCsvMessages=[{message:t.t0,type:"error"}];case 17:case"end":return t.stop()}}),t,null,[[2,14]])})))()},loadFromCsv:function(e){var t=this;return Object(u["a"])(regeneratorRuntime.mark((function e(){var i,n,a,r,s,o,c,l,u,d,M,g;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(t.tableName){e.next=3;break}return t.tableNameError="Table name can't be empty",e.abrupt("return");case 3:return t.disableDialog=!0,i={quoteChar:t.quoteChar||'"',escapeChar:t.escapeChar,header:t.header,delimiter:t.delimiter},n={message:"Parsing CSV...",type:"info"},t.importCsvMessages.push(n),a=setTimeout((function(){n.type="loading"}),1e3),r={message:"Importing CSV into a SQLite database...",type:"info"},s=null,o=function(e){t.$set(r,"progress",e)},c=t.db.createProgressCounter(o),e.prev=12,l=new Date,e.next=16,be.parse(t.file,i);case 16:if(u=e.sent,d=new Date,u.hasErrors){e.next=38;break}return M=u.rowCount,g=wt.getPeriod(l,d),n.type="success",u.messages.length>0?(t.importCsvMessages=t.importCsvMessages.concat(u.messages),n.message="".concat(M," rows are parsed in ").concat(g,".")):n.message="".concat(M," rows are parsed successfully in ").concat(g,"."),clearTimeout(a),t.importCsvMessages.push(r),s=setTimeout((function(){r.type="loading"}),1e3),l=new Date,e.next=29,t.db.addTableFromCsv(t.tableName,u.data,c);case 29:d=new Date,t.addedTable=t.tableName,g=wt.getPeriod(l,d),r.message="Importing CSV into a SQLite database is completed in ".concat(g,"."),r.type="success",clearTimeout(s),t.importCsvCompleted=!0,e.next=41;break;case 38:n.message="Parsing ended with errors.",n.type="info",t.importCsvMessages=t.importCsvMessages.concat(u.messages);case 41:e.next=48;break;case 43:e.prev=43,e.t0=e["catch"](12),"loading"===n.type&&(n.type="info"),"loading"===r.type&&(r.type="info"),t.importCsvMessages.push({message:e.t0,type:"error"});case 48:clearTimeout(a),clearTimeout(s),t.db.deleteProgressCounter(c),t.disableDialog=!1;case 52:case"end":return e.stop()}}),e,null,[[12,43]])})))()},finish:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.$modal.hide(e.dialogName),i=["/*"," * Your CSV file has been imported into ".concat(e.addedTable," table.")," * You can run this SQL query to make all CSV records available for charting."," */",'SELECT * FROM "'.concat(e.addedTable,'"')].join("\n"),t.next=4,e.$store.dispatch("addTab",{query:i});case 4:n=t.sent,e.$store.commit("setCurrentTabId",n),e.importCsvCompleted=!1,e.$emit("finish");case 8:case"end":return t.stop()}}),t)})))()}}},Ot=xt,At=(i("c4dc"),Object(s["a"])(Ot,fe,ve,!1,null,"68ef9d6c",null)),Lt=At.exports,kt={name:"DbUploader",props:{type:{type:String,required:!1,default:"small",validator:function(e){return["illustrated","small"].includes(e)}},width:{type:String,required:!1,default:"unset"}},components:{ChangeDbIcon:ae,CsvImport:Lt},data:function(){return{state:"",animationPromise:Promise.resolve(),file:null,newDb:null}},mounted:function(){var e=this;"illustrated"===this.type&&(this.animationPromise=new Promise((function(t){e.$refs.fileImg.addEventListener("animationend",(function(i){i.animationName.startsWith("fly")&&(e.state="dropped",t())}))})))},methods:{cancelCsvImport:function(){this.newDb&&(this.newDb.shutDown(),this.newDb=null)},finish:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:e.$store.commit("setDb",e.newDb),"/workspace"!==e.$route.path&&e.$router.push("/workspace");case 2:case"end":return t.stop()}}),t)})))()},loadDb:function(e){return Promise.all([this.newDb.loadDb(e),this.animationPromise]).then(this.finish)},checkFile:function(e){var t=this;return Object(u["a"])(regeneratorRuntime.mark((function i(){var n;return regeneratorRuntime.wrap((function(i){while(1)switch(i.prev=i.next){case 0:if(t.state="dropping",t.newDb=Ie.getNewDatabase(),!C.isDatabase(e)){i.next=6;break}t.loadDb(e),i.next=12;break;case 6:return t.file=e,i.next=9,t.$nextTick();case 9:return n=t.$refs.addCsv,n.reset(),i.abrupt("return",Promise.all([n.previewCsv(),t.animationPromise]).then(n.open));case 12:case"end":return i.stop()}}),i)})))()},browse:function(){C.getFileFromUser(".db,.sqlite,.sqlite3,.csv").then(this.checkFile)},drop:function(e){this.checkFile(e.dataTransfer.files[0])}}},Et=kt,St=(i("3311"),Object(s["a"])(Et,J,X,!1,null,"eefa30c0",null)),Qt=St.exports,Ut=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:function(t){return e.showTooltip(t,e.tooltipPosition)},mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M10.5 1.5H4.5C3.675 1.5 3 2.175 3 3V15C3 15.825 3.675 16.5 4.5 16.5H13.5C14.325 16.5 15 15.825 15 15V6L10.5 1.5ZM13.5 15H4.5V3H9.75V6.75H13.5V15ZM12 8.25V13.575L10.425 12L8.325 14.1L6.225 12L8.325 9.9L6.675 8.25H12Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" "+e._s(e.tooltip)+" ")])])},Yt=[],Zt={name:"ExportIcon",mixins:[q],props:["tooltip","tooltipPosition"],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},Pt=Zt,_t=(i("0ee2"),Object(s["a"])(Pt,Ut,Yt,!1,null,"15bea4a0",null)),qt=_t.exports,Vt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("g",{attrs:{"clip-path":"url(#clip0)"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"\n M13.6573 1.5H2.59985C1.77485 1.5 1.09985 2.175 1.09985 3V13.6649C1.09985 14.4899\n 1.77485 15.1649 2.59985\n 15.1649H9.84V13.6649H8.87866V9.08244H13.6573V9.83777H15.1573V3C15.1573\n 2.17 14.4873 1.5 13.6573 1.5ZM13.6573\n 7.58244V3H8.87866V7.58244H13.6573ZM7.37866 3H2.59985V7.58244H7.37866V3ZM2.59985\n 9.08244V13.6649H7.37866V9.08244H2.59985ZM13.1702\n 10.8434H15.6702V13.1717H18.0001V15.6717H15.6702V18H13.1702V15.6717H10.8401V13.1717H13.1702V10.8434Z\n ",fill:"#A2B1C6"}})]),i("defs",[i("clipPath",{attrs:{id:"clip0"}},[i("rect",{attrs:{width:"18",height:"18",fill:"white"}})])])]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Add new table from CSV ")])])},Rt=[],Bt={name:"AddTableIcon",mixins:[q],props:["tooltip"],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},Gt=Bt,Ht=(i("1640"),Object(s["a"])(Gt,Vt,Rt,!1,null,"0b825a18",null)),$t=Ht.exports,Wt={name:"Schema",components:{TableDescription:U,TextField:F,TreeChevron:k,DbUploader:Qt,ExportIcon:qt,AddTableIcon:$t,CsvImport:Lt},data:function(){return{schemaVisible:!0,filter:null,file:null}},computed:{schema:function(){var e=this;return this.$store.state.db.schema?this.filter?this.$store.state.db.schema.filter((function(t){return-1!==t.name.toUpperCase().indexOf(e.filter.toUpperCase())})):this.$store.state.db.schema:[]},dbName:function(){return this.$store.state.db.dbName}},methods:{exportToFile:function(){this.$store.state.db.export("".concat(this.dbName,".sqlite"))},addCsv:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,C.getFileFromUser(".csv");case 2:return e.file=t.sent,t.next=5,e.$nextTick();case 5:return i=e.$refs.addCsv,i.reset(),t.next=9,i.previewCsv();case 9:i.open();case 10:case"end":return t.stop()}}),t)})))()}}},Ft=Wt,Jt=(i("20c1"),Object(s["a"])(Ft,y,b,!1,null,"3fcc3d82",null)),Xt=Jt.exports,Kt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"tabs"}},[e.tabs.length>0?i("div",{attrs:{id:"tabs-header"}},e._l(e.tabs,(function(t,n){return i("div",{key:n,class:[{"tab-selected":t.id===e.selectedIndex},"tab"],on:{click:function(i){return e.selectTab(t.id)}}},[i("div",{staticClass:"tab-name"},[i("span",{directives:[{name:"show",rawName:"v-show",value:!t.isSaved,expression:"!tab.isSaved"}],staticClass:"star"},[e._v("*")]),t.name?i("span",[e._v(e._s(t.name))]):i("span",{staticClass:"tab-untitled"},[e._v(e._s(t.tempName))])]),i("div",[i("close-icon",{staticClass:"close-icon",attrs:{size:10},on:{click:function(t){return e.beforeCloseTab(n)}}})],1)])})),0):e._e(),e._l(e.tabs,(function(e,t){return i("tab",{key:e.id,attrs:{id:e.id,"init-name":e.name,"init-query":e.query,"init-view-options":e.viewOptions,"init-view-type":e.viewType,"is-predefined":e.isPredefined,"tab-index":t}})})),i("div",{directives:[{name:"show",rawName:"v-show",value:0===e.tabs.length,expression:"tabs.length === 0"}],attrs:{id:"start-guide"}},[i("span",{staticClass:"link",on:{click:function(t){return e.$root.$emit("createNewInquiry")}}},[e._v("Create")]),e._v(" new inquiry from scratch or open one from "),i("router-link",{staticClass:"link",attrs:{to:"/inquiries"}},[e._v("Inquiries")])],1),i("modal",{attrs:{name:"close-warn",classes:"dialog",height:"auto"}},[i("div",{staticClass:"dialog-header"},[e._v(" Close tab "+e._s(null!==e.closingTabIndex?e.tabs[e.closingTabIndex].name||"["+e.tabs[e.closingTabIndex].tempName+"]":"")+" "),i("close-icon",{on:{click:function(t){return e.$modal.hide("close-warn")}}})],1),i("div",{staticClass:"dialog-body"},[e._v(" You have unsaved changes. Save changes in "+e._s(null!==e.closingTabIndex?e.tabs[e.closingTabIndex].name||"["+e.tabs[e.closingTabIndex].tempName+"]":"")+" before closing? ")]),i("div",{staticClass:"dialog-buttons-container"},[i("button",{staticClass:"secondary",on:{click:function(t){return e.closeTab(e.closingTabIndex)}}},[e._v(" Close without saving ")]),i("button",{staticClass:"secondary",on:{click:function(t){return e.$modal.hide("close-warn")}}},[e._v("Cancel")]),i("button",{staticClass:"primary",on:{click:function(t){return e.saveAndClose(e.closingTabIndex)}}},[e._v("Save and close")])])])],2)},ei=[],ti=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"show",rawName:"v-show",value:e.isActive,expression:"isActive"}],staticClass:"tab-content-container"},[i("splitpanes",{staticClass:"query-results-splitter",attrs:{horizontal:"",before:{size:50,max:100},after:{size:50,max:100}},scopedSlots:e._u([{key:"left-pane",fn:function(){return[i("div",{staticClass:"above",attrs:{id:"above-"+e.tabIndex}})]},proxy:!0},{key:"right-pane",fn:function(){return[i("div",{ref:"bottomPane",staticClass:"bottomPane",attrs:{id:"bottom-"+e.tabIndex}})]},proxy:!0}])}),i("div",{staticClass:"hidden-part",attrs:{id:"hidden-"+e.tabIndex}}),i("teleport",{attrs:{to:"#"+e.layout.sqlEditor+"-"+e.tabIndex}},[i("sql-editor",{ref:"sqlEditor",attrs:{"is-getting-results":e.isGettingResults},on:{switchTo:function(t){return e.onSwitchView("sqlEditor",t)},run:e.execute},model:{value:e.query,callback:function(t){e.query=t},expression:"query"}})],1),i("teleport",{attrs:{to:"#"+e.layout.table+"-"+e.tabIndex}},[i("run-result",{attrs:{result:e.result,"is-getting-results":e.isGettingResults,error:e.error,time:e.time},on:{switchTo:function(t){return e.onSwitchView("table",t)}}})],1),i("teleport",{attrs:{to:"#"+e.layout.dataView+"-"+e.tabIndex}},[i("data-view",{ref:"dataView",attrs:{"data-source":e.result,"init-options":e.initViewOptions,"init-mode":e.initViewType},on:{switchTo:function(t){return e.onSwitchView("dataView",t)},update:e.onDataViewUpdate}})],1)],1)},ii=[],ni=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"sql-editor-panel"},[i("div",{staticClass:"codemirror-container"},[i("codemirror",{ref:"cm",attrs:{options:e.cmOptions},on:{changes:e.onChange},model:{value:e.query,callback:function(t){e.query=t},expression:"query"}})],1),i("side-tool-bar",{attrs:{panel:"sqlEditor"},on:{switchTo:function(t){return e.$emit("switchTo",t)}}},[i("icon-button",{attrs:{disabled:e.runDisabled,loading:e.isGettingResults,tooltip:"Run SQL query","tooltip-position":"top-left"},on:{click:function(t){return e.$emit("run")}}},[i("run-icon",{attrs:{disabled:e.runDisabled}})],1)],1)],1)},ai=[],ri=i("56b3"),si=i.n(ri),oi=(i("9b74"),i("991c"),i("2f62")),ci={tabs:[],currentTab:null,currentTabId:null,untitledLastIndex:0,predefinedInquiries:[],db:null},li=(i("a434"),{setDb:function(e,t){e.db&&e.db.shutDown(),e.db=t},updateTab:function(e,t){var i=t.index,a=t.name,r=t.id,s=t.query,o=t.viewType,c=t.viewOptions,l=t.isSaved,u=e.tabs[i],d=u.id;r&&e.currentTabId===d&&(e.currentTabId=r),r&&(u.id=r),a&&(u.name=a),s&&(u.query=s),o&&(u.viewType=o),c&&(u.viewOptions=c),void 0!==l&&(u.isSaved=l),l&&delete u.isPredefined,n["default"].set(e.tabs,i,u)},deleteTab:function(e,t){e.tabs[t].id===e.currentTabId&&(t0?e.currentTabId=e.tabs[t-1].id:(e.currentTabId=null,e.currentTab=null,e.untitledLastIndex=0)),e.tabs.splice(t,1)},setCurrentTabId:function(e,t){e.currentTabId=t},setCurrentTab:function(e,t){e.currentTab=t},updatePredefinedInquiries:function(e,t){e.predefinedInquiries=Array.isArray(t)?t:[t]}}),ui=i("e1bd"),di={addTab:function(e,t){return Object(u["a"])(regeneratorRuntime.mark((function i(){var n,a;return regeneratorRuntime.wrap((function(i){while(1)switch(i.prev=i.next){case 0:return n=e.state,a=t?JSON.parse(JSON.stringify(t)):{},t&&t.id?a.isSaved=!0:(a.id=Object(ui["a"])(),a.name=null,a.tempName=n.untitledLastIndex?"Untitled ".concat(n.untitledLastIndex):"Untitled",a.viewType="chart",a.viewOptions=void 0,a.isSaved=!1),n.tabs.some((function(e){return e.id===a.id}))||(n.tabs.push(a),a.name||(n.untitledLastIndex+=1)),i.abrupt("return",a.id);case 5:case"end":return i.stop()}}),i)})))()}};n["default"].use(oi["a"]);var Mi=new oi["a"].Store({state:ci,mutations:li,actions:di});function gi(e,t){var i=e.getTokenAt(e.getCursor()).string.toUpperCase(),n=si.a.hint.sql(e,t);return 1===n.list.length&&n.list[0].text.toUpperCase()===i&&(n.list=[]),n}var pi={get tables(){var e={};return Mi.state.db.schema&&Mi.state.db.schema.forEach((function(t){e[t.name]=t.columns.map((function(e){return e.name}))})),e},get defaultTable(){var e=Mi.state.db.schema;return e&&1===e.length?e[0].name:null},completeSingle:!1,completeOnSingleClick:!0,alignWithWord:!1};function hi(e){si.a.showHint(e,gi,pi)}function Ii(e){var t=e.getTokenAt(e.getCursor()),i=t.string.slice(-1),n=t.type;"string"!==n&&i&&" "!==i&&";"!==i&&si.a.showHint(e,gi,pi)}var mi=i("8f94"),Ni=(i("a7be"),i("ffda"),i("d5db"),i("f6b6"),i("f4ba"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"side-tool-bar"},[i("icon-button",{attrs:{active:"sqlEditor"===e.panel,tooltip:"Switch panel to SQL editor","tooltip-position":"top-left"},nativeOn:{click:function(t){return e.$emit("switchTo","sqlEditor")}}},[i("sql-editor-icon")],1),i("icon-button",{attrs:{active:"table"===e.panel,tooltip:"Switch panel to result set","tooltip-position":"top-left"},nativeOn:{click:function(t){return e.$emit("switchTo","table")}}},[i("table-icon")],1),i("icon-button",{attrs:{active:"dataView"===e.panel,tooltip:"Switch panel to data view","tooltip-position":"top-left"},nativeOn:{click:function(t){return e.$emit("switchTo","dataView")}}},[i("data-view-icon")],1),e.$slots.default?i("div",{staticClass:"side-tool-bar-divider"}):e._e(),e._t("default")],2)}),fi=[],vi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["icon-btn",{active:e.active},{disabled:e.disabled}],on:{click:e.onClick,mouseenter:function(t){return e.showTooltip(t,e.tooltipPosition)},mouseleave:e.hideTooltip}},[i("div",{staticClass:"icon"},[e._t("default")],2),i("div",{directives:[{name:"show",rawName:"v-show",value:e.loading,expression:"loading"}],staticClass:"icon-in-progress"},[i("loading-indicator")],1),e.tooltip?i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" "+e._s(e.tooltip)+" ")]):e._e()])},Di=[],ji={name:"SideBarButton",props:["active","disabled","tooltip","tooltipPosition","loading"],components:{LoadingIndicator:yt},mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},yi=ji,bi=(i("dd9c"),Object(s["a"])(yi,vi,Di,!1,null,"0c2b486e",null)),Ci=bi.exports,zi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M14.5 2.16512L3.5 2.16999C2.675 2.16999 2 2.84499 2 3.66999V14.3349C2 15.1599 2.675 15.8349 3.5 15.8349L14.5 15.83C15.3327 15.83 16 15.1551 16 14.33V3.66512C16 2.83511 15.33 2.16512 14.5 2.16512ZM14.5014 3.66512L3.49878 3.66999V14.33L14.5014 14.3251V3.66512Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M6.27319 14.7069L6.27319 3.32135L7.77319 3.32135L7.77319 14.7069L6.27319 14.7069Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M10.2639 14.6932L10.2639 3.30772L11.7639 3.30772L11.7639 14.6932L10.2639 14.6932Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.5108 7.48325H2.4895V5.98325H15.5108V7.48325Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.5108 11.6056H2.4895V10.1056H15.5108V11.6056Z",fill:"#A2B1C6"}})])},Ti=[],wi={name:"TableIcon"},xi=wi,Oi=Object(s["a"])(xi,zi,Ti,!1,null,null,null),Ai=Oi.exports,Li=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"19",viewBox:"0 0 18 19",fill:"none"}},[i("g",{attrs:{"clip-path":"url(#clip0)"}},[i("path",{attrs:{d:"M4.5 1.51343H10.5L15 6.01343V8.45284H13.5V6.76343H9.75V3.01343H4.5V8.45284H3V3.01343C3 2.18843 3.675 1.51343 4.5 1.51343Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M4.28369 14.8127C4.28369 14.5872 4.20312 14.4114 4.04199 14.2854C3.88379 14.1594 3.604 14.0291 3.20264 13.8943C2.80127 13.7595 2.47314 13.6292 2.21826 13.5032C1.38916 13.0959 0.974609 12.5364 0.974609 11.8245C0.974609 11.47 1.07715 11.158 1.28223 10.8884C1.49023 10.616 1.7832 10.405 2.16113 10.2556C2.53906 10.1033 2.96387 10.0271 3.43555 10.0271C3.89551 10.0271 4.30713 10.1091 4.67041 10.2732C5.03662 10.4373 5.3208 10.6716 5.52295 10.9763C5.7251 11.2781 5.82617 11.6238 5.82617 12.0134H4.28809C4.28809 11.7527 4.20752 11.5505 4.04639 11.407C3.88818 11.2634 3.67285 11.1917 3.40039 11.1917C3.125 11.1917 2.90674 11.2532 2.74561 11.3762C2.5874 11.4963 2.5083 11.6501 2.5083 11.8376C2.5083 12.0017 2.59619 12.1511 2.77197 12.2859C2.94775 12.4177 3.25684 12.5554 3.69922 12.699C4.1416 12.8396 4.50488 12.9919 4.78906 13.156C5.48047 13.5544 5.82617 14.1038 5.82617 14.804C5.82617 15.3635 5.61523 15.803 5.19336 16.1223C4.77148 16.4417 4.19287 16.6013 3.45752 16.6013C2.93896 16.6013 2.46875 16.509 2.04688 16.3245C1.62793 16.137 1.31152 15.8821 1.09766 15.5598C0.886719 15.2346 0.78125 14.8611 0.78125 14.4392H2.32812C2.32812 14.782 2.41602 15.0354 2.5918 15.1995C2.77051 15.3606 3.05908 15.4412 3.45752 15.4412C3.7124 15.4412 3.91309 15.387 4.05957 15.2786C4.20898 15.1672 4.28369 15.012 4.28369 14.8127ZM12.0444 13.446C12.0444 14.0378 11.9463 14.5549 11.75 14.9973C11.5537 15.4368 11.2827 15.7898 10.937 16.0564L11.9697 16.8738L11.0161 17.6824L9.64062 16.575C9.51172 16.5925 9.38281 16.6013 9.25391 16.6013C8.70898 16.6013 8.22559 16.4753 7.80371 16.2234C7.38184 15.9714 7.05225 15.6111 6.81494 15.1423C6.58057 14.6736 6.45898 14.1345 6.4502 13.5251V13.1868C6.4502 12.5569 6.56445 12.0032 6.79297 11.5256C7.02441 11.0481 7.35254 10.679 7.77734 10.4182C8.20508 10.1575 8.69434 10.0271 9.24512 10.0271C9.78711 10.0271 10.2705 10.156 10.6953 10.4138C11.1201 10.6716 11.4497 11.0393 11.6841 11.5168C11.9214 11.9915 12.0415 12.5364 12.0444 13.1516V13.446ZM10.4756 13.178C10.4756 12.5422 10.3687 12.0603 10.1548 11.7322C9.94385 11.4011 9.64062 11.2356 9.24512 11.2356C8.83789 11.2356 8.53174 11.3982 8.32666 11.7234C8.12158 12.0486 8.01758 12.5247 8.01465 13.1516V13.446C8.01465 14.0759 8.11865 14.5593 8.32666 14.8962C8.53467 15.2302 8.84375 15.3972 9.25391 15.3972C9.64648 15.3972 9.94678 15.2317 10.1548 14.9006C10.3657 14.5696 10.4727 14.0935 10.4756 13.4724V13.178ZM14.3735 15.3269H17.0586V16.5134H12.8311V10.115H14.3735V15.3269Z",fill:"#A2B1C6"}})]),i("defs",[i("clipPath",{attrs:{id:"clip0"}},[i("rect",{attrs:{width:"18",height:"18",fill:"white",transform:"translate(0 0.0134277)"}})])])])},ki=[],Ei={name:"SqlEditorIcon"},Si=Ei,Qi=Object(s["a"])(Si,Li,ki,!1,null,null,null),Ui=Qi.exports,Yi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13.5552 6.91522C13.7584 6.91357 13.9535 6.99442 14.096 7.13926L17.2582 10.3541C17.5486 10.6494 17.5447 11.1242 17.2494 11.4147C16.9541 11.7051 16.4793 11.7012 16.1888 11.4059L13.57 8.74357L9.29577 13.2318C9.01977 13.5216 8.56484 13.5436 8.2621 13.2819L5.35435 10.7677L2.03285 13.7321C1.72382 14.0079 1.24971 13.981 0.973901 13.6719C0.69809 13.3629 0.725022 12.8888 1.03406 12.613L4.8471 9.20986C5.12827 8.95892 5.55198 8.95559 5.83705 9.20208L8.70249 11.6797L13.0182 7.14796C13.1583 7.00084 13.3521 6.91686 13.5552 6.91522Z",fill:"#A2B1C6"}}),i("circle",{attrs:{cx:"5.50049",cy:"6.00339",r:"1.5",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M16.036 1.21788L1.96546 1.213C1.14046 1.213 0.465462 1.888 0.465462 2.713L0.464111 15.2821C0.464111 16.1071 1.13911 16.7821 1.96411 16.7821L16.0347 16.787C16.8674 16.787 17.5347 16.1121 17.5347 15.287L17.536 2.71788C17.536 1.88787 16.866 1.21788 16.036 1.21788ZM16.0374 2.71788L1.96424 2.713L1.96289 15.2773L16.036 15.2821L16.0374 2.71788Z",fill:"#A2B1C6"}})])},Zi=[],Pi={name:"DataViewIcon"},_i=Pi,qi=Object(s["a"])(_i,Yi,Zi,!1,null,null,null),Vi=qi.exports,Ri={name:"SideToolBar",props:["panel"],components:{IconButton:Ci,SqlEditorIcon:Ui,DataViewIcon:Vi,TableIcon:Ai}},Bi=Ri,Gi=(i("f4e5"),Object(s["a"])(Bi,Ni,fi,!1,null,"3b6366bb",null)),Hi=Gi.exports,$i=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"12",height:"13",viewBox:"0 0 12 13",fill:"none"}},[i("path",{attrs:{d:"M11.1624 6.94358L0.770043 12.9436L0.770043 0.943573L11.1624 6.94358Z",fill:"#A2B1C6"}})])},Wi=[],Fi={name:"RunIcon"},Ji=Fi,Xi=Object(s["a"])(Ji,$i,Wi,!1,null,null,null),Ki=Xi.exports,en={name:"SqlEditor",props:["value","isGettingResults"],components:{codemirror:mi["codemirror"],SideToolBar:Hi,IconButton:Ci,RunIcon:Ki},data:function(){return{query:this.value,cmOptions:{tabSize:4,mode:"text/x-mysql",theme:"neo",lineNumbers:!0,line:!0,autoRefresh:!0,extraKeys:{"Ctrl-Space":hi}}}},computed:{runDisabled:function(){return!this.$store.state.db||!this.query||this.isGettingResults}},watch:{query:function(){this.$emit("input",this.query)}},methods:{onChange:wt.debounce(Ii,400),focus:function(){this.$refs.cm.codemirror.focus()}}},tn=en,nn=(i("16a3"),Object(s["a"])(tn,ni,ai,!1,null,"c84dd870",null)),an=nn.exports,rn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"data-view-panel"},[i("div",{staticClass:"data-view-panel-content"},[i(e.mode,{ref:"viewComponent",tag:"component",attrs:{"init-options":e.mode===e.initMode?e.initOptions:void 0,"data-sources":e.dataSource,"import-to-png-enabled":e.importToPngEnabled},on:{"update:importToPngEnabled":function(t){e.importToPngEnabled=t},"update:import-to-png-enabled":function(t){e.importToPngEnabled=t},loadingImageCompleted:function(t){e.loadingImage=!1},update:function(t){return e.$emit("update")}}})],1),i("side-tool-bar",{attrs:{panel:"dataView"},on:{switchTo:function(t){return e.$emit("switchTo",t)}}},[i("icon-button",{attrs:{active:"chart"===e.mode,tooltip:"Switch to chart","tooltip-position":"top-left"},on:{click:function(t){e.mode="chart"}}},[i("chart-icon")],1),i("icon-button",{attrs:{active:"pivot"===e.mode,tooltip:"Switch to pivot","tooltip-position":"top-left"},on:{click:function(t){e.mode="pivot"}}},[i("pivot-icon")],1),i("div",{staticClass:"side-tool-bar-divider"}),i("icon-button",{attrs:{disabled:!e.importToPngEnabled||e.loadingImage,loading:e.loadingImage,tooltip:"Save as PNG image","tooltip-position":"top-left"},on:{click:e.saveAsPng}},[i("png-icon")],1)],1)],1)},sn=[],on=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],ref:"chartContainer",staticClass:"chart-container"},[i("div",{directives:[{name:"show",rawName:"v-show",value:!e.dataSources&&e.visible,expression:"!dataSources && visible"}],staticClass:"warning chart-warning"},[e._v(" There is no data to build a chart. Run your SQL query and make sure the result is not empty. ")]),i("PlotlyEditor",{ref:"plotlyEditor",staticClass:"chart",style:{height:e.dataSources?"100%":"calc(100% - 40px)"},attrs:{data:e.state.data,layout:e.state.layout,frames:e.state.frames,config:{editable:!0,displaylogo:!1,modeBarButtonsToRemove:["toImage"]},dataSources:e.dataSources,dataSourceOptions:e.dataSourceOptions,plotly:e.plotly,useResizeHandler:!0,debug:!0,advancedTraceTypeSelector:!0},on:{onUpdate:e.update,onRender:e.onRender}})],1)},cn=[],ln=i("030a"),un=i.n(ln),dn=(i("0848"),i("b1c6")),Mn=i.n(dn),gn=i("662f"),pn=i.n(gn);function hn(e){return e?Object.keys(e).map((function(e){return{value:e,label:e}})):[]}function In(e,t){var i=JSON.parse(JSON.stringify(e)),n={};for(var a in t)n[a]=[];return pn()(i.data,n),i}var mn={getOptionsFromDataSources:hn,getOptionsForSave:In},Nn={name:"Chart",props:["dataSources","initOptions","importToPngEnabled"],components:{PlotlyEditor:Mn.a},data:function(){return{plotly:un.a,state:this.initOptions||{data:[],layout:{},frames:[]},visible:!0,resizeObserver:null}},computed:{dataSourceOptions:function(){return mn.getOptionsFromDataSources(this.dataSources)}},mounted:function(){this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.$refs.chartContainer)},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.chartContainer)},watch:{dataSources:function(){pn()(this.state.data,this.dataSources)}},methods:{handleResize:function(){var e=this;this.visible=!1,this.$nextTick((function(){e.visible=!0}))},onRender:function(e,t,i){},update:function(e,t,i){this.state={data:e,layout:t,frames:i},this.$emit("update")},getOptionsForSave:function(){return mn.getOptionsForSave(this.state,this.dataSources)},saveAsPng:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return i=e.$refs.plotlyEditor.$el.querySelector(".js-plotly-plot"),t.next=3,un.a.toImage(i,{format:"png",width:null,height:null});case 3:n=t.sent,e.$emit("loadingImageCompleted"),C.downloadFromUrl(n,"chart");case 6:case"end":return t.stop()}}),t)})))()}}},fn=Nn,vn=(i("807c"),Object(s["a"])(fn,on,cn,!1,null,"31be4117",null)),Dn=vn.exports,jn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"pivot-container"},[i("div",{directives:[{name:"show",rawName:"v-show",value:!e.dataSources,expression:"!dataSources"}],staticClass:"warning pivot-warning"},[e._v(" There is no data to build a pivot. Run your SQL query and make sure the result is not empty. ")]),i("pivot-ui",{attrs:{"key-names":e.columns},on:{update:function(t){return e.$emit("update")},loadingCustomChartImageCompleted:function(t){return e.$emit("loadingImageCompleted")}},model:{value:e.pivotOptions,callback:function(t){e.pivotOptions=t},expression:"pivotOptions"}}),i("div",{ref:"pivotOutput",staticClass:"pivot-output"})],1)},yn=[],bn=i("c0e9"),Cn=i.n(bn),zn=i("1157"),Tn=i.n(zn),wn=(i("9751"),i("ccb1"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"pivot-ui"},[i("div",{class:{collapsed:e.collapsed}},[i("div",{staticClass:"row"},[i("label",[e._v("Columns")]),i("multiselect",{staticClass:"sqliteviz-select cols",attrs:{options:e.colsToSelect,disabled:0===e.colsToSelect.length,multiple:!0,hideSelected:!0,"close-on-select":!0,"show-labels":!1,max:e.colsToSelect.length,"open-direction":"bottom",placeholder:""},model:{value:e.cols,callback:function(t){e.cols=t},expression:"cols"}},[i("template",{slot:"maxElements"},[i("span",{staticClass:"no-results"},[e._v("No Results")])]),i("template",{slot:"placeholder"},[e._v("Choose columns")]),i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2),i("pivot-sort-btn",{staticClass:"sort-btn",attrs:{direction:"col"},model:{value:e.colOrder,callback:function(t){e.colOrder=t},expression:"colOrder"}})],1),i("div",{staticClass:"row"},[i("label",[e._v("Rows")]),i("multiselect",{staticClass:"sqliteviz-select rows",attrs:{options:e.rowsToSelect,disabled:0===e.rowsToSelect.length,multiple:!0,hideSelected:!0,"close-on-select":!0,"show-labels":!1,max:e.rowsToSelect.length,"option-height":29,"open-direction":"bottom",placeholder:""},model:{value:e.rows,callback:function(t){e.rows=t},expression:"rows"}},[i("template",{slot:"maxElements"},[i("span",{staticClass:"no-results"},[e._v("No Results")])]),i("template",{slot:"placeholder"},[e._v("Choose rows")]),i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2),i("pivot-sort-btn",{staticClass:"sort-btn",attrs:{direction:"row"},model:{value:e.rowOrder,callback:function(t){e.rowOrder=t},expression:"rowOrder"}})],1),i("div",{staticClass:"row aggregator"},[i("label",[e._v("Aggregator")]),i("multiselect",{staticClass:"sqliteviz-select short aggregator",attrs:{options:e.aggregators,label:"name","track-by":"name","close-on-select":!0,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose a function"},model:{value:e.aggregator,callback:function(t){e.aggregator=t},expression:"aggregator"}},[i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2),i("multiselect",{directives:[{name:"show",rawName:"v-show",value:e.valCount>0,expression:"valCount > 0"}],staticClass:"sqliteviz-select aggr-arg",attrs:{options:e.keyNames,disabled:0===e.keyNames.length,"close-on-select":!0,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose an argument"},model:{value:e.val1,callback:function(t){e.val1=t},expression:"val1"}}),i("multiselect",{directives:[{name:"show",rawName:"v-show",value:e.valCount>1,expression:"valCount > 1"}],staticClass:"sqliteviz-select aggr-arg",attrs:{options:e.keyNames,disabled:0===e.keyNames.length,"close-on-select":!0,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose a second argument"},model:{value:e.val2,callback:function(t){e.val2=t},expression:"val2"}})],1),i("div",{staticClass:"row"},[i("label",[e._v("View")]),i("multiselect",{staticClass:"sqliteviz-select short renderer",attrs:{options:e.renderers,label:"name","track-by":"name","close-on-select":!0,"allow-empty":!1,"show-labels":!1,hideSelected:!0,"option-height":29,"open-direction":"bottom",placeholder:"Choose a view"},model:{value:e.renderer,callback:function(t){e.renderer=t},expression:"renderer"}},[i("template",{slot:"noResult"},[i("span",{staticClass:"no-results"},[e._v("No Results")])])],2)],1)]),i("span",{staticClass:"switcher",on:{click:function(t){e.collapsed=!e.collapsed}}},[e._v(" "+e._s(e.collapsed?"Show pivot settings":"Hide pivot settings")+" ")])])}),xn=[],On=(i("2532"),i("8e5f")),An=i.n(On),Ln=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["pivot-sort-btn",e.direction],on:{click:e.changeSorting}},[e._v(" "+e._s(e.value.includes("key")?"key":"value")+" "),i("sort-icon",{staticClass:"sort-icon",attrs:{horizontal:"col"===e.direction,asc:e.value.includes("a_to_z")}})],1)},kn=[],En=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{class:["sort-icon",{horizontal:e.horizontal},{asc:e.asc}],attrs:{width:"6",height:"12",viewBox:"0 0 6 12",fill:"none"}},[i("path",{attrs:{d:"M2.99932 -3.63032e-05C2.75092 -3.63032e-05 2.54932 0.201563 2.54932 0.449964L2.54932 11.55C2.54932 11.7984 2.75092 12 2.99932 12C3.24772 12 3.44932 11.7984 3.44932 11.55L3.44932 0.449964C3.44932 0.201563 3.24772 -3.63032e-05 2.99932 -3.63032e-05Z",fill:"#506784"}}),i("path",{attrs:{d:"M2.99915 1.80492e-05C2.8839 1.80492e-05 2.76865 0.0438534 2.68109 0.132073L0.581055 2.232C0.405273 2.40789 0.405273 2.69287 0.581055 2.86865C0.756946 3.04443 1.04193 3.04443 1.21771 2.86865L2.99969 1.08667L4.78168 2.86865C4.95746 3.04443 5.24255 3.04443 5.41833 2.86865C5.59412 2.69287 5.59412 2.40789 5.41833 2.232L3.3183 0.132073C3.22953 0.0438534 3.11428 1.80492e-05 2.99915 1.80492e-05V1.80492e-05Z",fill:"#506784"}})])},Sn=[],Qn={name:"SortIcon",props:{horizontal:{type:Boolean,required:!1,default:!1},asc:{type:Boolean,required:!1,default:!0}}},Un=Qn,Yn=(i("4c94"),Object(s["a"])(Un,En,Sn,!1,null,"28a29e7a",null)),Zn=Yn.exports,Pn={name:"PivotSortBtn",props:["direction","value"],components:{SortIcon:Zn},methods:{changeSorting:function(){"key_a_to_z"===this.value?this.$emit("input","value_a_to_z"):"value_a_to_z"===this.value?this.$emit("input","value_z_to_a"):this.$emit("input","key_a_to_z")}}},_n=Pn,qn=(i("0f34"),Object(s["a"])(_n,Ln,kn,!1,null,"e3801f08",null)),Vn=qn.exports,Rn=(i("8e51"),i("3c3e"),["Count","Count as Fraction of Total","Count as Fraction of Rows","Count as Fraction of Columns"]),Bn=["Sum over Sum","80% Upper Bound","80% Lower Bound"];function Gn(e){var t=e.getRowKeys(),i=e.getColKeys(),n={"Column keys":i.map((function(e){return e.join("-")})),"Row keys":t.map((function(e){return e.join("-")}))},a={},r={},s=e.rowAttrs.join("-"),o=e.colAttrs.join("-");return i.forEach((function(i){var n=o+":"+i.join("-");r[n]=[],t.forEach((function(t){var o=e.getAggregator(t,i).value();r[n].push(o);var c=s+":"+t.join("-");a[c]||(a[c]=[]),a[c].push(o)}))})),Object.assign(n,r,a)}function Hn(e,t){return t.customChartComponent.dataSources=Gn(e),t.customChartComponent.$mount(),Tn()(t.customChartComponent.$el)}Tn.a.extend(Tn.a.pivotUtilities.renderers,Tn.a.pivotUtilities.export_renderers,Tn.a.pivotUtilities.plotly_renderers,{"Custom chart":Hn});var $n=Object.keys(Tn.a.pivotUtilities.renderers).map((function(e){return{name:e,fun:Tn.a.pivotUtilities.renderers[e]}})),Wn=Object.keys(Tn.a.pivotUtilities.aggregators).map((function(e){return{name:e,fun:Tn.a.pivotUtilities.aggregators[e]}})),Fn=n["default"].extend(Dn),Jn={name:"pivotUi",props:["keyNames","value"],components:{Multiselect:An.a,PivotSortBtn:Vn},data:function(){var e=this.value&&this.value.aggregatorName||"Count",t=this.value&&this.value.rendererName||"Table";return{collapsed:!1,renderer:{name:t,fun:Tn.a.pivotUtilities.renderers[t]},aggregator:{name:e,fun:Tn.a.pivotUtilities.aggregators[e]},rows:this.value&&this.value.rows||[],cols:this.value&&this.value.cols||[],val1:this.value&&this.value.vals&&this.value.vals[0]||"",val2:this.value&&this.value.vals&&this.value.vals[1]||"",colOrder:this.value&&this.value.colOrder||"key_a_to_z",rowOrder:this.value&&this.value.rowOrder||"key_a_to_z",customChartComponent:this.value&&this.value.rendererOptions&&this.value.rendererOptions.customChartComponent||new Fn}},computed:{valCount:function(){return Rn.includes(this.aggregator.name)?0:Bn.includes(this.aggregator.name)?2:1},renderers:function(){return $n},aggregators:function(){return Wn},rowsToSelect:function(){var e=this;return this.keyNames.filter((function(t){return!e.cols.includes(t)}))},colsToSelect:function(){var e=this;return this.keyNames.filter((function(t){return!e.rows.includes(t)}))}},watch:{renderer:function(){this.returnValue()},aggregator:function(){this.returnValue()},rows:function(){this.returnValue()},cols:function(){this.returnValue()},val1:function(){this.returnValue()},val2:function(){this.returnValue()},colOrder:function(){this.returnValue()},rowOrder:function(){this.returnValue()}},created:function(){var e=this;this.customChartComponent.$on("update",(function(){e.$emit("update")})),this.customChartComponent.$on("loadingImageCompleted",(function(t){e.$emit("loadingCustomChartImageCompleted")}))},methods:{returnValue:function(){for(var e=[],t=1;t<=this.valCount;t++)e.push(this["val".concat(t)]);this.$emit("update"),this.$emit("input",{rows:this.rows,cols:this.cols,colOrder:this.colOrder,rowOrder:this.rowOrder,aggregator:this.aggregator.fun(e),aggregatorName:this.aggregator.name,renderer:this.renderer.fun,rendererName:this.renderer.name,rendererOptions:"Custom chart"!==this.renderer.name?void 0:{customChartComponent:this.customChartComponent},vals:e})}}},Xn=Jn,Kn=(i("81e6"),Object(s["a"])(Xn,wn,xn,!1,null,"6d818ae0",null)),ea=Kn.exports,ta=n["default"].extend(Dn),ia={name:"pivot",props:["dataSources","initOptions","importToPngEnabled"],components:{PivotUi:ea},data:function(){return{resizeObserver:null,pivotOptions:this.initOptions?{rows:this.initOptions.rows,cols:this.initOptions.cols,colOrder:this.initOptions.colOrder,rowOrder:this.initOptions.rowOrder,aggregatorName:this.initOptions.aggregatorName,aggregator:Tn.a.pivotUtilities.aggregators[this.initOptions.aggregatorName](this.initOptions.vals),vals:this.initOptions.vals,rendererName:this.initOptions.rendererName,renderer:Tn.a.pivotUtilities.renderers[this.initOptions.rendererName],rendererOptions:this.initOptions.rendererOptions?{customChartComponent:new ta({propsData:{initOptions:this.initOptions.rendererOptions.customChartOptions}})}:void 0}:{rows:[],cols:[],colOrder:"key_a_to_z",rowOrder:"key_a_to_z",aggregatorName:"Count",aggregator:Tn.a.pivotUtilities.aggregators.Count(),vals:[],rendererName:"Table",renderer:Tn.a.pivotUtilities.renderers.Table,rendererOptions:void 0}}},computed:{columns:function(){return Object.keys(this.dataSources||{})}},watch:{dataSources:function(){this.show()},"pivotOptions.rendererName":{immediate:!0,handler:function(){this.$emit("update:importToPngEnabled","TSV Export"!==this.pivotOptions.rendererName)}},pivotOptions:function(){this.show()}},mounted:function(){this.show(),this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.$refs.pivotOutput)},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.pivotOutput)},methods:{handleResize:function(){this.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers&&window.dispatchEvent(new Event("resize"))},show:function(){var e=Object(I["a"])({},this.pivotOptions);this.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers&&(e.rendererOptions={plotly:{autosize:!0,width:null,height:null},plotlyConfig:{displaylogo:!1,responsive:!0,modeBarButtonsToRemove:["toImage"]}}),Tn()(this.$refs.pivotOutput).pivot(function(e){for(var t=this,i=this.dataSources?this.dataSources[this.columns[0]].length:0,n=function(i){var n={};t.columns.forEach((function(e){n[e]=t.dataSources[e][i-1]})),e(n)},a=1;a<=i;a++)n(a)}.bind(this),e),this.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers&&window.dispatchEvent(new Event("resize"))},getOptionsForSave:function(){var e=Object(I["a"])({},this.pivotOptions);if(e.rendererOptions){var t=this.pivotOptions.rendererOptions.customChartComponent;e.rendererOptions={customChartOptions:t.getOptionsForSave()}}return e},saveAsPng:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n,a,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if("Custom chart"!==e.pivotOptions.rendererName){t.next=4;break}e.pivotOptions.rendererOptions.customChartComponent.saveAsPng(),t.next=19;break;case 4:if(!(e.pivotOptions.rendererName in Tn.a.pivotUtilities.plotly_renderers)){t.next=13;break}return i=e.$refs.pivotOutput.querySelector(".js-plotly-plot"),t.next=8,un.a.toImage(i,{format:"png",width:null,height:null});case 8:n=t.sent,e.$emit("loadingImageCompleted"),C.downloadFromUrl(n,"pivot"),t.next=19;break;case 13:return a=e.$refs.pivotOutput.querySelector(".pvtTable"),t.next=16,Cn()(a);case 16:r=t.sent,e.$emit("loadingImageCompleted"),C.downloadFromUrl(r.toDataURL("image/png"),"pivot","image/png");case 19:case"end":return t.stop()}}),t)})))()}}},na=ia,aa=(i("d7ec"),Object(s["a"])(na,jn,yn,!1,null,"ca17e020",null)),ra=aa.exports,sa=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M8.41943 16V10H10.4194V16H8.41943Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M2.41943 16L2.41943 10H4.41943V16H2.41943Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.4194 16V7H13.4194V16H11.4194Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M14.4194 16V8H16.4194V16H14.4194Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7.41943 12V16H5.41943V12H7.41943Z",fill:"#A2B1C6"}}),i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12.4332 1.80676L16.6265 6.00001L15.9194 6.70712L12.4055 3.19326L5.93169 9.1691L1.71436 5.55424L2.36515 4.79499L5.90707 7.83092L12.4332 1.80676Z",fill:"#A2B1C6"}})])},oa=[],ca={name:"ChartIcon"},la=ca,ua=Object(s["a"])(la,sa,oa,!1,null,null,null),da=ua.exports,Ma=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.7661 5.13901L18.3407 9.43008H16.5161V12.8467C16.5161 13.7957 16.2783 14.6451 15.6714 15.2521C15.0645 15.859 14.215 16.0967 13.2661 16.0967H9.84942V17.9214L5.55835 15.3467L9.84942 12.7721V14.5967H13.2661C13.9838 14.5967 14.3844 14.4178 14.6108 14.1914C14.8372 13.965 15.0161 13.5645 15.0161 12.8467V9.43008H13.1914L15.7661 5.13901Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M6.41943 0H18.4194V4H6.41943V0Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M0.419434 6H4.41943V18H0.419434V6Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M0.419434 0H4.41943V4H0.419434V0Z",fill:"#A2B1C6"}})])},ga=[],pa={name:"PivotIcon"},ha=pa,Ia=Object(s["a"])(ha,Ma,ga,!1,null,null,null),ma=Ia.exports,Na=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"}},[i("path",{attrs:{d:"M9 5.51953C6.57686 5.51953 4.60547 7.49092 4.60547 9.91406C4.60547 12.3372 6.57686 14.3086 9 14.3086C11.4231 14.3086 13.3945 12.3372 13.3945 9.91406C13.3945 7.49092 11.4231 5.51953 9 5.51953ZM9 12.9023C7.35226 12.9023 6.01172 11.5618 6.01172 9.91406C6.01172 8.26632 7.35226 6.92578 9 6.92578C10.6477 6.92578 11.9883 8.26632 11.9883 9.91406C11.9883 11.5618 10.6477 12.9023 9 12.9023Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M15.8906 3.41016H13.304C13.2221 3.41016 13.1483 3.36547 13.1104 3.29319L12.3948 1.78945C12.3928 1.78534 12.3908 1.78126 12.3887 1.77718C12.1117 1.22312 11.5548 0.878906 10.9353 0.878906H7.11478C6.49529 0.878906 5.93835 1.22312 5.66135 1.77722C5.65928 1.7813 5.65731 1.78538 5.65534 1.78949L4.9397 3.2933C4.90173 3.36547 4.82797 3.41016 4.74609 3.41016H2.10938C0.946266 3.41016 0 4.35642 0 5.51953V15.0117C0 16.1748 0.946266 17.1211 2.10938 17.1211H15.8906C17.0537 17.1211 18 16.1748 18 15.0117V5.51953C18 4.35642 17.0537 3.41016 15.8906 3.41016ZM16.5938 15.0117C16.5938 15.3994 16.2783 15.7148 15.8906 15.7148H2.10938C1.72167 15.7148 1.40625 15.3994 1.40625 15.0117V5.51953C1.40625 5.13183 1.72167 4.81641 2.10938 4.81641H4.74609C5.36555 4.81641 5.92249 4.47223 6.19952 3.91816C6.2016 3.91409 6.20357 3.90997 6.20557 3.90586L6.92121 2.40205C6.95914 2.32984 7.0329 2.28516 7.11478 2.28516H10.9353C11.0172 2.28516 11.091 2.32984 11.1289 2.40202L11.8445 3.90582C11.8465 3.90994 11.8485 3.91405 11.8506 3.91813C12.1276 4.47219 12.6846 4.81637 13.304 4.81637H15.8906C16.2783 4.81637 16.5938 5.13179 16.5938 5.5195V15.0117Z",fill:"#A2B1C6"}}),i("path",{attrs:{d:"M15.1875 6.22266H13.7812V7.62891H15.1875V6.22266Z",fill:"#A2B1C6"}})])},fa=[],va={name:"PngIcon"},Da=va,ja=Object(s["a"])(Da,Na,fa,!1,null,null,null),ya=ja.exports,ba={name:"DataView",props:["dataSource","initOptions","initMode"],components:{Chart:Dn,Pivot:ra,SideToolBar:Hi,IconButton:Ci,ChartIcon:da,PivotIcon:ma,PngIcon:ya},data:function(){return{mode:this.initMode||"chart",importToPngEnabled:!0,loadingImage:!1}},watch:{mode:function(){this.$emit("update"),this.importToPngEnabled=!0}},methods:{saveAsPng:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:e.loadingImage=!0,setTimeout((function(){e.$refs.viewComponent.saveAsPng()}),0);case 2:case"end":return t.stop()}}),t)})))()},getOptionsForSave:function(){return this.$refs.viewComponent.getOptionsForSave()}}},Ca=ba,za=(i("be12"),Object(s["a"])(Ca,rn,sn,!1,null,"513fdbc5",null)),Ta=za.exports,wa=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{ref:"runResultPanel",staticClass:"run-result-panel"},[i("div",{staticClass:"run-result-panel-content"},[i("div",{directives:[{name:"show",rawName:"v-show",value:null===e.result&&!e.isGettingResults&&!e.error,expression:"result === null && !isGettingResults && !error"}],staticClass:"table-preview result-before"},[e._v(" Run your query and get results here ")]),e.isGettingResults?i("div",{staticClass:"table-preview result-in-progress"},[i("loading-indicator",{attrs:{size:30}}),e._v(" Fetching results... ")],1):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:void 0===e.result&&!e.isGettingResults&&!e.error,expression:"result === undefined && !isGettingResults && !error"}],staticClass:"table-preview result-empty"},[e._v(" No rows retrieved according to your query ")]),e.error?i("logs",{attrs:{messages:[e.error]}}):e._e(),e.result?i("sql-table",{staticClass:"straight",attrs:{"data-set":e.result,time:e.time,pageSize:e.pageSize}}):e._e()],1),i("side-tool-bar",{attrs:{panel:"table"},on:{switchTo:function(t){return e.$emit("switchTo",t)}}})],1)},xa=[],Oa={name:"RunResult",props:["result","isGettingResults","error","time"],data:function(){return{resizeObserver:null,pageSize:20}},components:{SqlTable:ht,LoadingIndicator:yt,Logs:Tt,SideToolBar:Hi},mounted:function(){this.resizeObserver=new ResizeObserver(this.handleResize),this.resizeObserver.observe(this.$refs.runResultPanel),this.calculatePageSize()},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs.runResultPanel)},methods:{handleResize:function(){this.calculatePageSize()},calculatePageSize:function(){var e=this.$refs.runResultPanel,t=e.offsetHeight-27-5-35;this.pageSize=Math.max(Math.floor(t/35),20)}}},Aa=Oa,La=(i("cd48"),Object(s["a"])(Aa,wa,xa,!1,null,"73e5054b",null)),ka=La.exports,Ea=i("b0cc"),Sa={name:"Tab",props:["id","initName","initQuery","initViewOptions","tabIndex","isPredefined","initViewType"],components:{SqlEditor:an,DataView:Ta,RunResult:ka,Splitpanes:j,Teleport:Ea["a"]},data:function(){return{query:this.initQuery,result:null,isGettingResults:!1,error:null,time:0,layout:{sqlEditor:"above",table:"bottom",dataView:"hidden"}}},computed:{isActive:function(){return this.id===this.$store.state.currentTabId}},watch:{isActive:{immediate:!0,handler:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(!e.isActive){t.next=5;break}return e.$store.commit("setCurrentTab",e),t.next=4,e.$nextTick();case 4:e.$refs.sqlEditor.focus();case 5:case"end":return t.stop()}}),t)})))()}},query:function(){this.$store.commit("updateTab",{index:this.tabIndex,isSaved:!1})}},methods:{onSwitchView:function(e,t){var i=this.layout[e];this.layout[e]=this.layout[t],this.layout[t]=i},onDataViewUpdate:function(){this.$store.commit("updateTab",{index:this.tabIndex,isSaved:!1})},execute:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.isGettingResults=!0,e.result=null,e.error=null,i=e.$store.state,t.prev=4,n=new Date,t.next=8,i.db.execute(e.query+";");case 8:e.result=t.sent,e.time=wt.getPeriod(n,new Date),t.next=15;break;case 12:t.prev=12,t.t0=t["catch"](4),e.error={type:"error",message:t.t0};case 15:i.db.refreshSchema(),e.isGettingResults=!1;case 17:case"end":return t.stop()}}),t,null,[[4,12]])})))()}}},Qa=Sa,Ua=(i("2a6d"),Object(s["a"])(Qa,ti,ii,!1,null,"24244834",null)),Ya=Ua.exports,Za={components:{Tab:Ya,CloseIcon:Oe},data:function(){return{closingTabIndex:null}},computed:{tabs:function(){return this.$store.state.tabs},selectedIndex:function(){return this.$store.state.currentTabId}},created:function(){window.addEventListener("beforeunload",this.leavingSqliteviz)},methods:{leavingSqliteviz:function(e){this.tabs.some((function(e){return!e.isSaved}))&&(e.preventDefault(),e.returnValue="")},selectTab:function(e){this.$store.commit("setCurrentTabId",e)},beforeCloseTab:function(e){this.closingTabIndex=e,this.tabs[e].isSaved?this.closeTab(e):this.$modal.show("close-warn")},closeTab:function(e){this.$modal.hide("close-warn"),this.closingTabIndex=null,this.$store.commit("deleteTab",e)},saveAndClose:function(e){var t=this;this.$root.$on("inquirySaved",(function(){t.closeTab(e),t.$root.$off("inquirySaved")})),this.selectTab(this.tabs[e].id),this.$modal.hide("close-warn"),this.$nextTick((function(){t.$root.$emit("saveInquiry")}))}}},Pa=Za,_a=(i("64b6"),Object(s["a"])(Pa,Kt,ei,!1,null,null,null)),qa=_a.exports,Va={name:"Workspace",components:{Schema:Xt,Splitpanes:j,Tabs:qa},beforeCreate:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n,a;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(i=e.$store.state.db.schema,i&&0!==i.length){t.next=7;break}return n=["/*"," * Your database is empty. In order to start building charts"," * you should create a table and insert data into it."," */","CREATE TABLE house","("," name TEXT,"," points INTEGER",");","INSERT INTO house VALUES","('Gryffindor', 100),","('Hufflepuff', 90),","('Ravenclaw', 95),","('Slytherin', 80);"].join("\n"),t.next=5,e.$store.dispatch("addTab",{query:n});case 5:a=t.sent,e.$store.commit("setCurrentTabId",a);case 7:case"end":return t.stop()}}),t)})))()}},Ra=Va,Ba=(i("2a3d"),Object(s["a"])(Ra,M,g,!1,null,"de063d86",null)),Ga=Ba.exports,Ha=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[0===e.showedInquiries.length?n("div",{attrs:{id:"start-guide"}},[e._v(" You don't have saved inquiries so far. "),n("span",{staticClass:"link",on:{click:function(t){return e.$root.$emit("createNewInquiry")}}},[e._v("Create")]),e._v(" the one from scratch or "),n("span",{staticClass:"link",on:{click:e.importInquiries}},[e._v("import")]),e._v(" from a file. ")]):e._e(),n("div",{directives:[{name:"show",rawName:"v-show",value:e.showedInquiries.length>0,expression:"showedInquiries.length > 0"}],ref:"my-inquiries-content",attrs:{id:"my-inquiries-content"}},[n("div",{attrs:{id:"my-inquiries-toolbar"}},[n("div",{attrs:{id:"toolbar-buttons"}},[n("button",{staticClass:"toolbar",attrs:{id:"toolbar-btns-import"},on:{click:e.importInquiries}},[e._v(" Import ")]),n("button",{directives:[{name:"show",rawName:"v-show",value:e.selectedInquiriesCount>0,expression:"selectedInquiriesCount > 0"}],staticClass:"toolbar",attrs:{id:"toolbar-btns-export"},on:{click:function(t){return e.exportSelectedInquiries()}}},[e._v(" Export ")]),n("button",{directives:[{name:"show",rawName:"v-show",value:e.selectedNotPredefinedCount>0,expression:"selectedNotPredefinedCount > 0"}],staticClass:"toolbar",attrs:{id:"toolbar-btns-delete"},on:{click:function(t){return e.showDeleteDialog(e.selectedInquiriesIds)}}},[e._v(" Delete ")])]),n("div",{attrs:{id:"toolbar-search"}},[n("text-field",{attrs:{placeholder:"Search inquiry by name",width:"300px"},model:{value:e.filter,callback:function(t){e.filter=t},expression:"filter"}})],1)]),n("div",{staticClass:"rounded-bg"},[n("div",{staticClass:"header-container"},[n("div",[n("div",{ref:"name-th",staticClass:"fixed-header"},[n("check-box",{ref:"mainCheckBox",attrs:{theme:"light"},on:{click:e.toggleSelectAll}}),n("div",{staticClass:"name-th"},[e._v("Name")])],1),n("div",{staticClass:"fixed-header"},[e._v(" Created at ")])])]),n("div",{staticClass:"table-container",style:{"max-height":e.maxTableHeight+"px"}},[n("table",{ref:"table",staticClass:"sqliteviz-table"},[n("tbody",e._l(e.showedInquiries,(function(t,i){return n("tr",{key:t.id,on:{click:function(t){return e.openInquiry(i)}}},[n("td",{ref:"name-td",refInFor:!0},[n("div",{staticClass:"cell-data"},[n("check-box",{ref:"rowCheckBox",refInFor:!0,attrs:{init:e.selectAll||e.selectedInquiriesIds.has(t.id)},on:{click:function(i){return e.toggleRow(i,t.id)}}}),n("div",{staticClass:"name"},[e._v(e._s(t.name))]),t.isPredefined?n("div",{staticClass:"badge",on:{mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[e._v(" Predefined "),n("span",{ref:"tooltip",refInFor:!0,staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Predefined inquiries come from the server. These inquiries can’t be deleted or renamed. ")])]):e._e()],1)]),n("td",[n("div",{staticClass:"second-column"},[n("div",{staticClass:"date-container"},[e._v(e._s(e._f("date")(t.createdAt)))]),n("div",{staticClass:"icons-container"},[t.isPredefined?e._e():n("rename-icon",{on:{click:function(i){return e.showRenameDialog(t.id)}}}),n("copy-icon",{on:{click:function(t){return e.duplicateInquiry(i)}}}),n("export-icon",{attrs:{tooltip:"Export inquiry to file","tooltip-position":"top-left"},on:{click:function(i){return e.exportToFile([t],t.name+".json")}}}),t.isPredefined?e._e():n("delete-icon",{on:{click:function(i){e.showDeleteDialog((new Set).add(t.id))}}})],1)])])])})),0)])])])]),n("modal",{attrs:{name:"rename",classes:"dialog",height:"auto"}},[n("div",{staticClass:"dialog-header"},[e._v(" Rename inquiry "),n("close-icon",{on:{click:function(t){return e.$modal.hide("rename")}}})],1),n("div",{staticClass:"dialog-body"},[n("text-field",{attrs:{label:"New inquiry name","error-msg":e.errorMsg,width:"100%"},model:{value:e.newName,callback:function(t){e.newName=t},expression:"newName"}})],1),n("div",{staticClass:"dialog-buttons-container"},[n("button",{staticClass:"secondary",on:{click:function(t){return e.$modal.hide("rename")}}},[e._v("Cancel")]),n("button",{staticClass:"primary",on:{click:e.renameInquiry}},[e._v("Rename")])])]),n("modal",{attrs:{name:"delete",classes:"dialog",height:"auto"}},[n("div",{staticClass:"dialog-header"},[e._v(" Delete "+e._s(e.deleteGroup?"inquiries":"inquiry")+" "),n("close-icon",{on:{click:function(t){return e.$modal.hide("delete")}}})],1),n("div",{staticClass:"dialog-body"},[e._v(" "+e._s(e.deleteDialogMsg)+" "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.selectedInquiriesCount>e.selectedNotPredefinedCount,expression:"selectedInquiriesCount > selectedNotPredefinedCount"}],attrs:{id:"note"}},[n("img",{attrs:{src:i("db39")}}),e._v(" Note: Predefined inquiries you've selected won't be deleted ")])]),n("div",{staticClass:"dialog-buttons-container"},[n("button",{staticClass:"secondary",on:{click:function(t){return e.$modal.hide("delete")}}},[e._v("Cancel")]),n("button",{staticClass:"primary",on:{click:e.deleteInquiry}},[e._v("Delete")])])])],1)},$a=[],Wa=(i("6062"),i("c740"),function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M10.545 6.75L11.25 7.455L4.44 14.25H3.75V13.56L10.545 6.75ZM13.245 2.25C13.0575 2.25 12.8625 2.325 12.72 2.4675L11.3475 3.84L14.16 6.6525L15.5325 5.28C15.825 4.9875 15.825 4.5 15.5325 4.2225L13.7775 2.4675C13.6275 2.3175 13.44 2.25 13.245 2.25ZM10.545 4.6425L2.25 12.9375V15.75H5.0625L13.3575 7.455L10.545 4.6425Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Rename inquiry ")])])}),Fa=[],Ja={name:"RenameIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},Xa=Ja,Ka=(i("b5fd"),Object(s["a"])(Xa,Wa,Fa,!1,null,"075cb800",null)),er=Ka.exports,tr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:e.showTooltip,mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M14.25 15.75H6V5.25H14.25V15.75ZM14.25 3.75H6C5.60218 3.75 5.22064 3.90804 4.93934 4.18934C4.65804 4.47064 4.5 4.85218 4.5 5.25V15.75C4.5 16.1478 4.65804 16.5294 4.93934 16.8107C5.22064 17.092 5.60218 17.25 6 17.25H14.25C14.6478 17.25 15.0294 17.092 15.3107 16.8107C15.592 16.5294 15.75 16.1478 15.75 15.75V5.25C15.75 4.85218 15.592 4.47064 15.3107 4.18934C15.0294 3.90804 14.6478 3.75 14.25 3.75ZM12 0.75H3C2.60218 0.75 2.22064 0.908035 1.93934 1.18934C1.65804 1.47064 1.5 1.85218 1.5 2.25V12.75H3V2.25H12V0.75Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Duplicate inquiry ")])])},ir=[],nr={name:"CopyIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},ar=nr,rr=(i("cba9"),Object(s["a"])(ar,tr,ir,!1,null,"3a61cb73",null)),sr=rr.exports,or=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("svg",{staticClass:"icon",attrs:{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},on:{click:function(t){return t.stopPropagation(),e.onClick(t)},mouseenter:function(t){return e.showTooltip(t,"top-left")},mouseleave:e.hideTooltip}},[i("path",{attrs:{d:"M6.75 2.25V3H3V4.5H3.75V14.25C3.75 14.6478 3.90804 15.0294 4.18934 15.3107C4.47064 15.592 4.85218 15.75 5.25 15.75H12.75C13.1478 15.75 13.5294 15.592 13.8107 15.3107C14.092 15.0294 14.25 14.6478 14.25 14.25V4.5H15V3H11.25V2.25H6.75ZM5.25 4.5H12.75V14.25H5.25V4.5ZM6.75 6V12.75H8.25V6H6.75ZM9.75 6V12.75H11.25V6H9.75Z",fill:"#A2B1C6"}})]),i("span",{ref:"tooltip",staticClass:"icon-tooltip",style:e.tooltipStyle},[e._v(" Delete inquiry ")])])},cr=[],lr={name:"DeleteIcon",mixins:[q],methods:{onClick:function(){this.hideTooltip(),this.$emit("click")}}},ur=lr,dr=(i("7e99"),Object(s["a"])(ur,or,cr,!1,null,"581e8819",null)),Mr=dr.exports,gr={_migrate:function(e,t){if(1===e)return t.forEach((function(e){e.viewType="chart",e.viewOptions=e.chart,delete e.chart})),t}},pr=gr._migrate,hr={version:2,getStoredInquiries:function(){var e=JSON.parse(localStorage.getItem("myInquiries"));if(!e){var t=localStorage.getItem("myQueries");return t?(e=pr(1,JSON.parse(t)),this.updateStorage(e),e):[]}return e&&e.inquiries||[]},duplicateInquiry:function(e){var t=JSON.parse(JSON.stringify(e));return t.name=t.name+" Copy",t.id=Object(ui["a"])(),t.createdAt=new Date,delete t.isPredefined,t},isTabNeedName:function(e){var t=!e.initName;return e.isPredefined||t},save:function(e,t){var i={id:e.isPredefined?Object(ui["a"])():e.id,query:e.query,viewType:e.$refs.dataView.mode,viewOptions:e.$refs.dataView.getOptionsForSave(),name:t||e.initName},n=this.getStoredInquiries();if(t)i.createdAt=new Date;else{var a=n.findIndex((function(t){return t.id===e.id}));i.createdAt=n[a].createdAt}return t?n.push(i):n[a]=i,this.updateStorage(n),i},updateStorage:function(e){localStorage.setItem("myInquiries",JSON.stringify({version:this.version,inquiries:e}))},serialiseInquiries:function(e){var t=JSON.parse(JSON.stringify(e));return t.forEach((function(e){return delete e.isPredefined})),JSON.stringify({version:this.version,inquiries:t},null,4)},deserialiseInquiries:function(e){var t=this,i=JSON.parse(e),n=[];return i.version?n=i.inquiries||[]:(n=Array.isArray(i)?i:[i],n=pr(1,n)),n.forEach((function(e){var i=t.getStoredInquiries().map((function(e){return e.id}));i.includes(e.id)&&(e.id=Object(ui["a"])())})),n},importInquiries:function(){var e=this;return C.importFile().then((function(t){return e.deserialiseInquiries(t)}))},readPredefinedInquiries:function(){return Object(u["a"])(regeneratorRuntime.mark((function e(){var t,i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,C.readFile("./inquiries.json");case 2:return t=e.sent,e.next=5,t.json();case 5:if(i=e.sent,i.version){e.next=10;break}return e.abrupt("return",i.length>0?pr(1,i):[]);case 10:return e.abrupt("return",i.inquiries);case 11:case"end":return e.stop()}}),e)})))()}},Ir={name:"Inquiries",components:{RenameIcon:er,CopyIcon:sr,ExportIcon:qt,DeleteIcon:Mr,CloseIcon:Oe,TextField:F,CheckBox:tt},mixins:[q],data:function(){return{inquiries:[],filter:null,newName:null,processedInquiryId:null,errorMsg:null,selectedInquiriesIds:new Set,selectedInquiriesCount:0,selectedNotPredefinedCount:0,selectAll:!1,deleteGroup:!1,resizeObserver:null,maxTableHeight:0}},computed:{predefinedInquiries:function(){return this.$store.state.predefinedInquiries.map((function(e){return e.isPredefined=!0,e}))},predefinedInquiriesIds:function(){return new Set(this.predefinedInquiries.map((function(e){return e.id})))},showedInquiries:function(){var e=this,t=this.allInquiries;return this.filter&&(t=t.filter((function(t){return t.name.toUpperCase().indexOf(e.filter.toUpperCase())>=0}))),t},allInquiries:function(){return this.predefinedInquiries.concat(this.inquiries)},processedInquiryIndex:function(){var e=this;return this.inquiries.findIndex((function(t){return t.id===e.processedInquiryId}))},deleteDialogMsg:function(){if(!this.deleteGroup&&(null===this.processedInquiryIndex||this.processedInquiryIndex<0||this.processedInquiryIndex>this.inquiries.length))return"";var e=this.deleteGroup?"".concat(this.selectedNotPredefinedCount," ").concat(this.selectedNotPredefinedCount>1?"inquiries":"inquiry"):'"'.concat(this.inquiries[this.processedInquiryIndex].name,'"');return"Are you sure you want to delete ".concat(e,"?")}},created:function(){var e=this;hr.readPredefinedInquiries().then((function(t){e.$store.commit("updatePredefinedInquiries",t)})).catch(console.error).finally((function(){e.inquiries=hr.getStoredInquiries()}))},mounted:function(){this.resizeObserver=new ResizeObserver(this.calcMaxTableHeight),this.resizeObserver.observe(this.$refs["my-inquiries-content"]),this.tableResizeObserver=new ResizeObserver(this.calcNameWidth),this.tableResizeObserver.observe(this.$refs.table),this.calcNameWidth(),this.calcMaxTableHeight()},beforeDestroy:function(){this.resizeObserver.unobserve(this.$refs["my-inquiries-content"]),this.tableResizeObserver.unobserve(this.$refs.table)},filters:{date:function(e){if(!e)return"";var t={year:"numeric",month:"long",day:"numeric"},i={hour12:!1,hour:"2-digit",minute:"2-digit"};return new Date(e).toLocaleDateString("en-GB",t)+" "+new Date(e).toLocaleTimeString("en-GB",i)}},methods:{calcNameWidth:function(){var e=this.$refs["name-td"]?this.$refs["name-td"][0].getBoundingClientRect().width:0;this.$refs["name-th"].style="width: ".concat(e,"px")},calcMaxTableHeight:function(){var e=this.$refs["my-inquiries-content"].offsetHeight-200;this.maxTableHeight=e-e%40+1},openInquiry:function(e){var t=this,i=this.showedInquiries[e];this.$store.dispatch("addTab",i).then((function(e){t.$store.commit("setCurrentTabId",e),t.$router.push("/workspace")}))},showRenameDialog:function(e){this.errorMsg=null,this.processedInquiryId=e,this.newName=this.inquiries[this.processedInquiryIndex].name,this.$modal.show("rename")},renameInquiry:function(){if(this.newName){var e=this.inquiries[this.processedInquiryIndex];e.name=this.newName,this.$set(this.inquiries,this.processedInquiryIndex,e),hr.updateStorage(this.inquiries);var t=this.findTabIndex(e.id);t>=0&&this.$store.commit("updateTab",{index:t,name:this.newName,id:e.id}),this.$modal.hide("rename")}else this.errorMsg="Inquiry name can't be empty"},duplicateInquiry:function(e){var t=hr.duplicateInquiry(this.showedInquiries[e]);this.selectAll&&(this.selectedInquiriesIds.add(t.id),this.selectedInquiriesCount=this.selectedInquiriesIds.size),this.inquiries.push(t),hr.updateStorage(this.inquiries)},showDeleteDialog:function(e){this.deleteGroup=e.size>1,this.deleteGroup||(this.processedInquiryId=e.values().next().value),this.$modal.show("delete")},deleteInquiry:function(){var e=this;if(this.$modal.hide("delete"),this.deleteGroup){this.inquiries=this.selectAll?[]:this.inquiries.filter((function(t){return!e.selectedInquiriesIds.has(t.id)}));for(var t=this.$store.state.tabs,i=t.length-1;i>=0;i--)this.selectedInquiriesIds.has(t[i].id)&&this.$store.commit("deleteTab",i);this.selectedInquiriesIds.clear()}else{this.inquiries.splice(this.processedInquiryIndex,1);var n=this.findTabIndex(this.processedInquiryId);n>=0&&this.$store.commit("deleteTab",n),this.selectedInquiriesIds.has(this.processedInquiryId)&&this.selectedInquiriesIds.delete(this.processedInquiryId)}this.selectedInquiriesCount=this.selectedInquiriesIds.size,hr.updateStorage(this.inquiries)},findTabIndex:function(e){return this.$store.state.tabs.findIndex((function(t){return t.id===e}))},exportToFile:function(e,t){var i=hr.serialiseInquiries(e);C.exportToFile(i,t)},exportSelectedInquiries:function(){var e=this,t=this.selectAll?this.allInquiries:this.allInquiries.filter((function(t){return e.selectedInquiriesIds.has(t.id)}));this.exportToFile(t,"My sqliteviz inquiries.json")},importInquiries:function(){var e=this;hr.importInquiries().then((function(t){e.selectAll&&(t.forEach((function(t){e.selectedInquiriesIds.add(t.id)})),e.selectedInquiriesCount=e.selectedInquiriesIds.size),e.inquiries=e.inquiries.concat(t),hr.updateStorage(e.inquiries)}))},toggleSelectAll:function(e){this.selectAll=e,this.$refs.rowCheckBox.forEach((function(t){t.checked=e})),this.selectedInquiriesIds=e?new Set(this.allInquiries.map((function(e){return e.id}))):new Set,this.selectedInquiriesCount=this.selectedInquiriesIds.size,this.selectedNotPredefinedCount=e?this.inquiries.length:0},toggleRow:function(e,t){var i=this.predefinedInquiriesIds.has(t);e?(this.selectedInquiriesIds.add(t),i||(this.selectedNotPredefinedCount+=1)):(this.selectedInquiriesIds.size===this.allInquiries.length&&(this.$refs.mainCheckBox.checked=!1,this.selectAll=!1),this.selectedInquiriesIds.delete(t),i||(this.selectedNotPredefinedCount-=1)),this.selectedInquiriesCount=this.selectedInquiriesIds.size}}},mr=Ir,Nr=(i("f8c1"),Object(s["a"])(mr,Ha,$a,!1,null,"2b039cec",null)),fr=Nr.exports,vr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{attrs:{id:"dbloader-container"}},[i("db-uploader",{attrs:{type:"illustrated"}}),i("div",{attrs:{id:"note"}},[e._v(" Sqliteviz is fully client-side. Your database never leaves your computer. ")]),i("button",{staticClass:"secondary",attrs:{id:"skip"},on:{click:function(t){return e.$router.push("/workspace")}}},[e._v(" Create empty database ")])],1)},Dr=[],jr={name:"Welcome",components:{DbUploader:Qt}},yr=jr,br=(i("f2b5"),Object(s["a"])(yr,vr,Dr,!1,null,"0da5ae79",null)),Cr=br.exports,zr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("main-menu"),i("keep-alive",{attrs:{include:"Workspace"}},[i("router-view",{attrs:{id:"main-view"}})],1)],1)},Tr=[],wr=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("nav",[n("div",[n("router-link",{attrs:{to:"/workspace"}},[e._v("Workspace")]),n("router-link",{attrs:{to:"/inquiries"}},[e._v("Inquiries")]),n("a",{attrs:{href:"https://github.com/lana-k/sqliteviz/wiki",target:"_blank"}},[e._v("Help")])],1),n("div",{attrs:{id:"nav-buttons"}},[n("button",{directives:[{name:"show",rawName:"v-show",value:e.currentInquiry&&"/workspace"===e.$route.path,expression:"currentInquiry && $route.path === '/workspace'"}],staticClass:"primary",attrs:{id:"save-btn",disabled:e.isSaved},on:{click:e.checkInquiryBeforeSave}},[e._v(" Save ")]),n("button",{staticClass:"primary",attrs:{id:"create-btn"},on:{click:e.createNewInquiry}},[e._v(" Create ")]),n("app-diagnostic-info")],1),n("modal",{attrs:{name:"save",classes:"dialog",height:"auto"}},[n("div",{staticClass:"dialog-header"},[e._v(" Save inquiry "),n("close-icon",{on:{click:e.cancelSave}})],1),n("div",{staticClass:"dialog-body"},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isPredefined,expression:"isPredefined"}],attrs:{id:"save-note"}},[n("img",{attrs:{src:i("db39")}}),e._v(" Note: Predefined inquiries can't be edited. That's why your modifications will be saved as a new inquiry. Enter the name for it. ")]),n("text-field",{attrs:{label:"Inquiry name","error-msg":e.errorMsg,width:"100%"},model:{value:e.name,callback:function(t){e.name=t},expression:"name"}})],1),n("div",{staticClass:"dialog-buttons-container"},[n("button",{staticClass:"secondary",on:{click:e.cancelSave}},[e._v("Cancel")]),n("button",{staticClass:"primary",on:{click:e.saveInquiry}},[e._v("Save")])])])],1)},xr=[],Or=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app-info-container"}},[n("img",{attrs:{id:"app-info-icon",src:i("db39")},on:{click:function(t){return e.$modal.show("app-info")}}}),n("modal",{attrs:{name:"app-info",classes:"dialog",height:"auto",width:"400px"}},[n("div",{staticClass:"dialog-header"},[e._v(" App info "),n("close-icon",{on:{click:function(t){return e.$modal.hide("app-info")}}})],1),n("div",{staticClass:"dialog-body"},e._l(e.info,(function(t,i){return n("div",{key:i,staticClass:"info-item"},[e._v(" "+e._s(t.name)+" "),n("div",{staticClass:"divider"}),n("div",{staticClass:"options"},e._l(t.info,(function(t,i){return n("div",{key:i},[e._v(" "+e._s(t)+" ")])})),0)])})),0)])],1)},Ar=[],Lr={name:"AppDiagnosticInfo",components:{CloseIcon:Oe},data:function(){return{info:[{name:"sqliteviz version",info:[i("9224").version]}]}},created:function(){var e=this;return Object(u["a"])(regeneratorRuntime.mark((function t(){var i,n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return i=e.$store.state,t.next=3,i.db.execute("select sqlite_version()");case 3:return n=t.sent,e.info.push({name:"SQLite version",info:n["sqlite_version()"]}),t.next=7,i.db.execute("PRAGMA compile_options");case 7:n=t.sent,e.info.push({name:"SQLite compile options",info:n.compile_options});case 9:case"end":return t.stop()}}),t)})))()}},kr=Lr,Er=(i("2930"),Object(s["a"])(kr,Or,Ar,!1,null,"a80fbe8a",null)),Sr=Er.exports,Qr={name:"MainMenu",components:{TextField:F,CloseIcon:Oe,AppDiagnosticInfo:Sr},data:function(){return{name:"",errorMsg:null}},computed:{currentInquiry:function(){return this.$store.state.currentTab},isSaved:function(){if(!this.currentInquiry)return!1;var e=this.currentInquiry.tabIndex,t=this.$store.state.tabs[e];return t&&t.isSaved},isPredefined:function(){return!!this.currentInquiry&&this.currentInquiry.isPredefined},runDisabled:function(){return this.currentInquiry&&(!this.$store.state.db||!this.currentInquiry.query)}},created:function(){this.$root.$on("createNewInquiry",this.createNewInquiry),this.$root.$on("saveInquiry",this.checkInquiryBeforeSave),document.addEventListener("keydown",this._keyListener)},beforeDestroy:function(){document.removeEventListener("keydown",this._keyListener)},methods:{createNewInquiry:function(){var e=this;this.$store.dispatch("addTab").then((function(t){e.$store.commit("setCurrentTabId",t),"/workspace"!==e.$route.path&&e.$router.push("/workspace")}))},cancelSave:function(){this.$modal.hide("save"),this.$root.$off("inquirySaved")},checkInquiryBeforeSave:function(){this.errorMsg=null,this.name="",hr.isTabNeedName(this.currentInquiry)?this.$modal.show("save"):this.saveInquiry()},saveInquiry:function(){var e=this,t=hr.isTabNeedName(this.currentInquiry);if(!t||this.name){var i=this.currentInquiry.result,n=this.currentInquiry.view,a=hr.save(this.currentInquiry,this.name);this.$store.commit("updateTab",{index:this.currentInquiry.tabIndex,name:a.name,id:a.id,query:a.query,viewType:a.viewType,viewOptions:a.viewOptions,isSaved:!0}),this.$nextTick((function(){e.currentInquiry.result=i,e.currentInquiry.view=n})),this.$modal.hide("save"),this.$root.$emit("inquirySaved")}else this.errorMsg="Inquiry name can't be empty"},_keyListener:function(e){if("/workspace"===this.$route.path){if(("r"===e.key||"Enter"===e.key)&&(e.ctrlKey||e.metaKey))return e.preventDefault(),void(this.runDisabled||this.currentInquiry.execute());if("s"===e.key&&(e.ctrlKey||e.metaKey))return e.preventDefault(),void(this.isSaved||this.checkInquiryBeforeSave())}"b"===e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),this.createNewInquiry())}}},Ur=Qr,Yr=(i("2cf3"),Object(s["a"])(Ur,wr,xr,!1,null,"707ebea6",null)),Zr=Yr.exports,Pr=(i("e506"),{name:"Main",components:{MainMenu:Zr}}),_r=Pr,qr=(i("d2db"),Object(s["a"])(_r,zr,Tr,!1,null,"25aa04f9",null)),Vr=qr.exports;n["default"].use(d["a"]);var Rr=[{path:"/",name:"Welcome",component:Cr},{path:"/",name:"Main",component:Vr,children:[{path:"/workspace",name:"Workspace",component:Ga},{path:"/inquiries",name:"Inquiries",component:fr}]}],Br=new d["a"]({routes:Rr});Br.beforeEach(function(){var e=Object(u["a"])(regeneratorRuntime.mark((function e(t,i,n){var a;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(Mi.state.db){e.next=5;break}return a=Ie.getNewDatabase(),e.next=4,a.loadDb();case 4:Mi.commit("setDb",a);case 5:n();case 6:case"end":return e.stop()}}),e)})));return function(t,i,n){return e.apply(this,arguments)}}());var Gr=Br,Hr=i("b8ae"),$r=i("1881"),Wr=i.n($r);i("017d"),i("33da"),i("6d26"),i("bebf"),i("7432"),i("4a8d"),i("e607"),i("feae");["localhost","127.0.0.1"].includes(location.hostname)||i.e("chunk-60cbf026").then(i.t.bind(null,"ddb8",7)),n["default"].use(Hr["VuePlugin"]),n["default"].use(Wr.a),n["default"].config.productionTip=!1,new n["default"]({router:Gr,store:Mi,render:function(e){return e(l)}}).$mount("#app")},"5ca7":function(e,t,i){},"5f8a":function(e,t,i){},"60f1":function(e,t,i){},"637d":function(e,t,i){"use strict";var n=i("6afd"),a=i.n(n);a.a},"64b6":function(e,t,i){"use strict";var n=i("231b"),a=i.n(n);a.a},"69e6":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iI0YzRjZGQSIgc3Ryb2tlPSIjQzhENEUzIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjQ5ODhMNi43NSAxNC4yNDk5TDIuNjI1IDEwLjEyNDlMMy42ODI1IDkuMDY3MzhMNi43NSAxMi4xMjc0TDE0LjY5MjUgNC4xOTIzOEwxNS43NSA1LjI0OTg4WiIgZmlsbD0iIzExOURGRiIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2QiIHg9IjAuNjI1IiB5PSIzLjE5MjM4IiB3aWR0aD0iMTcuMTI1IiBoZWlnaHQ9IjE0LjA1NzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiLz4KPGZlT2Zmc2V0IGR5PSIxIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMC4xNjQ3MDYgMCAwIDAgMCAwLjI0NzA1OSAwIDAgMCAwIDAuMzcyNTQ5IDAgMCAwIDAuNDUgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K"},"6a0b":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgdmlld0JveD0iMCAwIDQ1MCAxNjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ1MCIgaGVpZ2h0PSIxNjciPgo8cmVjdCB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTEyOC4yMDcgLTE2OS4wMDdDNzAuMTk3MiAtMTgwLjg0OSAxOC43NDUgLTE0MC4xMSA0LjMxOTg1IC03OC4zMzIyQy0xMC4xMDU0IC0xNi41NTM5IDE0LjMzMzcgMTUuMzMxOCAzNy4zMjE4IDU1LjE4OTFDNzIuMzc4NCAxMTUuOTcxIDE4MS41NTEgMTcwLjIzNyAyNjUuMDgzIDE2Ni43ODlDMzM3LjUxNyAxNjMuOCAzODkuMDI4IDE0NS41MTQgNDI1LjkzNiA3Ny4xMTA3QzQ4OS4zNzggLTQwLjQ2NzkgNDE3LjQ0NCAtMTE3LjA5MyAzMjUuNTI3IC0xMDIuNzQ1QzIxNC41NzEgLTg1LjQyNCAyMTMuNjI5IC0xNTEuNTcgMTI4LjIwNyAtMTY5LjAwN1oiIGZpbGw9IiNERkU4RjMiLz4KPHBhdGggZD0iTTE0Ny4yMjIgOS40ODcxNkMxNDcuMjIyIDYuNzI4MjQgMTQ5LjQ1OCA0LjQ5MTcgMTUyLjIxNyA0LjQ5MTdIMzQzLjA0NEMzNDUuODAyIDQuNDkxNyAzNDguMDM5IDYuNzI4MjQgMzQ4LjAzOSA5LjQ4NzE1VjEyMi4zODRDMzQ4LjAzOSAxMjUuMTQzIDM0NS44MDIgMTI3LjM4IDM0My4wNDQgMTI3LjM4SDE1Mi4yMTdDMTQ5LjQ1OCAxMjcuMzggMTQ3LjIyMiAxMjUuMTQzIDE0Ny4yMjIgMTIyLjM4NFY5LjQ4NzE2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE1Ni4yODQgLTEuNTczNzNDMTU4LjE1OCAtMy40NDczOSAxNjAuNjk5IC00LjUgMTYzLjM0OSAtNC41SDMzMS45MTFDMzM0LjU2MSAtNC41IDMzNy4xMDIgLTMuNDQ3MzkgMzM4Ljk3NiAtMS41NzM3M0wzNDYuMDQxIDUuNDkwOTFIMTQ5LjIyTDE1Ni4yODQgLTEuNTczNzNaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNDcuMjIyIDkuNDg3MTVDMTQ3LjIyMiA2LjcyODI0IDE0OS40NTggNC40OTE3IDE1Mi4yMTcgNC40OTE3SDM0My4wNDRDMzQ1LjgwMiA0LjQ5MTcgMzQ4LjAzOSA2LjcyODI0IDM0OC4wMzkgOS40ODcxNVYyNy40NzA4SDE0Ny4yMjJWOS40ODcxNVoiIGZpbGw9IiNBMkIxQzYiLz4KPHBhdGggZD0iTTI1NC45MzkgNjcuOTU3MUMyNTQuMjUgNjcuNTMzNSAyNTMuNTk3IDY3LjA1MTkgMjUyLjk4OCA2Ni41MTc0VjU3LjY5MzVIMjU2LjgzMlY2OS4wMThDMjU2LjE5NSA2OC42ODY5IDI1NS41NjQgNjguMzMzMiAyNTQuOTM5IDY3Ljk1NzFaTTI2Mi4zNDEgNjMuNTAzMUgyNTguNDk4VjY5LjcyNTNDMjU5Ljc1MiA3MC4zMDkgMjYxLjAzNSA3MC44Mjg4IDI2Mi4zNDEgNzEuMjgyOVY2My41MDMxWk0yNTIuOTg4IDY4LjI4NTVMMjUyLjczNyA2OC4wODM0QzI1Mi4zNTIgNjcuNzYzNSAyNTEuOTkyIDY3LjQzNTEgMjUxLjY0OCA2Ny4xMDY4TDI0Mi41MyA2Ni4wNDU5TDI0NC4yMDUgNjkuMjk1OUwyNTUuOTI3IDcwLjI1NTdDMjU0Ljg5OSA2OS42NzU4IDI1My45MTYgNjkuMDE3MiAyNTIuOTg4IDY4LjI4NTVWNjguMjg1NVpNMjYyLjE0IDczLjAwOUMyNjAuODMyIDcyLjU3OTMgMjU5LjU0OSA3Mi4wNzYyIDI1OC4yOTcgNzEuNTAxOEwyNTcuODI4IDcxLjI2NjFMMjUwLjA5OSA3MC43NTI1TDI1MS40MDYgNzMuNDg4OUwyNjQuODg3IDczLjgwMDRDMjYzLjk2NiA3My41ODE1IDI2My4wMzYgNzMuMzEyMSAyNjIuMTQgNzMuMDA5Wk0yNDYuMDk3IDU3LjY5MzVDMjQ3LjU3MiA2MC4yODc1IDI0OS4zMjcgNjIuNzEwMSAyNTEuMzMgNjQuOTE3NlY1Ni4xMjc1TDI0Mi44ODIgNTEuOTQyOUwyNDIuMTI4IDYxLjc1MThMMjUwLjgyOCA2Ni4yMzk1QzI0OC41NDcgNjMuODQ2OSAyNDYuOTE4IDYwLjkwMzYgMjQ2LjA5NyA1Ny42OTM1VjU3LjY5MzVaIiBmaWxsPSIjMTE5REZGIi8+CjxwYXRoIGQ9Ik0yMTAuNzM4IDg0LjI4NThDMjExLjc5NSA4NC44NzYzIDIxMi44NTggODUuMTcxNSAyMTMuOTI2IDg1LjE3MTVDMjE0LjgxNSA4NS4xNzE1IDIxNS4zMzYgODQuODU1NyAyMTUuNDkgODQuMjI0MkMyMTUuNTQxIDg0LjAwODUgMjE1LjU2NyA4My43NDY3IDIxNS41NjcgODMuNDM4NkMyMTUuNTY3IDgzLjEyNTQgMjE1LjUzMSA4Mi44ODQgMjE1LjQ1OSA4Mi43MTQ2QzIxNS4zODcgODIuNTQgMjE1LjI2NiA4Mi40MTE3IDIxNS4wOTcgODIuMzI5NUMyMTQuOTI3IDgyLjI0MjIgMjE0LjcwMiA4Mi4xNzggMjE0LjQxOSA4Mi4xMzdDMjE0LjE0MiA4Mi4wOTU5IDIxMy43ODggODIuMDM5NCAyMTMuMzU2IDgxLjk2NzVDMjEyLjkyNSA4MS44OTA1IDIxMi41MyA4MS44MDU4IDIxMi4xNyA4MS43MTM0QzIxMS44MTEgODEuNjIwOSAyMTEuNTA1IDgxLjQ4NzQgMjExLjI1NCA4MS4zMTI5QzIxMC43MiA4MC45MzggMjEwLjQ2MyA4MC4zMDY1IDIxMC40ODMgNzkuNDE4MlY3OS4yMjU2QzIxMC40ODMgNzguMjkxMiAyMTAuNzkyIDc3LjYyNjIgMjExLjQwOCA3Ny4yMzA5QzIxMi4wMDMgNzYuODQwNiAyMTIuOTg3IDc2LjcwNzEgMjE0LjM1OCA3Ni44MzA0QzIxNS4yOTIgNzYuOTE3NiAyMTYuMDM3IDc3LjA3OTQgMjE2LjU5MSA3Ny4zMTU2TDIxNi4yMjkgNzguNDc4NkMyMTUuNjEzIDc4LjIxNjcgMjE0Ljg3NCA3OC4wMjY3IDIxNC4wMTEgNzcuOTA4NkMyMTMuNzQ0IDc3Ljg3MjcgMjEzLjQ5MiA3Ny44NTQ3IDIxMy4yNTYgNzcuODU0N0MyMTMuMDI1IDc3Ljg1NDcgMjEyLjgxNSA3Ny44NzI3IDIxMi42MjUgNzcuOTA4NkMyMTIuNDM1IDc3Ljk0NDYgMjEyLjI3NSA3OC4wMTEzIDIxMi4xNDcgNzguMTA4OUMyMTEuOTAxIDc4LjMwOTEgMjExLjc3MiA3OC42ODE0IDIxMS43NjIgNzkuMjI1NkMyMTEuNzQ3IDc5Ljg2NzUgMjExLjkyNiA4MC4yNzU3IDIxMi4zMDEgODAuNDUwM0MyMTIuNjYxIDgwLjYxOTcgMjEzLjA4NyA4MC43Mzc4IDIxMy41OCA4MC44MDQ1QzIxNC4wNzMgODAuODY2MiAyMTQuNDc2IDgwLjkyMjYgMjE0Ljc4OSA4MC45NzRDMjE1LjEwMiA4MS4wMjAyIDIxNS4zODcgODEuMDg0NCAyMTUuNjQ0IDgxLjE2NjVDMjE1LjkgODEuMjQ4NyAyMTYuMTIxIDgxLjM3OTYgMjE2LjMwNiA4MS41NTkzQzIxNi42OTEgODEuOTIzOSAyMTYuODc5IDgyLjU1OCAyMTYuODY4IDgzLjQ2MTdDMjE2Ljg0MyA4NS4wMzggMjE2LjE4NSA4NS45MzY2IDIxNC44OTcgODYuMTU3NEMyMTQuNTA2IDg2LjIyNDEgMjE0LjExNiA4Ni4yNTc1IDIxMy43MjYgODYuMjU3NUMyMTMuMzM2IDg2LjI1NzUgMjEyLjk3NiA4Ni4yMzE4IDIxMi42NDggODYuMTgwNUMyMTIuMzI0IDg2LjEzNDMgMjEyLjAxNCA4Ni4wNjc1IDIxMS43MTYgODUuOTgwMkMyMTEuMTUxIDg1LjgyMSAyMTAuNjQgODUuNjEwNSAyMTAuMTgzIDg1LjM0ODdMMjEwLjczOCA4NC4yODU4WiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjI1Ljc3OSA4NS4yMjU0QzIyNC43OTkgODUuOTEzNSAyMjMuNzYyIDg2LjI1NzUgMjIyLjY2OCA4Ni4yNTc1QzIyMS4zODkgODYuMjU3NSAyMjAuNTM3IDg1LjgwMzEgMjIwLjExMSA4NC44OTQyQzIxOS44NjQgODQuMzgwOCAyMTkuNzIxIDgzLjczMTMgMjE5LjY4IDgyLjk0NTdDMjE5LjY2NCA4Mi41ODYyIDIxOS42NTYgODIuMTkwOSAyMTkuNjU2IDgxLjc1OTZDMjE5LjY1NiA4MS4zMjMxIDIxOS42NTkgODAuODg0MSAyMTkuNjY0IDgwLjQ0MjVDMjE5LjY3NCA4MC4wMDEgMjE5LjcwOCA3OS41OTI4IDIxOS43NjQgNzkuMjE3OUMyMTkuODIxIDc4Ljg0MzEgMjE5LjkwOCA3OC41MDY4IDIyMC4wMjYgNzguMjA5QzIyMC4xNDkgNzcuOTA2MSAyMjAuMzI0IDc3LjY0OTMgMjIwLjU1IDc3LjQzODhDMjIxLjAxNyA3Ny4wMDI0IDIyMS43MzYgNzYuNzg0MSAyMjIuNzA2IDc2Ljc4NDFDMjIzLjY4MiA3Ni43ODQxIDIyNC43MTkgNzcuMDQ2IDIyNS44MTggNzcuNTY5N0wyMjUuOTQxIDc2LjkzODJIMjI3LjA1TDIyNy4wNTggODkuNjA3OEgyMjUuNzc5Vjg1LjIyNTRaTTIyNS43NzkgNzguNjMyNkMyMjQuODU1IDc4LjE3MDUgMjIzLjk2MiA3Ny45Mzk0IDIyMy4wOTkgNzcuOTM5NEMyMjIuNDczIDc3LjkzOTQgMjIyLjA1OSA3Ny45OTA4IDIyMS44NTkgNzguMDkzNUMyMjEuNjU5IDc4LjE5NjIgMjIxLjUwNSA3OC4zMjk3IDIyMS4zOTcgNzguNDk0QzIyMS4yOTQgNzguNjU4MyAyMjEuMjEgNzguODg0MiAyMjEuMTQzIDc5LjE3MTdDMjIxLjAyNSA3OS43MTA5IDIyMC45NjYgODAuNTk5MiAyMjAuOTY2IDgxLjgzNjZWODIuMDA2QzIyMC45NjYgODMuMTQ1OSAyMjEuMTA3IDgzLjk0NDMgMjIxLjM4OSA4NC40MDEzQzIyMS42NzIgODQuODY4NiAyMjIuMTg4IDg1LjEwMjIgMjIyLjkzNyA4NS4xMDIySDIyMy4wNTNDMjIzLjc2MiA4NS4xMDIyIDIyNC40ODYgODQuOTA3MSAyMjUuMjI1IDg0LjUxNjlDMjI1LjQzNSA4NC40MDkgMjI1LjYyIDg0LjI5ODYgMjI1Ljc3OSA4NC4xODU3Vjc4LjYzMjZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzAuNzAxIDczLjAxMDJMMjMxLjk3MiA3Mi45MDI0Vjg2LjEwMzRIMjMwLjcxNkwyMzAuNzAxIDczLjAxMDJaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzYuNjA4IDc0Ljc0MzFDMjM2LjI2NCA3NC43NDMxIDIzNi4wNDQgNzQuNjk0NCAyMzUuOTQ2IDc0LjU5NjhDMjM1Ljc5MiA3NC40Mzc2IDIzNS43MTUgNzQuMjE5NCAyMzUuNzE1IDczLjk0MjFDMjM1LjcxNSA3My42NTk3IDIzNS43MyA3My40NTk1IDIzNS43NjEgNzMuMzQxNEMyMzUuNzk3IDczLjIxODIgMjM1Ljg0OCA3My4xMjMyIDIzNS45MTUgNzMuMDU2NEMyMzYuMDM4IDcyLjkzMzIgMjM2LjIyNiA3Mi44NzE2IDIzNi40NzcgNzIuODcxNkMyMzYuNzM0IDcyLjg3MTYgMjM2LjkxNiA3Mi44ODQ0IDIzNy4wMjQgNzIuOTEwMUMyMzcuMTM3IDcyLjkzNTggMjM3LjIzIDcyLjk4NDUgMjM3LjMwMSA3My4wNTY0QzIzNy40MjUgNzMuMTc5NyAyMzcuNDg2IDczLjM4MjUgMjM3LjQ4NiA3My42NjQ5QzIzNy40ODYgNzMuOTQyMSAyMzcuNDcxIDc0LjE0MjQgMjM3LjQ0IDc0LjI2NTZDMjM3LjQxNCA3NC4zODM3IDIzNy4zNjggNzQuNDc4NyAyMzcuMzAxIDc0LjU1MDZDMjM3LjE3MyA3NC42NzkgMjM2Ljk0MiA3NC43NDMxIDIzNi42MDggNzQuNzQzMVpNMjM1Ljk4NCA3Ni45MzgySDIzNy4yNDhWODYuMTAzNEgyMzZMMjM1Ljk4NCA3Ni45MzgyWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjQ1LjQ3MyA4NS42NjQ0QzI0NC42MzYgODYuMDU5OCAyNDMuODY0IDg2LjI1NzUgMjQzLjE1NSA4Ni4yNTc1QzI0MS44NzEgODYuMjU3NSAyNDEuMTQyIDg1LjcwODEgMjQwLjk2OCA4NC42MDkzQzI0MC45MjcgODQuMzQ3NCAyNDAuOTA2IDgzLjk2NzUgMjQwLjkwNiA4My40Njk0Vjc4LjAwODdIMjM5Ljc5N1Y3Ny4wNjE0TDI0MC45MDYgNzYuOTM4MkwyNDEuMTA2IDc0Ljg0MzNIMjQyLjE3N1Y3Ni45MzgySDI0NC44NDlWNzguMDA4N0gyNDIuMTc3VjgzLjQ0NjNDMjQyLjE3NyA4NC4wNzc4IDI0Mi4yMjMgODQuNDgwOSAyNDIuMzE1IDg0LjY1NTVDMjQyLjQ4NSA4NC45NzM4IDI0Mi44MjQgODUuMTMzIDI0My4zMzIgODUuMTMzQzI0My44NCA4NS4xMzMgMjQ0LjQwOCA4NC45NzY0IDI0NS4wMzQgODQuNjYzMkwyNDUuNDczIDg1LjY2NDRaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTQuNzE1IDg1LjYxODJDMjUzLjY1MyA4Ni4wNDQ0IDI1Mi40NzkgODYuMjU3NSAyNTEuMTk2IDg2LjI1NzVDMjUwLjQ1MSA4Ni4yNTc1IDI0OS44MiA4Ni4xODA1IDI0OS4zMDEgODYuMDI2NEMyNDguNDc0IDg1Ljc5MDIgMjQ3LjkyNSA4NS4zMDI0IDI0Ny42NTMgODQuNTYzMUMyNDcuNDAxIDgzLjg2OTkgMjQ3LjI3NSA4Mi44NDMgMjQ3LjI3NSA4MS40ODIzVjgxLjA4OTVDMjQ3LjI3NSA3OS40NjE4IDI0Ny42MTQgNzguMzE5NCAyNDguMjkyIDc3LjY2MjJDMjQ4LjkwMyA3Ny4wNzY4IDI0OS45MjIgNzYuNzg0MSAyNTEuMzUgNzYuNzg0MUMyNTIuNzQxIDc2Ljc4NDEgMjUzLjY5MSA3Ny4xMjgyIDI1NC4xOTkgNzcuODE2MkMyNTQuNDQ2IDc4LjE0OTkgMjU0LjYwOCA3OC41NTU2IDI1NC42ODUgNzkuMDMzMUMyNTQuNzY3IDc5LjUwNTUgMjU0LjgwOCA3OS45NTczIDI1NC44MDggODAuMzg4NkMyNTQuODA4IDgxLjA2MTMgMjU0Ljc5MyA4MS41ODI0IDI1NC43NjIgODEuOTUyMUMyNTQuMDM4IDgxLjk4MjkgMjUzLjM4OCA4MS45OTgzIDI1Mi44MTMgODEuOTk4M0MyNTIuODEzIDgxLjk5ODMgMjUyLjQgODEuOTk4MyAyNTEuNTczIDgxLjk5ODNDMjUwLjI3OSA4MS45OTgzIDI0OS4yODMgODEuOTQxOSAyNDguNTg1IDgxLjgyODlDMjQ4LjU4NSA4My4wMDk4IDI0OC43MzQgODMuODM0IDI0OS4wMzEgODQuMzAxMkMyNDkuMzk2IDg0Ljg3MTEgMjUwLjEyMyA4NS4xNTYxIDI1MS4yMTEgODUuMTU2MUMyNTIuMyA4NS4xNTYxIDI1My4zNDIgODQuOTQzIDI1NC4zMzggODQuNTE2OUwyNTQuNzE1IDg1LjYxODJaTTI1My41MDYgODAuOTI3OFY4MC4xODg0QzI1My41MDYgNzkuMzgyMyAyNTMuMzUgNzguODA3MiAyNTMuMDM2IDc4LjQ2MzJDMjUyLjY4NyA3OC4wNzgxIDI1Mi4wODQgNzcuODg1NSAyNTEuMjI3IDc3Ljg4NTVDMjUwLjIgNzcuODg1NSAyNDkuNDk5IDc4LjEwODkgMjQ5LjEyNCA3OC41NTU2QzI0OC43NjQgNzguOTgxOCAyNDguNTg1IDc5Ljc3MjUgMjQ4LjU4NSA4MC45Mjc4SDI1My41MDZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTYuOTU3IDc2LjkzODJIMjU4LjMzNUwyNjAuNzM4IDg0LjQxNjdMMjYwLjk2OSA4NS4xNzkyTDI2MS4xODUgODQuNDE2N0wyNjMuNDggNzYuOTM4MkgyNjQuODc0TDI2MS43NzggODYuMTAzNEgyNjAuMDk5TDI1Ni45NTcgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI2OC4xNTUgNzQuNzQzMUMyNjcuODExIDc0Ljc0MzEgMjY3LjU5IDc0LjY5NDQgMjY3LjQ5MyA3NC41OTY4QzI2Ny4zMzkgNzQuNDM3NiAyNjcuMjYyIDc0LjIxOTQgMjY3LjI2MiA3My45NDIxQzI2Ny4yNjIgNzMuNjU5NyAyNjcuMjc3IDczLjQ1OTUgMjY3LjMwOCA3My4zNDE0QzI2Ny4zNDQgNzMuMjE4MiAyNjcuMzk1IDczLjEyMzIgMjY3LjQ2MiA3My4wNTY0QzI2Ny41ODUgNzIuOTMzMiAyNjcuNzczIDcyLjg3MTYgMjY4LjAyNCA3Mi44NzE2QzI2OC4yODEgNzIuODcxNiAyNjguNDYzIDcyLjg4NDQgMjY4LjU3MSA3Mi45MTAxQzI2OC42ODQgNzIuOTM1OCAyNjguNzc3IDcyLjk4NDUgMjY4Ljg0OCA3My4wNTY0QzI2OC45NzIgNzMuMTc5NyAyNjkuMDMzIDczLjM4MjUgMjY5LjAzMyA3My42NjQ5QzI2OS4wMzMgNzMuOTQyMSAyNjkuMDE4IDc0LjE0MjQgMjY4Ljk4NyA3NC4yNjU2QzI2OC45NjEgNzQuMzgzNyAyNjguOTE1IDc0LjQ3ODcgMjY4Ljg0OCA3NC41NTA2QzI2OC43MiA3NC42NzkgMjY4LjQ4OSA3NC43NDMxIDI2OC4xNTUgNzQuNzQzMVpNMjY3LjUzMSA3Ni45MzgySDI2OC43OTVWODYuMTAzNEgyNjcuNTQ3TDI2Ny41MzEgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI3MS42MDYgODUuMjMzMUwyNzYuMjk2IDc4LjAwMUgyNzEuNTA2Vjc2LjkzODJIMjc3Ljg1MlY3Ny44MDg1TDI3My4xNzcgODUuMDMyOUgyNzguMDQ1Vjg2LjEwMzRIMjcxLjYwNlY4NS4yMzMxWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjA0LjE3IDE2LjQ4MUMyMDQuMTcgMTQuMjczOSAyMDUuOTU5IDEyLjQ4NDYgMjA4LjE2NiAxMi40ODQ2SDMzNi4wNUMzMzguMjU3IDEyLjQ4NDYgMzQwLjA0NiAxNC4yNzM5IDM0MC4wNDYgMTYuNDgxVjE2LjQ4MUMzNDAuMDQ2IDE4LjY4ODEgMzM4LjI1NyAyMC40NzczIDMzNi4wNSAyMC40NzczSDIwOC4xNjZDMjA1Ljk1OSAyMC40NzczIDIwNC4xNyAxOC42ODgxIDIwNC4xNyAxNi40ODFWMTYuNDgxWiIgZmlsbD0iI0YzRjZGQSIvPgo8cGF0aCBkPSJNMTY1LjIwNSAxNi40ODA4QzE2NS4yMDUgMTkuMjM5NyAxNjIuOTY5IDIxLjQ3NjMgMTYwLjIxIDIxLjQ3NjNDMTU3LjQ1MSAyMS40NzYzIDE1NS4yMTQgMTkuMjM5NyAxNTUuMjE0IDE2LjQ4MDhDMTU1LjIxNCAxMy43MjE5IDE1Ny40NTEgMTEuNDg1NCAxNjAuMjEgMTEuNDg1NEMxNjIuOTY5IDExLjQ4NTQgMTY1LjIwNSAxMy43MjE5IDE2NS4yMDUgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE4MS4xOTEgMTYuNDgwOEMxODEuMTkxIDE5LjIzOTcgMTc4Ljk1NCAyMS40NzYzIDE3Ni4xOTUgMjEuNDc2M0MxNzMuNDM2IDIxLjQ3NjMgMTcxLjIgMTkuMjM5NyAxNzEuMiAxNi40ODA4QzE3MS4yIDEzLjcyMTkgMTczLjQzNiAxMS40ODU0IDE3Ni4xOTUgMTEuNDg1NEMxNzguOTU0IDExLjQ4NTQgMTgxLjE5MSAxMy43MjE5IDE4MS4xOTEgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE5Ny4xNzYgMTYuNDgwOEMxOTcuMTc2IDE5LjIzOTcgMTk0Ljk0IDIxLjQ3NjMgMTkyLjE4MSAyMS40NzYzQzE4OS40MjIgMjEuNDc2MyAxODcuMTg2IDE5LjIzOTcgMTg3LjE4NiAxNi40ODA4QzE4Ny4xODYgMTMuNzIxOSAxODkuNDIyIDExLjQ4NTQgMTkyLjE4MSAxMS40ODU0QzE5NC45NCAxMS40ODU0IDE5Ny4xNzYgMTMuNzIxOSAxOTcuMTc2IDE2LjQ4MDhaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNzQuMDk5IC0wLjc0MTUzNUMxNzQuMjgzIC0wLjkwOTg0MyAxNzQuNTI0IC0xLjAwMzE3IDE3NC43NzMgLTEuMDAzMTdIMzE4LjQ5QzMxOC43MzkgLTEuMDAzMTcgMzE4Ljk4IC0wLjkwOTg0MyAzMTkuMTY0IC0wLjc0MTUzM1YtMC43NDE1MzNDMzE5LjgzNyAtMC4xMjYzMTYgMzE5LjQwMiAwLjk5NTAwOCAzMTguNDkgMC45OTUwMDhIMTc0Ljc3M0MxNzMuODYxIDAuOTk1MDA4IDE3My40MjYgLTAuMTI2MzE5IDE3NC4wOTkgLTAuNzQxNTM1Vi0wLjc0MTUzNVoiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTM0Ljg3NSAxMTkuNzM1TDQyLjU0NjUgMTI2LjEzNkwzMC4zODU1IDE0MC43MTJMMjIuNzE0IDEzNC4zMTFMMzQuODc1IDExOS43MzVaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik0yNy4wOTcyIDEyOS4yNTdMMzQuNzY4NyAxMzUuNjU3QzM0Ljc2ODcgMTM1LjY1NyAzOC44MDggMTQxLjExMiAzOS4zMDM0IDE0Ni41OTdDMzkuNDk0MSAxNDguNzA4IDM3LjA2MzMgMTQ5LjI4MiAzNy4wNjMzIDE0OS4yODJMMjEuMzM2NyAxMzYuMTYxTDI3LjA5NzIgMTI5LjI1N1oiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTUyLjg5MjEgMzIuODE0NUw5Mi4yNzE4IDY0LjI4NThDMTA0Ljg3NCA5Ni4yOTIzIDM4LjMyMDkgMTMzLjcyMyAzOC4zMjA5IDEzMy43MjNMMjcuODU1NiAxMjYuMDU4QzI3Ljg1NTYgMTI2LjA1OCAzOS42ODg4IDEwOC41MjYgNTAuODA5NSA4MS43Njk5QzU2LjgzMDEgNjcuMjg0MyA1NC41NzMxIDQ4LjE0ODggNTIuODkyMSAzMi44MTQ1WiIgZmlsbD0iIzBENzZCRiIvPgo8cGF0aCBkPSJNMTAzLjI2MiAxMzAuNzI2SDExMy4yNTNWMTQ5LjcwOEgxMDMuMjYyVjEzMC43MjZaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik01NC4zMDY3IDQyLjMwNTlDNTAuODEwMSAzNS44MTE4IDQ4LjgxMTcgMzEuMzE1OSA0OS43NzM5IDE3LjgyODFIMTE1LjAxMUMxMjEuMjQ2IDI4LjMxODYgMTI1LjI0MiA1NC4yOTQ5IDEyNS4yNDIgNzUuNzc1NEMxMjUuMjQyIDk3LjI1NTkgMTIyLjI0NSAxMTYuMjM5IDExNS4wMTEgMTQxLjIxNkgxMDAuNzY0QzEwMC43NjQgMTQxLjIxNiA5NC43NzAxIDEwMS4yNTIgOTIuMjcyMyA4Mi43NjlDOTAuOTY3OSA3My4xMTYgNTcuMDE5NyA0Ny4zNDQ1IDU0LjMwNjcgNDIuMzA1OVoiIGZpbGw9IiMxMTlERkYiLz4KPHBhdGggZD0iTTEwMy4yNjIgMTQ0LjQyNkgxMTMuMjUzQzExMy4yNTMgMTQ0LjQyNiAxMTkuODQ5IDE0Ni4wMjcgMTIzLjc0NCAxNDkuOTIxQzEyNS4yNDIgMTUxLjQyIDEyMy43NDQgMTUzLjQxOCAxMjMuNzQ0IDE1My40MThIMTAzLjI2MlYxNDQuNDI2WiIgZmlsbD0iIzUwNjc4NCIvPgo8L2c+Cjwvc3ZnPgo="},"6afd":function(e,t,i){},"6d26":function(e,t,i){},"6eba":function(e,t,i){},7314:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTkuOTk5ODQgMTYuNjY2N0M2LjMyNDg0IDE2LjY2NjcgMy4zMzMxNyAxMy42NzUgMy4zMzMxNyAxMEMzLjMzMzE3IDYuMzI1MDIgNi4zMjQ4NCAzLjMzMzM1IDkuOTk5ODQgMy4zMzMzNUMxMy42NzQ4IDMuMzMzMzUgMTYuNjY2NSA2LjMyNTAyIDE2LjY2NjUgMTBDMTYuNjY2NSAxMy42NzUgMTMuNjc0OCAxNi42NjY3IDkuOTk5ODQgMTYuNjY2N1pNOS45OTk4NCAxLjY2NjY5QzguOTA1NDkgMS42NjY2OSA3LjgyMTg2IDEuODgyMjQgNi44MTA4MSAyLjMwMTAyQzUuNzk5NzYgMi43MTk4MSA0Ljg4MTEgMy4zMzM2NCA0LjEwNzI4IDQuMTA3NDZDMi41NDQ0OCA1LjY3MDI3IDEuNjY2NSA3Ljc4OTg4IDEuNjY2NSAxMEMxLjY2NjUgMTIuMjEwMiAyLjU0NDQ4IDE0LjMyOTggNC4xMDcyOCAxNS44OTI2QzQuODgxMSAxNi42NjY0IDUuNzk5NzYgMTcuMjgwMiA2LjgxMDgxIDE3LjY5OUM3LjgyMTg2IDE4LjExNzggOC45MDU0OSAxOC4zMzM0IDkuOTk5ODQgMTguMzMzNEMxMi4yMSAxOC4zMzM0IDE0LjMyOTYgMTcuNDU1NCAxNS44OTI0IDE1Ljg5MjZDMTcuNDU1MiAxNC4zMjk4IDE4LjMzMzIgMTIuMjEwMiAxOC4zMzMyIDEwQzE4LjMzMzIgOC45MDU2NyAxOC4xMTc2IDcuODIyMDQgMTcuNjk4OCA2LjgxMDk5QzE3LjI4IDUuNzk5OTUgMTYuNjY2MiA0Ljg4MTI5IDE1Ljg5MjQgNC4xMDc0NkMxNS4xMTg2IDMuMzMzNjQgMTQuMTk5OSAyLjcxOTgxIDEzLjE4ODkgMi4zMDEwMkMxMi4xNzc4IDEuODgyMjQgMTEuMDk0MiAxLjY2NjY5IDkuOTk5ODQgMS42NjY2OVoiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iNi4zNjc2OCIgeT0iNy41NDg1NSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDYuMzY3NjggNy41NDg1NSkiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iMTIuNDUxNyIgeT0iNi4zNjc3MSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTIuNDUxNyA2LjM2NzcxKSIgZmlsbD0iI0VGNTUzQiIvPgo8L3N2Zz4K"},7432:function(e,t,i){},"77ca":function(e,t,i){},7974:function(e,t,i){},"7a18":function(e,t,i){},"7e99":function(e,t,i){"use strict";var n=i("3db6"),a=i.n(n);a.a},"807c":function(e,t,i){"use strict";var n=i("3c99"),a=i.n(n);a.a},"80ad":function(e,t,i){"use strict";var n=i("2337"),a=i.n(n);a.a},"81e6":function(e,t,i){"use strict";var n=i("3856"),a=i.n(n);a.a},8458:function(e,t,i){},"85ec":function(e,t,i){},"87d4":function(e,t,i){e.exports=i.p+"img/file.f5540c43.png"},8913:function(e,t,i){},"8c0b":function(e,t,i){},"8f6e":function(e,t,i){},"8fcc":function(e,t,i){},9080:function(e,t,i){},9224:function(e){e.exports=JSON.parse('{"name":"sqliteviz","version":"0.15.0","license":"Apache-2.0","private":true,"scripts":{"serve":"vue-cli-service serve","build":"NODE_OPTIONS=--max_old_space_size=4096 vue-cli-service build","test":"vue-cli-service karma","lint":"vue-cli-service lint"},"dependencies":{"codemirror":"^5.57.0","core-js":"^3.6.5","html2canvas":"^1.1.4","jquery":"^3.6.0","nanoid":"^3.1.12","papaparse":"^5.3.1","pivottable":"^2.23.0","plotly.js":"^1.58.4","promise-worker":"^2.0.1","react":"^16.13.1","react-chart-editor":"^0.45.0","react-dom":"^16.13.1","sql.js":"file:./lib/sql-js","sqlite-parser":"^1.0.1","vue":"^2.6.11","vue-codemirror":"^4.0.6","vue-js-modal":"^2.0.0-rc.6","vue-multiselect":"^2.1.6","vue-router":"^3.2.0","vue2-teleport":"^1.0.1","vuejs-paginate":"^2.1.0","vuera":"^0.2.7","vuex":"^3.4.0"},"devDependencies":{"@vue/cli-plugin-babel":"^4.4.0","@vue/cli-plugin-eslint":"^4.4.0","@vue/cli-plugin-router":"^4.4.0","@vue/cli-plugin-vuex":"^4.4.0","@vue/cli-service":"^4.4.0","@vue/eslint-config-standard":"^5.1.2","@vue/test-utils":"^1.1.2","babel-eslint":"^10.1.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","eslint":"^6.7.2","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.0","eslint-plugin-vue":"^6.2.2","karma":"^3.1.4","karma-firefox-launcher":"^2.1.0","karma-webpack":"^4.0.2","vue-cli-plugin-ui-karma":"^0.2.5","vue-template-compiler":"^2.6.11","workbox-webpack-plugin":"^6.1.5","worker-loader":"^3.0.8"}}')},"93dd":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iIzExOURGRiIgc3Ryb2tlPSIjMEQ3NkJGIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjVMNi43NSAxNC4yNUwyLjYyNSAxMC4xMjVMMy42ODI1IDkuMDY3NUw2Ljc1IDEyLjEyNzVMMTQuNjkyNSA0LjE5MjVMMTUuNzUgNS4yNVoiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZCIgeD0iMC42MjUiIHk9IjMuMTkyNSIgd2lkdGg9IjE3LjEyNSIgaGVpZ2h0PSIxNC4wNTc1IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+CjxmZU9mZnNldCBkeT0iMSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIi8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAuMTY0NzA2IDAgMCAwIDAgMC4yNDcwNTkgMCAwIDAgMCAwLjM3MjU0OSAwIDAgMCAwLjcgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K"},"9ae5":function(e,t,i){},"9bf4":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE0IiBoZWlnaHQ9IjkwIiB2aWV3Qm94PSIwIDAgMTE0IDkwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNOTYuMzgyOCAxLjkzODk1QzkxLjQyNDQgMC4wOTI4MTQgODYuNjAyMiA1LjYyNTA1IDg1Ljg1OCAxMC42ODE2TDk3LjI4NTEgMTUuNTQ5QzEwMC4xOTQgMTAuNTg1NiAxMDEuMzQxIDMuNzg1MDggOTYuMzgyOCAxLjkzODk1WiIgZmlsbD0iI0YzQzZCRiIvPgo8cGF0aCBkPSJNODQuOTc3NSA5LjEyNDEzQzc1LjA2NTMgMzUuMjAzNSAzMC43MTc5IDQ2LjczNTkgMjEuNDEwNiAzNy43MjY1TDE0LjUzNTkgNzkuNDg1N0M2Ny43NjA3IDg2LjQ5MTIgOTEuOTI2NCA1NS40MTExIDk5LjA5NzMgMTQuNzEzOEw4NC45Nzc1IDkuMTI0MTNaIiBmaWxsPSIjQTJCMUM2Ii8+Cjwvc3ZnPgo="},a1f0:function(e,t,i){"use strict";var n=i("5ca7"),a=i.n(n);a.a},a303:function(e,t,i){},a96d:function(e,t,i){"use strict";var n=i("3a01"),a=i.n(n);a.a},b288:function(e,t,i){},b3ae:function(e,t,i){},b51c:function(e,t,i){},b5fd:function(e,t,i){"use strict";var n=i("5f8a"),a=i.n(n);a.a},be12:function(e,t,i){"use strict";var n=i("9ae5"),a=i.n(n);a.a},bebf:function(e,t,i){},c4dc:function(e,t,i){"use strict";var n=i("1c6b"),a=i.n(n);a.a},cba9:function(e,t,i){"use strict";var n=i("6eba"),a=i.n(n);a.a},cd48:function(e,t,i){"use strict";var n=i("8f6e"),a=i.n(n);a.a},d24f:function(e,t,i){},d2db:function(e,t,i){"use strict";var n=i("9080"),a=i.n(n);a.a},d7ec:function(e,t,i){"use strict";var n=i("4313"),a=i.n(n);a.a},d9ad:function(e,t,i){"use strict";var n=i("a303"),a=i.n(n);a.a},daef:function(e,t,i){"use strict";var n=i("547f"),a=i.n(n);a.a},db39:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExIDlIMTNWN0gxMVY5Wk0xMiAyMEM3LjU5IDIwIDQgMTYuNDEgNCAxMkM0IDcuNTkgNy41OSA0IDEyIDRDMTYuNDEgNCAyMCA3LjU5IDIwIDEyQzIwIDE2LjQxIDE2LjQxIDIwIDEyIDIwWk0xMiAyQzEwLjY4NjggMiA5LjM4NjQyIDIuMjU4NjYgOC4xNzMxNyAyLjc2MTJDNi45NTk5MSAzLjI2Mzc1IDUuODU3NTIgNC4wMDAzNSA0LjkyODkzIDQuOTI4OTNDMy4wNTM1NyA2LjgwNDMgMiA5LjM0Nzg0IDIgMTJDMiAxNC42NTIyIDMuMDUzNTcgMTcuMTk1NyA0LjkyODkzIDE5LjA3MTFDNS44NTc1MiAxOS45OTk3IDYuOTU5OTEgMjAuNzM2MiA4LjE3MzE3IDIxLjIzODhDOS4zODY0MiAyMS43NDEzIDEwLjY4NjggMjIgMTIgMjJDMTQuNjUyMiAyMiAxNy4xOTU3IDIwLjk0NjQgMTkuMDcxMSAxOS4wNzExQzIwLjk0NjQgMTcuMTk1NyAyMiAxNC42NTIyIDIyIDEyQzIyIDEwLjY4NjggMjEuNzQxMyA5LjM4NjQyIDIxLjIzODggOC4xNzMxN0MyMC43MzYyIDYuOTU5OTEgMTkuOTk5NyA1Ljg1NzUyIDE5LjA3MTEgNC45Mjg5M0MxOC4xNDI1IDQuMDAwMzUgMTcuMDQwMSAzLjI2Mzc1IDE1LjgyNjggMi43NjEyQzE0LjYxMzYgMi4yNTg2NiAxMy4zMTMyIDIgMTIgMlYyWk0xMSAxN0gxM1YxMUgxMVYxN1oiIGZpbGw9IiNBMkIxQzYiLz4KPC9zdmc+Cg=="},dbb4:function(e,t,i){},dd9c:function(e,t,i){"use strict";var n=i("345a"),a=i.n(n);a.a},dfd4:function(e,t,i){"use strict";var n=i("7974"),a=i.n(n);a.a},e506:function(e,t,i){},f2b5:function(e,t,i){"use strict";var n=i("0cce"),a=i.n(n);a.a},f4da:function(e,t,i){"use strict";var n=i("8913"),a=i.n(n);a.a},f4e5:function(e,t,i){"use strict";var n=i("b51c"),a=i.n(n);a.a},f7a6:function(e,t,i){"use strict";var n=i("0720"),a=i.n(n);a.a},f8c1:function(e,t,i){"use strict";var n=i("8458"),a=i.n(n);a.a},fc07:function(e,t,i){"use strict";var n=i("60f1"),a=i.n(n);a.a},feae:function(e,t,i){}}); +//# sourceMappingURL=app.e4131c1b.js.map \ No newline at end of file diff --git a/js/app.023944c6.js.map b/js/app.e4131c1b.js.map similarity index 99% rename from js/app.023944c6.js.map rename to js/app.e4131c1b.js.map index caba77b..5df1b99 100644 --- a/js/app.023944c6.js.map +++ b/js/app.e4131c1b.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?9b05","webpack:///./src/components/Logs.vue?0fc7","webpack:///./src/assets/images/success.svg","webpack:///./src/assets/images/chevron.svg","webpack:///./src/components/svg/export.vue?1835","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue?f796","webpack:///./src/components/svg/addTable.vue?404b","webpack:///./src/assets/images/body.svg","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue?8a2b","webpack:///./src/views/Main/Workspace/Schema/index.vue?d772","webpack:///./src/assets/images/rightArm.svg","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue?99f2","webpack:///./src/views/Main/AppDiagnosticInfo.vue?eb56","webpack:///./src/views/Main/Workspace/index.vue?2f51","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue?e14b","webpack:///./src/views/Main/MainMenu.vue?58b4","webpack:///./src/components/svg/treeChevron.vue?b6ad","webpack:///./src/components/DbUploader.vue?2df9","webpack:///./src/assets/images/top.svg","webpack:///./src/assets/images/checkbox_checked_disabled.svg","webpack:///./src/components/svg/dropDownChevron.vue?d4f2","webpack:///./src/components/svg/sort.vue?a914","webpack:///./src/App.vue?6597","webpack:///./src/App.vue","webpack:///./src/views/Main/Workspace/index.vue?5f2c","webpack:///./src/components/Splitpanes/index.vue?5103","webpack:///./src/components/Splitpanes/splitter.js","webpack:///src/components/Splitpanes/index.vue","webpack:///./src/components/Splitpanes/index.vue?7002","webpack:///./src/components/Splitpanes/index.vue","webpack:///./src/views/Main/Workspace/Schema/index.vue?b274","webpack:///./src/lib/utils/fileIo.js","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue?ead1","webpack:///./src/components/svg/treeChevron.vue?5188","webpack:///src/components/svg/treeChevron.vue","webpack:///./src/components/svg/treeChevron.vue?1b38","webpack:///./src/components/svg/treeChevron.vue","webpack:///src/views/Main/Workspace/Schema/TableDescription.vue","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue?c905","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue","webpack:///./src/components/TextField.vue?5c99","webpack:///./src/components/svg/hint.vue?d640","webpack:///./src/tooltipMixin.js","webpack:///src/components/svg/hint.vue","webpack:///./src/components/svg/hint.vue?7e42","webpack:///./src/components/svg/hint.vue","webpack:///src/components/TextField.vue","webpack:///./src/components/TextField.vue?2591","webpack:///./src/components/TextField.vue","webpack:///./src/components/DbUploader.vue?ab99","webpack:///./src/components/svg/changeDb.vue?4d10","webpack:///src/components/svg/changeDb.vue","webpack:///./src/components/svg/changeDb.vue?8a76","webpack:///./src/components/svg/changeDb.vue","webpack:///./src/lib/database/_statements.js","webpack:///./src/lib/database/_worker.js","webpack:///./src/lib/database/index.js","webpack:///./src/components/CsvImport/index.vue?9f88","webpack:///./src/components/CsvImport/csv.js","webpack:///./src/components/svg/close.vue?b5aa","webpack:///src/components/svg/close.vue","webpack:///./src/components/svg/close.vue?e99c","webpack:///./src/components/svg/close.vue","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue?0e7d","webpack:///./src/components/CsvImport/DelimiterSelector/ascii.js","webpack:///./src/components/svg/dropDownChevron.vue?717a","webpack:///src/components/svg/dropDownChevron.vue","webpack:///./src/components/svg/dropDownChevron.vue?82eb","webpack:///./src/components/svg/dropDownChevron.vue","webpack:///./src/components/svg/clear.vue?ce36","webpack:///src/components/svg/clear.vue","webpack:///./src/components/svg/clear.vue?295f","webpack:///./src/components/svg/clear.vue","webpack:///src/components/CsvImport/DelimiterSelector/index.vue","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue?8465","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue","webpack:///./src/components/CheckBox.vue?4353","webpack:///src/components/CheckBox.vue","webpack:///./src/components/CheckBox.vue?093c","webpack:///./src/components/CheckBox.vue","webpack:///./src/components/SqlTable/index.vue?ca2f","webpack:///./src/components/SqlTable/Pager.vue?fb09","webpack:///src/components/SqlTable/Pager.vue","webpack:///./src/components/SqlTable/Pager.vue?7612","webpack:///./src/components/SqlTable/Pager.vue","webpack:///src/components/SqlTable/index.vue","webpack:///./src/components/SqlTable/index.vue?c2e6","webpack:///./src/components/SqlTable/index.vue","webpack:///./src/components/Logs.vue?54e0","webpack:///./src/components/LoadingIndicator.vue?16dc","webpack:///src/components/LoadingIndicator.vue","webpack:///./src/components/LoadingIndicator.vue?19ce","webpack:///./src/components/LoadingIndicator.vue","webpack:///src/components/Logs.vue","webpack:///./src/components/Logs.vue?e94a","webpack:///./src/components/Logs.vue","webpack:///./src/lib/utils/time.js","webpack:///src/components/CsvImport/index.vue","webpack:///./src/components/CsvImport/index.vue?ee8f","webpack:///./src/components/CsvImport/index.vue","webpack:///src/components/DbUploader.vue","webpack:///./src/components/DbUploader.vue?1d2f","webpack:///./src/components/DbUploader.vue","webpack:///./src/components/svg/export.vue?8e9d","webpack:///src/components/svg/export.vue","webpack:///./src/components/svg/export.vue?fe2d","webpack:///./src/components/svg/export.vue","webpack:///./src/components/svg/addTable.vue?f835","webpack:///src/components/svg/addTable.vue","webpack:///./src/components/svg/addTable.vue?28ba","webpack:///./src/components/svg/addTable.vue","webpack:///src/views/Main/Workspace/Schema/index.vue","webpack:///./src/views/Main/Workspace/Schema/index.vue?a1f6","webpack:///./src/views/Main/Workspace/Schema/index.vue","webpack:///./src/views/Main/Workspace/Tabs/index.vue?1dbc","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue?7b3d","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue?9c7a","webpack:///./src/store/state.js","webpack:///./src/store/mutations.js","webpack:///./src/store/actions.js","webpack:///./src/store/index.js","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/hint.js","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue?de37","webpack:///./src/components/IconButton.vue?0220","webpack:///src/components/IconButton.vue","webpack:///./src/components/IconButton.vue?8571","webpack:///./src/components/IconButton.vue","webpack:///./src/components/svg/table.vue?33cf","webpack:///src/components/svg/table.vue","webpack:///./src/components/svg/table.vue?491d","webpack:///./src/components/svg/table.vue","webpack:///./src/components/svg/sqlEditor.vue?03d5","webpack:///src/components/svg/sqlEditor.vue","webpack:///./src/components/svg/sqlEditor.vue?26e3","webpack:///./src/components/svg/sqlEditor.vue","webpack:///./src/components/svg/dataView.vue?9721","webpack:///src/components/svg/dataView.vue","webpack:///./src/components/svg/dataView.vue?ea7d","webpack:///./src/components/svg/dataView.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue?24a6","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue","webpack:///./src/components/svg/run.vue?9a00","webpack:///src/components/svg/run.vue","webpack:///./src/components/svg/run.vue?2175","webpack:///./src/components/svg/run.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue?dba8","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue?6d9d","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue?c01b","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/chartHelper.js","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue?81fb","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue?2f65","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue?25e9","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue?a241","webpack:///./src/components/svg/sort.vue?4e5d","webpack:///src/components/svg/sort.vue","webpack:///./src/components/svg/sort.vue?8d22","webpack:///./src/components/svg/sort.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue?e25c","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/pivotHelper.js","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue?0f10","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue?9f12","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue","webpack:///./src/components/svg/chart.vue?4981","webpack:///src/components/svg/chart.vue","webpack:///./src/components/svg/chart.vue?3a5e","webpack:///./src/components/svg/chart.vue","webpack:///./src/components/svg/pivot.vue?6502","webpack:///src/components/svg/pivot.vue","webpack:///./src/components/svg/pivot.vue?5db1","webpack:///./src/components/svg/pivot.vue","webpack:///./src/components/svg/png.vue?479f","webpack:///src/components/svg/png.vue","webpack:///./src/components/svg/png.vue?870d","webpack:///./src/components/svg/png.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue?90d3","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue?b0af","webpack:///src/views/Main/Workspace/Tabs/Tab/RunResult.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue?05ce","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue?c6f1","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue","webpack:///src/views/Main/Workspace/Tabs/index.vue","webpack:///./src/views/Main/Workspace/Tabs/index.vue?8b02","webpack:///./src/views/Main/Workspace/Tabs/index.vue","webpack:///src/views/Main/Workspace/index.vue","webpack:///./src/views/Main/Workspace/index.vue?1a44","webpack:///./src/views/Main/Workspace/index.vue","webpack:///./src/views/Main/Inquiries/index.vue?9e69","webpack:///./src/views/Main/Inquiries/svg/rename.vue?a6c8","webpack:///src/views/Main/Inquiries/svg/rename.vue","webpack:///./src/views/Main/Inquiries/svg/rename.vue?5205","webpack:///./src/views/Main/Inquiries/svg/rename.vue","webpack:///./src/views/Main/Inquiries/svg/copy.vue?8244","webpack:///src/views/Main/Inquiries/svg/copy.vue","webpack:///./src/views/Main/Inquiries/svg/copy.vue?f41f","webpack:///./src/views/Main/Inquiries/svg/copy.vue","webpack:///./src/views/Main/Inquiries/svg/delete.vue?f91c","webpack:///src/views/Main/Inquiries/svg/delete.vue","webpack:///./src/views/Main/Inquiries/svg/delete.vue?009b","webpack:///./src/views/Main/Inquiries/svg/delete.vue","webpack:///./src/lib/storedInquiries/_migrations.js","webpack:///./src/lib/storedInquiries/index.js","webpack:///src/views/Main/Inquiries/index.vue","webpack:///./src/views/Main/Inquiries/index.vue?33c1","webpack:///./src/views/Main/Inquiries/index.vue","webpack:///./src/views/Welcome.vue?511a","webpack:///src/views/Welcome.vue","webpack:///./src/views/Welcome.vue?253e","webpack:///./src/views/Welcome.vue","webpack:///./src/views/Main/index.vue?dd29","webpack:///./src/views/Main/MainMenu.vue?4d18","webpack:///./src/views/Main/AppDiagnosticInfo.vue?7da0","webpack:///src/views/Main/AppDiagnosticInfo.vue","webpack:///./src/views/Main/AppDiagnosticInfo.vue?4caa","webpack:///./src/views/Main/AppDiagnosticInfo.vue","webpack:///src/views/Main/MainMenu.vue","webpack:///./src/views/Main/MainMenu.vue?76b3","webpack:///./src/views/Main/MainMenu.vue","webpack:///src/views/Main/index.vue","webpack:///./src/views/Main/index.vue?5975","webpack:///./src/views/Main/index.vue","webpack:///./src/router.js","webpack:///./src/main.js","webpack:///./src/components/svg/changeDb.vue?8a94","webpack:///./src/views/Main/Workspace/Tabs/index.vue?243c","webpack:///./src/assets/images/checkbox_checked_light.svg","webpack:///./src/assets/images/bottom.svg","webpack:///./src/assets/images/error.svg","webpack:///./src/views/Main/Inquiries/svg/delete.vue?1927","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue?07b5","webpack:///./src/components/svg/hint.vue?b071","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue?df15","webpack:///./src/assets/images/file.png","webpack:///./src/assets/images/checkbox_checked.svg","webpack:///./src/assets/images/leftArm.svg","webpack:///./src/components/Splitpanes/index.vue?b0be","webpack:///./src/components/CheckBox.vue?8ce8","webpack:///./src/views/Main/Inquiries/svg/rename.vue?6a9c","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue?3c1f","webpack:///./src/components/CsvImport/index.vue?7e36","webpack:///./src/views/Main/Inquiries/svg/copy.vue?7022","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue?ea72","webpack:///./src/views/Main/index.vue?b83e","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue?b2a2","webpack:///./src/components/LoadingIndicator.vue?d890","webpack:///./src/components/TextField.vue?c2e5","webpack:///./src/assets/images/info.svg","webpack:///./src/components/IconButton.vue?674f","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue?8581","webpack:///./src/views/Welcome.vue?1e1a","webpack:///./src/components/svg/close.vue?17e8","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue?dffd","webpack:///./src/components/svg/clear.vue?d1b6","webpack:///./src/views/Main/Inquiries/index.vue?f0fe","webpack:///./src/components/SqlTable/Pager.vue?b07e"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","attrs","staticRenderFns","component","staticClass","size","max","scopedSlots","_u","fn","proxy","ref","class","horizontal","dragging","style","styles","paneBefore","_t","on","bindEvents","after","before","paneAfter","$event","togglePane","_e","getCurrentMouseDrag","container","rect","getBoundingClientRect","touches","clientX","clientY","x","left","y","top","getCurrentDragPercentage","isHorisontal","drag","containerSize","calculateOffset","paneBeforeMax","paneAfterMax","dragPercentage","paneBeforeMaxReached","paneAfterMaxReached","Math","min","props","beforeMinimising","movableSplitter","visibility","computed","movableSplitterStyle","directionBeforeIconStyle","rotation","expanded","transform","translation","directionAfterIconStyle","methods","addEventListener","onMouseMove","onMouseUp","unbindEvents","removeEventListener","preventDefault","moveSplitter","dir","offset","pane","otherPane","mounted","$refs","model","callback","$$v","filter","expression","schemaVisible","directives","rawName","schema","_v","_s","dbName","exportToFile","addCsv","_l","table","columns","file","$store","state","db","isDatabase","dbTypes","includes","test","getFileName","replace","downloadFromUrl","url","fileName","downloader","href","download","click","URL","revokeObjectURL","str","blob","Blob","createObjectURL","getFileFromUser","uploader","accept","files","importFile","reader","FileReader","then","readAsText","readFile","path","fetch","readAsArrayBuffer","fileReader","abort","colVisible","col","index","Boolean","required","components","errorMsg","disabled","label","hint","maxHintWidth","width","placeholder","domProps","$emit","stopPropagation","onClick","showTooltip","hideTooltip","assign","tooltipStyle","maxWidth","tooltipElement","tooltip","tooltipPosition","position","split","offsetWidth","mixins","tooltipMixin","browse","drop","newDb","cancelCsvImport","finish","generateChunks","matrix","keys","map","row","transposedMatrix","column","count","ceil","start","end","getInsertStmt","tabName","colList","join","params","getCreateStatement","getAst","sql","fixedSql","sqliteParser","getColumns","ast","columnDefinition","statement","format","definition","args","forEach","item","variant","datatype","Worker_fn","Worker","getNewDatabase","worker","Database","progressCounterIds","pw","PromiseWorker","importProgresses","progress","id","dispatchEvent","CustomEvent","detail","terminate","EventTarget","progressCounterId","postMessage","action","refreshSchema","fu","fileContent","buffer","res","getSchemaSql","execute","parsedSchema","stms","commands","results","startsWith","dialogName","disableDialog","tableNameError","tableName","previewCsv","delimiter","quoteChar","escapeChar","header","previewData","rowCount","importCsvMessages","importCsvCompleted","loadFromCsv","hintsByCode","MissingQuotes","TooFewFields","TooManyFields","getResult","source","meta","fields","trim","Date","toISOString","parse","config","defaultConfig","newline","transformHeader","dynamicTyping","preview","encoding","comments","step","complete","hasErrors","messages","errors","msg","code","downloadRequestHeaders","downloadRequestBody","skipEmptyLines","chunkSize","fastMode","beforeFirstChunk","withCredentials","delimitersToGuess","Papa","RECORD_SEP","UNIT_SEP","Number","default","onContainerClick","filled","composing","inputValue","getSymbolName","nativeOn","clear","showOptions","option","chooseOption","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","124","125","126","127","options","watch","created","ascii","charCodeAt","toString","delimiterInput","focus","checked","theme","String","validator","init","th","onScrollTable","refInFor","currentPageData","rowIndex","colIndex","dataSet","time","pageCount","currentPage","chevron","page","pageSize","tableWidth","resizeObserver","cellStyle","calculateHeadersWidth","$nextTick","scrollLeft","ResizeObserver","observe","beforeDestroy","unobserve","serializeMessage","animationClass","strokeWidth","radius","strokeDasharray","circleProgress","strokeDashoffset","scrollToBottom","getPeriod","diff","getTime","seconds","toFixed","debounce","func","ms","arguments","CloseIcon","TextField","DelimiterSelector","CheckBox","SqlTable","Logs","addedTable","validateTableName","$modal","hide","reset","open","sanitizeTableName","show","ChangeDbIcon","CsvImport","animationPromise","animationName","shutDown","loadDb","checkFile","dataTransfer","TableDescription","TreeChevron","DbUploader","ExportIcon","AddTableIcon","export","tabs","tab","selectedIndex","selectTab","isSaved","tempName","beforeCloseTab","query","viewOptions","viewType","isPredefined","$root","closingTabIndex","closeTab","saveAndClose","tabIndex","layout","isGettingResults","onSwitchView","initViewOptions","initViewType","onDataViewUpdate","cmOptions","onChange","runDisabled","currentTab","currentTabId","untitledLastIndex","predefinedInquiries","setDb","updateTab","oldId","Vue","set","deleteTab","setCurrentTabId","setCurrentTab","updatePredefinedInquiries","inquiries","Array","isArray","addTab","JSON","stringify","nanoid","some","openedTab","use","Vuex","Store","mutations","actions","getHints","cm","token","getTokenAt","getCursor","string","toUpperCase","CM","list","text","hintOptions","tables","store","completeSingle","completeOnSingleClick","alignWithWord","showHintOnDemand","editor","showHint","ch","tokenType","panel","$slots","active","IconButton","SqlEditorIcon","DataViewIcon","TableIcon","codemirror","SideToolBar","RunIcon","tabSize","lineNumbers","line","autoRefresh","extraKeys","tag","initMode","initOptions","dataSource","importToPngEnabled","loadingImage","saveAsPng","dataSources","visible","height","frames","editable","displaylogo","modeBarButtonsToRemove","dataSourceOptions","plotly","update","onRender","getOptionsFromDataSources","getOptionsForSave","stateCopy","emptySources","dereference","PlotlyEditor","chartHelper","handleResize","chartContainer","pivotOptions","collapsed","colsToSelect","cols","slot","colOrder","rowsToSelect","rows","rowOrder","aggregators","aggregator","valCount","keyNames","val1","val2","renderers","renderer","direction","changeSorting","asc","SortIcon","zeroValAggregators","twoValAggregators","_getDataSources","pivotData","rowKeys","getRowKeys","colKeys","getColKeys","colKey","rowKey","dataSourcesByRows","dataSourcesByCols","rowAttrs","colAttrs","sourceColKey","getAggregator","sourceRowKey","customChartRenderer","customChartComponent","$mount","$","$el","extend","pivotUtilities","export_renderers","plotly_renderers","fun","Multiselect","PivotSortBtn","returnValue","$on","vals","aggregatorName","rendererName","rendererOptions","PivotUi","immediate","handler","pivotOutput","Event","autosize","plotlyConfig","responsive","customChartOptions","chartComponent","Chart","Pivot","ChartIcon","PivotIcon","PngIcon","viewComponent","LoadingIndicator","runResultPanel","calculatePageSize","floor","freeSpace","SqlEditor","DataView","RunResult","Splitpanes","Teleport","initQuery","sqlEditor","dataView","isActive","commit","from","to","fromPosition","Tab","leavingSqliteviz","Schema","Tabs","showedInquiries","importInquiries","selectedInquiriesCount","exportSelectedInquiries","selectedNotPredefinedCount","showDeleteDialog","selectedInquiriesIds","toggleSelectAll","maxTableHeight","inquiry","openInquiry","selectAll","has","toggleRow","_f","createdAt","showRenameDialog","duplicateInquiry","Set","add","newName","renameInquiry","deleteGroup","deleteDialogMsg","deleteInquiry","_migrate","installedVersion","inquire","chart","migrate","migration","version","getStoredInquiries","myInquiries","localStorage","getItem","oldInquiries","updateStorage","baseInquiry","newInquiry","isTabNeedName","inquiryTab","isFromScratch","initName","save","inquiryIndex","findIndex","oldInquiry","setItem","serialiseInquiries","inquiryList","preparedData","deserialiseInquiries","allInquiriesIds","readPredefinedInquiries","json","RenameIcon","CopyIcon","DeleteIcon","processedInquiryId","predefinedInquiriesIds","allInquiries","concat","processedInquiryIndex","storedInquiries","calcMaxTableHeight","tableResizeObserver","calcNameWidth","filters","date","hour12","hour","minute","toLocaleDateString","dateOptions","dispatch","processedInquiry","$set","idsSet","values","next","delete","findTabIndex","rowCheckBox","mainCheckBox","$router","currentInquiry","$route","checkInquiryBeforeSave","createNewInquiry","cancelSave","saveInquiry","opt","info","AppDiagnosticInfo","_keyListener","$off","isNeedName","ctrlKey","metaKey","VueRouter","routes","Welcome","Main","children","Workspace","Inquiries","router","beforeEach","database","location","hostname","VuePlugin","VModal","productionTip","render","h","App"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASY,EAAe5B,GACvB,OAAOyB,EAAoBI,EAAI,OAAS,GAAG7B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,YAAYA,GAAW,MAIhH,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU+B,QAGnC,IAAIC,EAASJ,EAAiB5B,GAAY,CACzCK,EAAGL,EACHiC,GAAG,EACHF,QAAS,IAUV,OANAjB,EAAQd,GAAUW,KAAKqB,EAAOD,QAASC,EAAQA,EAAOD,QAASL,GAG/DM,EAAOC,GAAI,EAGJD,EAAOD,QAKfL,EAAoBQ,EAAI,SAAuBjC,GAC9C,IAAIkC,EAAW,GAKXC,EAAqBxB,EAAgBX,GACzC,GAA0B,IAAvBmC,EAGF,GAAGA,EACFD,EAAStB,KAAKuB,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAIC,SAAQ,SAASC,EAASC,GAC3CJ,EAAqBxB,EAAgBX,GAAW,CAACsC,EAASC,MAE3DL,EAAStB,KAAKuB,EAAmB,GAAKC,GAGtC,IACII,EADAC,EAASC,SAASC,cAAc,UAGpCF,EAAOG,QAAU,QACjBH,EAAOI,QAAU,IACbpB,EAAoBqB,IACvBL,EAAOM,aAAa,QAAStB,EAAoBqB,IAElDL,EAAOO,IAAMpB,EAAe5B,GAG5B,IAAIiD,EAAQ,IAAIC,MAChBV,EAAmB,SAAUW,GAE5BV,EAAOW,QAAUX,EAAOY,OAAS,KACjCC,aAAaT,GACb,IAAIU,EAAQ5C,EAAgBX,GAC5B,GAAa,IAAVuD,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYL,IAAyB,SAAfA,EAAMM,KAAkB,UAAYN,EAAMM,MAChEC,EAAUP,GAASA,EAAMQ,QAAUR,EAAMQ,OAAOX,IACpDC,EAAMW,QAAU,iBAAmB5D,EAAU,cAAgBwD,EAAY,KAAOE,EAAU,IAC1FT,EAAMY,KAAO,iBACbZ,EAAMQ,KAAOD,EACbP,EAAMa,QAAUJ,EAChBH,EAAM,GAAGN,GAEVtC,EAAgBX,QAAW+D,IAG7B,IAAIlB,EAAUmB,YAAW,WACxBxB,EAAiB,CAAEiB,KAAM,UAAWE,OAAQlB,MAC1C,MACHA,EAAOW,QAAUX,EAAOY,OAASb,EACjCE,SAASuB,KAAKC,YAAYzB,GAG5B,OAAOJ,QAAQ8B,IAAIjC,IAIpBT,EAAoB2C,EAAIvD,EAGxBY,EAAoB4C,EAAI1C,EAGxBF,EAAoB6C,EAAI,SAASxC,EAAS+B,EAAMU,GAC3C9C,EAAoB+C,EAAE1C,EAAS+B,IAClCtD,OAAOkE,eAAe3C,EAAS+B,EAAM,CAAEa,YAAY,EAAMC,IAAKJ,KAKhE9C,EAAoBmD,EAAI,SAAS9C,GACX,qBAAX+C,QAA0BA,OAAOC,aAC1CvE,OAAOkE,eAAe3C,EAAS+C,OAAOC,YAAa,CAAEC,MAAO,WAE7DxE,OAAOkE,eAAe3C,EAAS,aAAc,CAAEiD,OAAO,KAQvDtD,EAAoBuD,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQtD,EAAoBsD,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK5E,OAAO6E,OAAO,MAGvB,GAFA3D,EAAoBmD,EAAEO,GACtB5E,OAAOkE,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOtD,EAAoB6C,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR1D,EAAoB8D,EAAI,SAASxD,GAChC,IAAIwC,EAASxC,GAAUA,EAAOmD,WAC7B,WAAwB,OAAOnD,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAN,EAAoB6C,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR9C,EAAoB+C,EAAI,SAASgB,EAAQC,GAAY,OAAOlF,OAAOC,UAAUC,eAAeC,KAAK8E,EAAQC,IAGzGhE,EAAoBI,EAAI,GAGxBJ,EAAoBiE,GAAK,SAASC,GAA2B,MAApBC,QAAQ3C,MAAM0C,GAAYA,GAEnE,IAAIE,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjF,KAAK0E,KAAKO,GAC5CA,EAAWjF,KAAOf,EAClBgG,EAAaA,EAAWG,QACxB,IAAI,IAAI5F,EAAI,EAAGA,EAAIyF,EAAWvF,OAAQF,IAAKP,EAAqBgG,EAAWzF,IAC3E,IAAIU,EAAsBiF,EAI1B/E,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,sGC5NT,yBAAwb,EAAG,G,oCCA3b,yBAAme,EAAG,G,uECAtea,EAAOD,QAAU,kgD,qBCAjBC,EAAOD,QAAU,8R,6DCAjB,yBAAuf,EAAG,G,oCCA1f,yBAAymB,EAAG,G,6ECA5mB,yBAAyf,EAAG,G,mBCA5fC,EAAOD,QAAU,82B,oCCAjB,yBAA8jB,EAAG,G,6GCAjkB,yBAA0hB,EAAG,G,4CCA7hBC,EAAOD,QAAU,0lB,2DCAjB,yBAAwgB,EAAG,G,kCCA3gB,yBAAkgB,EAAG,G,oCCArgB,yBAAwgB,EAAG,G,oCCA3gB,yBAA4iB,EAAG,G,oCCA/iB,yBAAyf,EAAG,G,oCCA5f,yBAA4f,EAAG,G,2DCA/f,yBAAye,EAAG,G,wHCA5eC,EAAOD,QAAU,01E,uECAjBC,EAAOD,QAAU,8zC,oFCAjB,yBAAggB,EAAG,G,6DCAngB,yBAAqf,EAAG,G,2LCApf,EAAS,WAAa,IAAImE,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,QAAQ,CAACF,EAAG,gBAAgB,IAC9IG,EAAkB,G,wBCAlB/D,EAAS,GAMTgE,EAAY,eACdhE,EACA,EACA+D,GACA,EACA,KACA,KACA,MAIa,EAAAC,E,4CClBX,EAAS,WAAa,IAAIR,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACK,YAAY,uBAAuBH,MAAM,CAAC,OAAS,CAAEI,KAAM,GAAIC,IAAK,IAAK,MAAQ,CAAED,KAAM,GAAIC,IAAK,MAAOC,YAAYZ,EAAIa,GAAG,CAAC,CAACzB,IAAI,YAAY0B,GAAG,WAAW,MAAO,CAACV,EAAG,YAAYW,OAAM,GAAM,CAAC3B,IAAI,aAAa0B,GAAG,WAAW,MAAO,CAACV,EAAG,UAAUW,OAAM,QAAW,IAC5X,EAAkB,GCDlB,G,UAAS,WAAa,IAAIf,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACY,IAAI,YAAYC,MAAM,CAC5H,aACC,eAAiBjB,EAAIkB,WAAa,aAAe,YAClD,CAAE,sBAAuBlB,EAAImB,YAC5B,CAACf,EAAG,MAAM,CAACY,IAAI,kBAAkBP,YAAY,mBAAmBW,MAAOpB,EAAwB,uBAAII,EAAG,MAAM,CAACY,IAAI,OAAOP,YAAY,kBAAkBW,MAAOpB,EAAIqB,OAAa,OAAEf,MAAM,CAAC,KAAON,EAAIsB,WAAWZ,KAAK,WAAW,OAAO,CAACV,EAAIuB,GAAG,cAAc,GAAGnB,EAAG,MAAM,CAACK,YAAY,sBAAsBe,GAAG,CAAC,UAAYxB,EAAIyB,WAAW,WAAazB,EAAIyB,aAAa,CAACrB,EAAG,MAAM,CAACa,MAAM,CACpX,cACA,CAAC,KAA0B,MAAlBjB,EAAI0B,MAAMf,KAAkC,MAAnBX,EAAI2B,OAAOhB,KAAeX,EAAI4B,UAAUlB,KAAO,GAAKV,EAAIsB,WAAWZ,KAAO,KAC3G,CAAoB,MAAlBV,EAAI0B,MAAMf,KAAeX,EAAI4B,UAAUlB,KAAO,EAAGN,EAAG,MAAM,CAACK,YAAY,aAAae,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAI8B,WAAW9B,EAAIsB,eAAe,CAAClB,EAAG,MAAM,CAACK,YAAY,iBAAiBW,MAAOpB,EAA4B,yBAAEM,MAAM,CAAC,IAAM,EAAQ,aAAoCN,EAAI+B,KAAyB,MAAnB/B,EAAI2B,OAAOhB,KAAeX,EAAIsB,WAAWZ,KAAO,EAAGN,EAAG,MAAM,CAACK,YAAY,aAAae,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAI8B,WAAW9B,EAAI4B,cAAc,CAACxB,EAAG,MAAM,CAACK,YAAY,iBAAiBW,MAAOpB,EAA2B,wBAAEM,MAAM,CAAC,IAAM,EAAQ,aAAoCN,EAAI+B,SAAS3B,EAAG,MAAM,CAACY,IAAI,QAAQP,YAAY,kBAAkBW,MAAOpB,EAAIqB,OAAY,OAAG,CAACrB,EAAIuB,GAAG,eAAe,OACnsB,EAAkB,G,wBCRP,GAEbS,oBAFa,SAEQ9E,EAAO+E,GAC1B,IAAMC,EAAOD,EAAUE,wBACvB,EAA8B,iBAAkBtC,QAAU3C,EAAMkF,QAC5DlF,EAAMkF,QAAQ,GACdlF,EAFImF,EAAR,EAAQA,QAASC,EAAjB,EAAiBA,QAGjB,MAAO,CACLC,EAAGF,EAAUH,EAAKM,KAClBC,EAAGH,EAAUJ,EAAKQ,MAKtBC,yBAda,SAcazF,EAAO+E,EAAWW,GAC1C,IAAIC,EAAO5C,KAAK+B,oBAAoB9E,EAAO+E,GAC3CY,EAAOA,EAAKD,EAAe,IAAM,KACjC,IAAME,EAAgBb,EAAUW,EAAe,eAAiB,eAChE,OAAc,IAAPC,EAAaC,GAItBC,gBAtBa,SAsBI7F,EAtBJ,GAsBqE,IAAxD+E,EAAwD,EAAxDA,UAAWW,EAA6C,EAA7CA,aAAcI,EAA+B,EAA/BA,cAAeC,EAAgB,EAAhBA,aAC1DC,EAAiBjD,KAAK0C,yBAAyBzF,EAAO+E,EAAWW,GAEjEO,EAAuBH,EAAgB,KAAQE,GAAkBF,EACjEI,EAAsBH,EAAe,KAAQC,GAAkB,IAAMD,EAG3E,OAAIE,GAAwBC,EACnBD,EAAuBH,EAAgBK,KAAK1C,IAAI,IAAMsC,EAAc,GAEpEI,KAAKC,IAAID,KAAK1C,IAAIuC,EAAgB,GAAIF,KCqCnD,GACEpF,KAAM,aACN2F,MAAO,CACLrC,WAAY,CAAhB,yBACIS,OAAQ,CAAZ,aACID,MAAO,CAAX,cAEE7H,KAPF,WAQI,MAAO,CACLoI,UAAW,KACXX,WAAYrB,KAAK0B,OACjBC,UAAW3B,KAAKyB,MAChB8B,iBAAkB,CAChB7B,OAAQ1B,KAAK0B,OAAOjB,KACpBgB,MAAOzB,KAAKyB,MAAMhB,MAEpBS,UAAU,EACVsC,gBAAiB,CACff,IAAK,EACLF,KAAM,EACNkB,WAAY,YAIlBC,SAAU,CACRtC,OADJ,WAEM,MAAO,CACLM,OAAQ,OAAhB,OAAgB,CAAhB,yEACQD,MAAO,OAAf,OAAe,CAAf,0EAGIkC,qBAPJ,WAQM,IAAN,0CAGM,OAFAxC,EAAMsB,KAAO,IACbtB,EAAMoB,MAAQ,IACPpB,GAETyC,yBAbJ,WAcM,IAAN,2BACA,2BACA,KAQM,OALEC,EADE7D,KAAKiB,WACI6C,EAAW,gBAAkB,iBAE7BA,EAAW,eAAiB,iBAGlC,CACLC,UAAWC,EAAcH,IAG7BI,wBA5BJ,WA6BM,IAAN,0BACA,0BACA,KAQM,OALEJ,EADE7D,KAAKiB,WACI6C,EAAW,iBAAmB,gBAE9BA,EAAW,iBAAmB,eAGpC,CACLC,UAAWC,EAAcH,KAK/BK,QAAS,CACP1C,WADJ,WAGMhF,SAAS2H,iBAAiB,YAAanE,KAAKoE,YAAa,CAA/D,aACM5H,SAAS2H,iBAAiB,UAAWnE,KAAKqE,WAEtC,iBAAkBzE,SACpBpD,SAAS2H,iBAAiB,YAAanE,KAAKoE,YAAa,CAAjE,aACQ5H,SAAS2H,iBAAiB,WAAYnE,KAAKqE,aAI/CC,aAZJ,WAaM9H,SAAS+H,oBAAoB,YAAavE,KAAKoE,YAAa,CAAlE,aACM5H,SAAS+H,oBAAoB,UAAWvE,KAAKqE,WAEzC,iBAAkBzE,SACpBpD,SAAS+H,oBAAoB,YAAavE,KAAKoE,YAAa,CAApE,aACQ5H,SAAS+H,oBAAoB,WAAYvE,KAAKqE,aAIlDD,YAtBJ,SAsBA,GACMnH,EAAMuH,iBACNxE,KAAKkB,UAAW,EAChBlB,KAAKwD,gBAAgBC,WAAa,UAClCzD,KAAKyE,aAAaxH,IAGpBoH,UA7BJ,WA8BM,GAAIrE,KAAKkB,SAAU,CACjB,IAAR,kBACA,yBACA,0BAEQlB,KAAKqB,WAAWZ,KAAOwC,EACvBjD,KAAK2B,UAAUlB,KAAO,IAAMwC,EAE5BjD,KAAKwD,gBAAkB,CACrBf,IAAK,EACLF,KAAM,EACNkB,WAAY,UAGdzD,KAAKkB,UAAW,EAGlBlB,KAAKsE,gBAGPG,aAlDJ,SAkDA,GACM,IAAN,GACQzC,UAAWhC,KAAKgC,UAChBe,cAAe/C,KAAKqB,WAAWX,IAC/BsC,aAAchD,KAAK2B,UAAUjB,IAC7BiC,aAAc3C,KAAKiB,YAE3B,yBACA,+BACMjB,KAAKwD,gBAAgBkB,GAAOC,GAG9B9C,WA9DJ,SA8DA,GACM,GAAI+C,EAAKnE,KAAO,EAAG,CACjBT,KAAKuD,iBAAiB7B,OAAS1B,KAAKqB,WAAWZ,KAC/CT,KAAKuD,iBAAiB9B,MAAQzB,KAAK2B,UAAUlB,KAC7CmE,EAAKnE,KAAO,EACZ,IAAR,qDACQoE,EAAUpE,KAAO,IAAMmE,EAAKnE,UAE5BT,KAAKqB,WAAWZ,KAAOT,KAAKuD,iBAAiB7B,OAC7C1B,KAAK2B,UAAUlB,KAAOT,KAAKuD,iBAAiB9B,QAIlDqD,QAhJF,WAiJI9E,KAAKgC,UAAYhC,KAAK+E,MAAM/C,YCtN8T,ICQ1V,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,OAIa,I,QCnBX,EAAS,WAAa,IAAIjC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,qBAAqB,CAACF,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,kBAAkB,CAACF,EAAG,aAAa,CAACE,MAAM,CAAC,YAAc,eAAe,MAAQ,QAAQ2E,MAAM,CAACnG,MAAOkB,EAAU,OAAEkF,SAAS,SAAUC,GAAMnF,EAAIoF,OAAOD,GAAKE,WAAW,aAAa,GAAGjF,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,OAAO,CAACF,EAAG,MAAM,CAACK,YAAY,UAAUe,GAAG,CAAC,MAAQ,SAASK,GAAQ7B,EAAIsF,eAAiBtF,EAAIsF,iBAAiB,CAAClF,EAAG,eAAe,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAIyF,OAAOpL,OAAS,EAAGgL,WAAW,sBAAsB/E,MAAM,CAAC,SAAWN,EAAIsF,iBAAiBtF,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG3F,EAAI4F,QAAQ,MAAM,GAAGxF,EAAG,cAAc,CAACE,MAAM,CAAC,GAAK,UAAU,KAAO,WAAWF,EAAG,cAAc,CAACE,MAAM,CAAC,QAAU,mBAAmBkB,GAAG,CAAC,MAAQxB,EAAI6F,gBAAgBzF,EAAG,iBAAiB,CAACoB,GAAG,CAAC,MAAQxB,EAAI8F,WAAW,GAAG1F,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAiB,cAAEqF,WAAW,kBAAkB5E,YAAY,UAAUT,EAAI+F,GAAI/F,EAAU,QAAE,SAASgG,GAAO,OAAO5F,EAAG,oBAAoB,CAAChB,IAAI4G,EAAMpI,KAAK0C,MAAM,CAAC,KAAO0F,EAAMpI,KAAK,QAAUoI,EAAMC,cAAa,GAAG7F,EAAG,aAAa,CAACY,IAAI,SAASV,MAAM,CAAC,KAAON,EAAIkG,KAAK,GAAKlG,EAAImG,OAAOC,MAAMC,GAAG,cAAc,aAAa,IAC5tC,EAAkB,GCDP,G,kDAAA,CACbC,WADa,SACDJ,GACV,IAAMK,EAAU,CAAC,0BAA2B,yBAC5C,OAAOL,EAAK1I,KACR+I,EAAQC,SAASN,EAAK1I,MACtB,sBAAsBiJ,KAAKP,EAAKtI,OAGtC8I,YARa,SAQAR,GACX,OAAOA,EAAKtI,KAAK+I,QAAQ,WAAY,KAGvCC,gBAZa,SAYIC,EAAKC,GAEpB,IAAMC,EAAatK,SAASC,cAAc,KAC1CqK,EAAWC,KAAOH,EAClBE,EAAWE,SAAWH,EAGtBC,EAAWG,QAGXC,IAAIC,gBAAgBP,IAGhBhB,aAzBO,SAyBOwB,EAAKP,GAAiC,8KAAvBtJ,EAAuB,+BAAhB,eAClC8J,EAAO,IAAIC,KAAK,CAACF,GAAM,CAAE7J,SACzBqJ,EAAMM,IAAIK,gBAAgBF,GAChC,EAAKV,gBAAgBC,EAAKC,GAH8B,8CAW1DW,gBApCa,SAoCIjK,GACf,OAAO,IAAIpB,SAAQ,SAAAC,GACjB,IAAMqL,EAAWjL,SAASC,cAAc,SAExCgL,EAASlK,KAAO,OAChBkK,EAASC,OAASnK,EAElBkK,EAAStD,iBAAiB,UAAU,WAClC,IAAM8B,EAAOwB,EAASE,MAAM,GAC5BvL,EAAQ6J,MAGVwB,EAASR,YAIbW,WApDa,WAqDX,IAAMC,EAAS,IAAIC,WAEnB,OAAO9H,KAAKwH,gBAAgB,SACzBO,MAAK,SAAA9B,GACJ,OAAO,IAAI9J,SAAQ,SAACC,EAASC,GAC3BwL,EAAO1K,OAAS,SAAApB,GACdK,EAAQL,EAAE0B,OAAOxC,SAEnB4M,EAAOG,WAAW/B,UAK1BgC,SAlEa,SAkEHC,GACR,OAAOC,MAAMD,IAGfE,kBAtEa,SAsEMnC,GACjB,IAAMoC,EAAa,IAAIP,WAEvB,OAAO,IAAI3L,SAAQ,SAACC,EAASC,GAC3BgM,EAAWnL,QAAU,WACnBmL,EAAWC,QACXjM,EAAO,IAAIW,MAAM,iCAGnBqL,EAAWlL,OAAS,WAClBf,EAAQiM,EAAWpN,SAErBoN,EAAWD,kBAAkBnC,SClF/B,EAAS,WAAa,IAAIlG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACK,YAAY,aAAae,GAAG,CAAC,MAAQ,SAASK,GAAQ7B,EAAIwI,YAAcxI,EAAIwI,cAAc,CAACpI,EAAG,eAAe,CAACE,MAAM,CAAC,SAAWN,EAAIwI,cAAcxI,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG3F,EAAIpC,MAAM,MAAM,GAAGwC,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAc,WAAEqF,WAAW,eAAe5E,YAAY,WAAWT,EAAI+F,GAAI/F,EAAW,SAAE,SAASyI,EAAIC,GAAO,OAAOtI,EAAG,MAAM,CAAChB,IAAIsJ,EAAMjI,YAAY,UAAU,CAACT,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG8C,EAAI7K,MAAM,KAAKwC,EAAG,OAAO,CAACK,YAAY,eAAe,CAACT,EAAI0F,GAAG1F,EAAI2F,GAAG8C,EAAIjL,cAAa,MACrmB,EAAkB,GCDlB,EAAS,WAAa,IAAIwC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACK,YAAY,eAAeW,MAAM,CAAG4C,UAAWhE,EAAI+D,SAAW,gBAAkB,aAAezD,MAAM,CAAC,MAAQ,IAAI,OAAS,IAAI,QAAU,WAAW,KAAO,OAAO,MAAQ,+BAA+B,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,qHAAqH,KAAON,EAAI+D,SAAW,UAAY,gCAC7d,EAAkB,GCkBtB,GACEnG,KAAM,cACN2F,MAAO,CACLQ,SAAU,CACRvG,KAAMmL,QACNC,UAAU,KCxBoV,ICQhW,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCDf,GACEhL,KAAM,mBACNiL,WAAY,CAAd,eACEtF,MAAO,CAAC,OAAQ,WAChB1J,KAJF,WAKI,MAAO,CACL2O,YAAY,KCxBqX,ICQnY,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBX,EAAS,WAAa,IAAIxI,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAEJ,EAAS,MAAEI,EAAG,MAAM,CAACa,MAAM,CAAC,mBAAoB,CAAEjE,MAAOgD,EAAI8I,UAAY,CAAC,SAAY9I,EAAI+I,YAAY,CAAC/I,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG3F,EAAIgJ,OAAO,KAAMhJ,EAAQ,KAAEI,EAAG,YAAY,CAACK,YAAY,OAAOH,MAAM,CAAC,KAAON,EAAIiJ,KAAK,YAAYjJ,EAAIkJ,cAAgB,WAAWlJ,EAAI+B,MAAM,GAAG/B,EAAI+B,KAAK3B,EAAG,QAAQ,CAACa,MAAM,CAAEjE,MAAOgD,EAAI8I,UAAW1H,MAAM,CAAG+H,MAAOnJ,EAAImJ,OAAS7I,MAAM,CAAC,KAAO,OAAO,YAAcN,EAAIoJ,YAAY,SAAWpJ,EAAI+I,UAAUM,SAAS,CAAC,MAAQrJ,EAAIlB,OAAO0C,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIsJ,MAAM,QAASzH,EAAOnE,OAAOoB,WAAWsB,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAY,SAAEqF,WAAW,aAAa5E,YAAY,oBAAoB,CAACT,EAAI0F,GAAG1F,EAAI2F,GAAG3F,EAAI8I,gBAC1wB,EAAkB,GCDlB,EAAS,WAAa,IAAI9I,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACK,YAAY,YAAYH,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAAQkB,GAAG,CAAC,MAAQ,SAASK,GAAiC,OAAzBA,EAAO0H,kBAAyBvJ,EAAIwJ,QAAQ3H,IAAS,WAAa7B,EAAIyJ,YAAY,WAAazJ,EAAI0J,cAAc,CAACtJ,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,myBAAmyB,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,ufAAuf,KAAO,eAAeF,EAAG,OAAO,CAACY,IAAI,UAAUP,YAAY,eAAeW,MAAO9G,OAAOqP,OAAO,GAAI3J,EAAI4J,aAAc,CAACC,SAAU7J,EAAI6J,YAAa,CAAC7J,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG3F,EAAIiJ,MAAM,UACt2D,EAAkB,GCDP,G,UAAA,CACbpP,KADa,WAEX,MAAO,CACL+P,aAAc,CACZlG,WAAY,YAIlBC,SAAU,CACRmG,eADQ,WAEN,OAAO7J,KAAK+E,MAAM+E,UAGtB5F,QAAS,CACPsF,YADO,SACMzN,EAAGgO,GACd,IAAMC,EAAWD,EAAkBA,EAAgBE,MAAM,KAAO,CAAC,MAAO,SAClEtF,EAAS,GAEK,QAAhBqF,EAAS,GACXhK,KAAK2J,aAAalH,IAAM1G,EAAEsG,QAAUsC,EAAS,KAE7C3E,KAAK2J,aAAalH,IAAM1G,EAAEsG,QAAUsC,EAAS,KAG3B,UAAhBqF,EAAS,GACXhK,KAAK2J,aAAapH,KAAOxG,EAAEqG,QAAUuC,EAAS,KAE9C3E,KAAK2J,aAAapH,KAAOxG,EAAEqG,QAAUuC,EAAS3E,KAAK6J,eAAeK,YAAc,KAGlFlK,KAAK2J,aAAalG,WAAa,WAEjCgG,YAnBO,WAoBLzJ,KAAK2J,aAAalG,WAAa,aCTrC,GACE9F,KAAM,WACN2F,MAAO,CAAC,OAAQ,YAChB6G,OAAQ,CAACC,GACTlG,QAAS,CACPqF,QADJ,WAEMvJ,KAAKyJ,cACLzJ,KAAKqJ,MAAM,YC/B4U,ICQzV,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCEf,GACE1L,KAAM,YACN2F,MAAO,CAAC,cAAe,QAAS,WAAY,QAAS,QAAS,OAAQ,eAAgB,YACtFsF,WAAY,CAAd,aCxBmV,ICQ/U,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBX,EAAS,WAAa,IAAI7I,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACK,YAAY,wBAAwBW,MAAM,CAAG+H,MAAOnJ,EAAImJ,QAAU,CAAe,UAAbnJ,EAAIxC,KAAkB4C,EAAG,iBAAiB,CAACoB,GAAG,CAAC,MAAQxB,EAAIsK,UAAUtK,EAAI+B,KAAmB,gBAAb/B,EAAIxC,KAAwB4C,EAAG,MAAM,CAACK,YAAY,uBAAuB,CAACL,EAAG,MAAM,CAACK,YAAY,YAAYe,GAAG,CAAC,SAAW,SAASK,GAAQA,EAAO4C,iBAAiBzE,EAAIoG,MAAQ,YAAY,UAAY,SAASvE,GAAQA,EAAO4C,iBAAiBzE,EAAIoG,MAAM,IAAI,KAAO,SAASvE,GAAgC,OAAxBA,EAAO4C,iBAAwBzE,EAAIuK,KAAK1I,IAAS,MAAQ7B,EAAIsK,SAAS,CAAClK,EAAG,MAAM,CAACK,YAAY,QAAQ,CAACT,EAAI0F,GAAG,4FAA4F1F,EAAI+B,KAAmB,gBAAb/B,EAAIxC,KAAwB4C,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,kBAAkB,CAACF,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,oBAAoB,IAAM,EAAQ,YAA8BF,EAAG,MAAM,CAACa,MAAM,CAAC,MAAuB,aAAdjB,EAAIoG,OAAsB9F,MAAM,CAAC,GAAK,eAAe,IAAM,EAAQ,WAAkCF,EAAG,MAAM,CAACY,IAAI,UAAUC,MAAM,CACvhC,MAAuB,aAAdjB,EAAIoG,MACb,IAAqB,aAAdpG,EAAIoG,MACX,OAAwB,YAAdpG,EAAIoG,OACd9F,MAAM,CAAC,GAAK,WAAW,IAAM,EAAQ,WAA+BF,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,uBAAuB,IAAM,EAAQ,WAAiCF,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,WAAW,IAAM,EAAQ,WAA+BF,EAAG,MAAM,CAACa,MAAM,CAAC,MAAuB,aAAdjB,EAAIoG,OAAsB9F,MAAM,CAAC,GAAK,gBAAgB,IAAM,EAAQ,aAAqCN,EAAI+B,KAAK3B,EAAG,MAAM,CAACK,YAAY,QAAQH,MAAM,CAAC,GAAK,WAAWF,EAAG,aAAa,CAACY,IAAI,SAASV,MAAM,CAAC,KAAON,EAAIkG,KAAK,GAAKlG,EAAIwK,MAAM,cAAc,iBAAiBhJ,GAAG,CAAC,OAASxB,EAAIyK,gBAAgB,OAASzK,EAAI0K,WAAW,IAC/kB,EAAkB,GCLlB,G,UAAS,WAAa,IAAI1K,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACK,YAAY,eAAeH,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAAQkB,GAAG,CAAC,MAAQ,SAASK,GAAiC,OAAzBA,EAAO0H,kBAAyBvJ,EAAIwJ,QAAQ3H,IAAS,WAAa7B,EAAIyJ,YAAY,WAAazJ,EAAI0J,cAAc,CAACtJ,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,+lBAA+lB,KAAO,eAAeF,EAAG,OAAO,CAACY,IAAI,UAAUP,YAAY,eAAeW,MAAOpB,EAAgB,cAAG,CAACA,EAAI0F,GAAG,wCAClkC,GAAkB,GCyBtB,IACE9H,KAAM,eACNwM,OAAQ,CAACC,GACTlG,QAAS,CACPqF,QADJ,WAEMvJ,KAAKyJ,cACLzJ,KAAKqJ,MAAM,YChCgV,MCQ7V,I,UAAY,eACd,GACA,EACA,IACA,EACA,KACA,WACA,OAIa,M,0ICjBA,IACXqB,eADW,oCACK9Q,EAAM6G,GADX,qGAELkK,EAAStQ,OAAOuQ,KAAKhR,GAAMiR,KAAI,SAAArC,GAAG,OAAI5O,EAAK4O,MAFtC,kBAGGmC,EAHH,GAGJG,EAHI,KAILC,EAAmBD,EAAID,KAAI,SAAChM,EAAOmM,GAAR,OAAmBL,EAAOE,KAAI,SAAAC,GAAG,OAAIA,EAAIE,SAEpEC,EAAQ7H,KAAK8H,KAAKH,EAAiB3Q,OAASqG,GAEzCvG,EAAI,EARF,YAQKA,GAAK+Q,EAAQ,GARlB,iBAWT,OAFME,EAAQ1K,EAAOvG,EACfkR,EAAMD,EAAQ1K,EAVX,UAWHsK,EAAiBjL,MAAMqL,EAAOC,GAX3B,QAQqBlR,IARrB,0DAebmR,cAfa,SAeEC,EAAStF,GACtB,IAAMuF,EAAU,IAAH,OAAOvF,EAAQwF,KAAK,QAApB,KACPC,EAASzF,EAAQ6E,KAAI,iBAAM,OAAKW,KAAK,MAC3C,6BAAuBF,EAAvB,cAAoCC,EAApC,qBAAwDE,EAAxD,OAGFC,mBArBa,SAqBOJ,EAAS1R,GAC3B,IAAIqB,EAAS,iBAAH,OAAoBqQ,EAApB,MACV,IAAK,IAAM9C,KAAO5O,EAAM,CAEtB,IAAMiF,EAAQjF,EAAK4O,GAAK,GACpBjL,EAAO,GACX,uBAAesB,IACb,IAAK,SACHtB,EAAO,OACP,MAEF,IAAK,UACHA,EAAO,UACP,MAEF,IAAK,SACHA,EAAO,OACP,MAEF,QAASA,EAAO,OAElBtC,GAAU,IAAJ,OAAQuN,EAAR,aAAgBjL,EAAhB,MAIR,OADAtC,EAASA,EAAOyL,QAAQ,OAAQ,MACzBzL,GAGT0Q,OAjDa,SAiDLC,GAIN,IAAMC,EAAWD,EACdlF,QAAQ,mCAAoC,MAC5CA,QAAQ,0CAA2C,MACnDA,QAAQ,mCAAoC,MAC5CA,QAAQ,qBAAsB,wBAEjC,OAAOoF,KAAaD,IAUtBE,WArEa,SAqEDH,GACV,IAAM5F,EAAU,GACVgG,EAAMhM,KAAK2L,OAAOC,GAElBK,EAA+C,UAA5BD,EAAIE,UAAU,GAAGC,OACtCH,EAAIE,UAAU,GAAGE,WACjBJ,EAAIE,UAAU,GAAGjR,OAAOoR,KAAKjH,WAejC,OAbA6G,EAAiBK,SAAQ,SAAAC,GACvB,GAAqB,WAAjBA,EAAKC,SAAwB,CAAC,aAAc,cAAcjG,SAASgG,EAAKhP,MAAO,CACjF,IAAIA,EAAOgP,EAAKE,SAAWF,EAAKE,SAASD,QAAU,MAC/CD,EAAKE,UAAYF,EAAKE,SAASJ,OACjC9O,EAAOA,EAAO,IAAMgP,EAAKE,SAASJ,KAAKjH,WAAW,GAAGvG,MACR,IAAzC0N,EAAKE,SAASJ,KAAKjH,WAAWhL,SAChCmD,EAAOA,EAAO,KAAOgP,EAAKE,SAASJ,KAAKjH,WAAW,GAAGvG,OAExDtB,GAAc,KAEhByI,EAAQtL,KAAK,CAAEiD,KAAM4O,EAAK5O,KAAMJ,KAAMA,QAGnCyI,IC5FI,SAAS0G,KACtB,OAAO,IAAIC,OAAO,IAA0B,iC,4BCS9C,SAASC,KACP,IAAMC,EAAS,IAAIF,GACnB,OAAO,IAAIG,GAASD,GAGP,QACbD,mBAGEG,GAAqB,EACnBD,G,WACJ,WAAaD,GAAQ,mCACnB7M,KAAK2F,OAAS,KACd3F,KAAKwF,OAAS,KACdxF,KAAK6M,OAASA,EACd7M,KAAKgN,GAAK,IAAIC,KAAcJ,GAE5B7M,KAAKkN,iBAAmB,GACxBL,EAAO1I,iBAAiB,WAAW,SAAApI,GACjC,IAAMoR,EAAWpR,EAAEnC,KAAKuT,SACxB,QAAiBtP,IAAbsP,EAAwB,CAC1B,IAAMC,EAAKrR,EAAEnC,KAAKwT,GAClB,EAAKF,iBAAiBE,GAAIC,cAAc,IAAIC,YAAY,WAAY,CAClEC,OAAQJ,S,gDAMhB,WACEnN,KAAK6M,OAAOW,c,mCAGd,SAAuBvI,GACrB,IAAMmI,EAAKL,KAGX,OAFA/M,KAAKkN,iBAAiBE,GAAM,IAAIK,YAChCzN,KAAKkN,iBAAiBE,GAAIjJ,iBAAiB,YAAY,SAAApI,GAAOkJ,EAASlJ,EAAEwR,WAClEH,I,mCAGT,SAAuBA,UACdpN,KAAKkN,iBAAiBE,K,sFAG/B,WAAuB9B,EAAS1R,EAAM8T,GAAtC,uGACuB1N,KAAKgN,GAAGW,YAAY,CACvCC,OAAQ,SACRhU,OACA8T,oBACApC,YALJ,UACQrQ,EADR,QAQMA,EAAO8B,MARb,sBASU,IAAIC,MAAM/B,EAAO8B,OAT3B,OAWEiD,KAAK2F,OAAS3F,KAAK2F,QAAU,WAC7B3F,KAAK6N,gBAZP,gD,2IAeA,WAAc5H,GAAd,6FACsBA,EADtB,gCACmC6H,EAAG1F,kBAAkBnC,GADxD,8CACgE,KADhE,cACQ8H,EADR,eAEoB/N,KAAKgN,GAAGW,YAAY,CAAEC,OAAQ,OAAQI,OAAQD,IAFlE,WAEQE,EAFR,QAIMA,EAAIlR,MAJV,uBAKU,IAAIC,MAAMiR,EAAIlR,OALxB,QAQEiD,KAAK2F,OAASM,EAAO6H,EAAGrH,YAAYR,GAAQ,WAC5CjG,KAAK6N,gBATP,iD,8IAYA,+GACQK,EADR,4HAMuBlO,KAAKmO,QAAQD,GANpC,OAMQjT,EANR,OAQQmT,EAAe,GACjBnT,GAAUA,EAAO0C,MACnB1C,EAAO0C,KAAK2O,SAAQ,SAACvG,EAAO0C,GAC1B2F,EAAa1T,KAAK,CAChBiD,KAAMoI,EACNC,QAASqI,GAAKtC,WAAW9Q,EAAO2Q,IAAInD,SAM1CzI,KAAKwF,OAAS4I,EAnBhB,gD,uIAsBA,WAAeE,GAAf,uGACQtO,KAAKgN,GAAGW,YAAY,CAAEC,OAAQ,WADtC,uBAEwB5N,KAAKgN,GAAGW,YAAY,CAAEC,OAAQ,OAAQhC,IAAK0C,IAFnE,UAEQC,EAFR,QAIMA,EAAQxR,MAJd,sBAKU,IAAIC,MAAMuR,EAAQxR,OAL5B,gCAQSwR,EAAQA,EAAQnU,OAAS,IARlC,gD,uIAWA,WAAcyM,GAAd,uGACqB7G,KAAKgN,GAAGW,YAAY,CAAEC,OAAQ,WADnD,UACQhU,EADR,QAGMA,EAAKmD,MAHX,sBAIU,IAAIC,MAAMpD,EAAKmD,OAJzB,OAME+Q,EAAGlI,aAAahM,EAAMiN,GANxB,gD,kJASA,WAAyBlJ,GAAzB,qFACMA,EAAK6Q,WAAW,WADtB,sBAEU,IAAIxR,MAAM,uCAFpB,WAKM,QAAQwJ,KAAK7I,GALnB,sBAMU,IAAIX,MAAM,+DANpB,WASM,QAAQwJ,KAAK7I,GATnB,sBAUU,IAAIX,MAAM,uCAVpB,uBAaQgD,KAAKmO,QAAL,+BAAqCxQ,EAArC,qBAbR,gD,yFAgBA,SAAmB2N,GACjB,OAAOA,EACJ5E,QAAQ,SAAU,KAClBA,QAAQ,QAAS,OACjBA,QAAQ,SAAU,S,KC/IrB,GAAS,WAAa,IAAI3G,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAON,EAAI0O,WAAW,QAAU,SAAS,OAAS,OAAO,MAAQ,MAAM,WAAa,GAAG,cAAe,IAAQ,CAACtO,EAAG,MAAM,CAACK,YAAY,iBAAiB,CAACT,EAAI0F,GAAG,gBAAgBtF,EAAG,aAAa,CAACE,MAAM,CAAC,SAAWN,EAAI2O,eAAenN,GAAG,CAAC,MAAQxB,EAAIyK,oBAAoB,GAAGrK,EAAG,MAAM,CAACK,YAAY,eAAe,CAACL,EAAG,aAAa,CAACE,MAAM,CAAC,MAAQ,aAAa,MAAQ,QAAQ,SAAWN,EAAI2O,cAAc,YAAY3O,EAAI4O,eAAe,GAAK,kBAAkB3J,MAAM,CAACnG,MAAOkB,EAAa,UAAEkF,SAAS,SAAUC,GAAMnF,EAAI6O,UAAU1J,GAAKE,WAAW,eAAejF,EAAG,MAAM,CAACK,YAAY,SAAS,CAACL,EAAG,qBAAqB,CAACK,YAAY,aAAaH,MAAM,CAAC,MAAQ,QAAQ,SAAWN,EAAI2O,eAAenN,GAAG,CAAC,MAAQxB,EAAI8O,YAAY7J,MAAM,CAACnG,MAAOkB,EAAa,UAAEkF,SAAS,SAAUC,GAAMnF,EAAI+O,UAAU5J,GAAKE,WAAW,eAAejF,EAAG,aAAa,CAACK,YAAY,aAAaH,MAAM,CAAC,MAAQ,aAAa,KAAO,sCAAsC,MAAQ,OAAO,SAAWN,EAAI2O,cAAc,GAAK,cAAc1J,MAAM,CAACnG,MAAOkB,EAAa,UAAEkF,SAAS,SAAUC,GAAMnF,EAAIgP,UAAU7J,GAAKE,WAAW,eAAejF,EAAG,aAAa,CAACK,YAAY,aAAaH,MAAM,CAAC,MAAQ,cAAc,KAAO,2GAAiH,iBAAiB,QAAQ,MAAQ,OAAO,SAAWN,EAAI2O,cAAc,GAAK,eAAe1J,MAAM,CAACnG,MAAOkB,EAAc,WAAEkF,SAAS,SAAUC,GAAMnF,EAAIiP,WAAW9J,GAAKE,WAAW,iBAAiB,GAAGjF,EAAG,YAAY,CAACE,MAAM,CAAC,MAAO,EAAK,MAAQ,kCAAkC,SAAWN,EAAI2O,eAAenN,GAAG,CAAC,MAAQ,SAASK,GAAQ7B,EAAIkP,OAASrN,MAAY7B,EAAImP,cAC7sDnP,EAAImP,YAAYC,SAAW,GAAK9U,OAAOuQ,KAAK7K,EAAImP,aAAa9U,OAAS,GAC1E+F,EAAG,YAAY,CAACK,YAAY,gBAAgBH,MAAM,CAAC,WAAWN,EAAImP,YAAY,SAAU,KAAQ/O,EAAG,MAAM,CAACK,YAAY,WAAW,CAACT,EAAI0F,GAAG,aAAatF,EAAG,OAAO,CAACK,YAAY,oBAAoBH,MAAM,CAAC,SAAWN,EAAIqP,sBAAsB,GAAGjP,EAAG,MAAM,CAACK,YAAY,4BAA4B,CAACL,EAAG,SAAS,CAACK,YAAY,YAAYH,MAAM,CAAC,SAAWN,EAAI2O,cAAc,GAAK,cAAcnN,GAAG,CAAC,MAAQxB,EAAIyK,kBAAkB,CAACzK,EAAI0F,GAAG,cAActF,EAAG,SAAS,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,OAAQkB,EAAIsP,mBAAoBjK,WAAW,wBAAwB5E,YAAY,UAAUH,MAAM,CAAC,SAAWN,EAAI2O,cAAc,GAAK,cAAcnN,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIuP,YAAYvP,EAAIkG,SAAS,CAAClG,EAAI0F,GAAG,cAActF,EAAG,SAAS,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAsB,mBAAEqF,WAAW,uBAAuB5E,YAAY,UAAUH,MAAM,CAAC,SAAWN,EAAI2O,cAAc,GAAK,cAAcnN,GAAG,CAAC,MAAQxB,EAAI0K,SAAS,CAAC1K,EAAI0F,GAAG,mBAC/7B,GAAkB,G,oCCDhB8J,GAAc,CAClBC,cAAe,4DACfC,aAAc,uCACdC,cAAe,2CAGF,IACbC,UADa,SACFC,GACT,IAAM3U,EAAS,GACf,GAAI2U,EAAOC,KAAKC,OACdF,EAAOC,KAAKC,OAAOxD,SAAQ,SAAA9D,GACzBvN,EAAOuN,EAAIuH,QAAUH,EAAOhW,KAAKiR,KAAI,SAAAC,GACnC,IAAIjM,EAAQiM,EAAItC,GAIhB,OAHI3J,aAAiBmR,OACnBnR,EAAQA,EAAMoR,eAETpR,aAIX,IADK,eACI3E,GACPe,EAAO,MAAD,OAAOf,EAAI,IAAO0V,EAAOhW,KAAKiR,KAAI,SAAAC,GACtC,IAAIjM,EAAQiM,EAAI5Q,GAIhB,OAHI2E,aAAiBmR,OACnBnR,EAAQA,EAAMoR,eAETpR,MANF3E,EAAI,EAAGA,GAAK0V,EAAOhW,KAAK,GAAGQ,OAAS,EAAGF,IAAK,EAA5CA,GAUX,OAAOe,GAGTiV,MA3Ba,SA2BNjK,GAAmB,WAAbkK,EAAa,uDAAJ,GACpB,OAAO,IAAIhU,SAAQ,SAACC,EAASC,GAC3B,IAAM+T,EAAgB,CACpBtB,UAAW,GACXuB,QAAS,GACTtB,UAAW,IACXC,WAAY,IACZC,QAAQ,EACRqB,qBAAiBzS,EACjB0S,eAAe,EACfC,QAAS,EACTC,SAAU,QACV5D,QAAQ,EACR6D,UAAU,EACVC,UAAM9S,EACN+S,SAAU,SAAArC,GACR,IAAMN,EAAM,CACVrU,KAAM,EAAK+V,UAAUpB,GACrBO,UAAWP,EAAQsB,KAAKf,UACxB+B,WAAW,EACX1B,SAAUZ,EAAQ3U,KAAKQ,QAEzB6T,EAAI6C,SAAWvC,EAAQwC,OAAOlG,KAAI,SAAAmG,GAIhC,OAHAA,EAAIzT,KAAoB,0BAAbyT,EAAIC,KAAmC,OAAS,QAC1C,UAAbD,EAAIzT,OAAkB0Q,EAAI4C,WAAY,GAC1CG,EAAIhI,KAAOuG,GAAYyB,EAAIC,MACpBD,KAET5U,EAAQ6R,IAEVlR,MAAO,SAACA,EAAOkJ,GACb5J,EAAOU,IAETiK,UAAU,EACVkK,4BAAwBrT,EACxBsT,yBAAqBtT,EACrBuT,eAAgB,SAChB/T,WAAOQ,EACPwT,eAAWxT,EACXyT,cAAUzT,EACV0T,sBAAkB1T,EAClB2T,qBAAiB3T,EACjBkG,eAAWlG,EACX4T,kBAAmB,CAAC,IAAK,KAAM,IAAK,IAAKC,KAAKC,WAAYD,KAAKE,WAGjEF,KAAKxB,MAAMjK,EAAX,iCAAsBmK,GAAkBD,SCjF1C,GAAS,WAAa,IAAIpQ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACa,MAAM,CAAC,OAAQ,CAAC,SAAYjB,EAAI+I,WAAYzI,MAAM,CAAC,MAAQN,EAAIU,KAAK,OAASV,EAAIU,KAAK,QAAU,YAAY,KAAO,OAAO,MAAQ,8BAA8Bc,GAAG,CAAC,MAAQ,SAASK,GAAiC,OAAzBA,EAAO0H,kBAAyBvJ,EAAIsJ,MAAM,YAAY,CAAClJ,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,wGAAwG,KAAO,gBAC/d,GAAkB,GCiBtB,I,UAAA,CACE1C,KAAM,YACN2F,MAAO,CACL7C,KAAM,CACJlD,KAAMsU,OACNlJ,UAAU,EACVmJ,QAAS,IAEXhJ,SAAU,CACRvL,KAAMmL,QACNC,UAAU,EACVmJ,SAAS,MC7B+U,MCQ1V,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI/R,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACa,MAAM,CAAE,SAAYjB,EAAI+I,WAAY,CAAC3I,EAAG,MAAM,CAACK,YAAY,oBAAoB,CAACT,EAAI0F,GAAG,eAAetF,EAAG,MAAM,CAACK,YAAY,+BAA+BW,MAAM,CAAG+H,MAAOnJ,EAAImJ,OAAS3H,GAAG,CAAC,MAAQxB,EAAIgS,mBAAmB,CAAC5R,EAAG,MAAM,CAACK,YAAY,SAAS,CAACL,EAAG,QAAQ,CAACmF,WAAW,CAAC,CAAC3H,KAAK,QAAQ4H,QAAQ,UAAU1G,MAAOkB,EAAc,WAAEqF,WAAW,eAAerE,IAAI,iBAAiBC,MAAM,CAAE,OAAUjB,EAAIiS,QAAS3R,MAAM,CAAC,KAAO,OAAO,UAAY,IAAI,SAAWN,EAAI+I,UAAUM,SAAS,CAAC,MAASrJ,EAAc,YAAGwB,GAAG,CAAC,MAAQ,SAASK,GAAQA,EAAO0H,mBAAoB,MAAQ,SAAS1H,GAAWA,EAAOnE,OAAOwU,YAAqBlS,EAAImS,WAAWtQ,EAAOnE,OAAOoB,WAAUsB,EAAG,MAAM,CAACK,YAAY,QAAQ,CAACT,EAAI0F,GAAG1F,EAAI2F,GAAG3F,EAAIoS,cAAcpS,EAAIlB,aAAasB,EAAG,MAAM,CAACK,YAAY,WAAWe,GAAG,CAAC,MAAQ,SAASK,GAAQA,EAAO0H,qBAAsB,CAACnJ,EAAG,aAAa,CAACE,MAAM,CAAC,SAAWN,EAAI+I,UAAUsJ,SAAS,CAAC,MAAQ,SAASxQ,GAAQ,OAAO7B,EAAIsS,MAAMzQ,OAAYzB,EAAG,oBAAoB,CAACE,MAAM,CAAC,SAAWN,EAAI+I,UAAUsJ,SAAS,CAAC,MAAQ,SAASxQ,IAAS7B,EAAI+I,WAAa/I,EAAIuS,aAAevS,EAAIuS,kBAAkB,KAAKnS,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAe,YAAEqF,WAAW,gBAAgB5E,YAAY,UAAUW,MAAM,CAAG+H,MAAOnJ,EAAImJ,QAAUnJ,EAAI+F,GAAI/F,EAAW,SAAE,SAASwS,EAAO9J,GAAO,OAAOtI,EAAG,MAAM,CAAChB,IAAIsJ,EAAMjI,YAAY,SAASe,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIyS,aAAaD,MAAW,CAACpS,EAAG,MAAM,CAACJ,EAAI0F,GAAG1F,EAAI2F,GAAG6M,MAAWpS,EAAG,MAAM,CAACJ,EAAI0F,GAAG1F,EAAI2F,GAAG3F,EAAIoS,cAAcI,YAAgB,MAC5kD,GAAkB,GCDP,I,UAAA,CACbE,EAAG,CAAE9U,KAAM,kBACX+U,EAAG,CAAE/U,KAAM,mBACXgV,EAAG,CAAEhV,KAAM,iBACXiV,EAAG,CAAEjV,KAAM,eACXkV,EAAG,CAAElV,KAAM,uBACXmV,EAAG,CAAEnV,KAAM,WACXoV,EAAG,CAAEpV,KAAM,eACXqV,EAAG,CAAErV,KAAM,eACXsV,EAAG,CAAEtV,KAAM,aACXuV,EAAG,CAAEvV,KAAM,kBACXwV,GAAI,CAAExV,KAAM,aACZyV,GAAI,CAAEzV,KAAM,gBACZ0V,GAAI,CAAE1V,KAAM,aACZ2V,GAAI,CAAE3V,KAAM,mBACZ4V,GAAI,CAAE5V,KAAM,aACZ6V,GAAI,CAAE7V,KAAM,YACZ8V,GAAI,CAAE9V,KAAM,oBACZ+V,GAAI,CAAE/V,KAAM,oBACZgW,GAAI,CAAEhW,KAAM,oBACZiW,GAAI,CAAEjW,KAAM,oBACZkW,GAAI,CAAElW,KAAM,oBACZmW,GAAI,CAAEnW,KAAM,wBACZoW,GAAI,CAAEpW,KAAM,eACZqW,GAAI,CAAErW,KAAM,0BACZsW,GAAI,CAAEtW,KAAM,UACZuW,GAAI,CAAEvW,KAAM,iBACZwW,GAAI,CAAExW,KAAM,cACZyW,GAAI,CAAEzW,KAAM,UACZ0W,GAAI,CAAE1W,KAAM,kBACZ2W,GAAI,CAAE3W,KAAM,mBACZ4W,GAAI,CAAE5W,KAAM,oBACZ6W,GAAI,CAAE7W,KAAM,kBACZ8W,GAAI,CAAE9W,KAAM,SACZ+W,GAAI,CAAE/W,KAAM,oBACZgX,GAAI,CAAEhX,KAAM,kBACZiX,GAAI,CAAEjX,KAAM,eACZkX,GAAI,CAAElX,KAAM,eACZmX,GAAI,CAAEnX,KAAM,gBACZoX,GAAI,CAAEpX,KAAM,aACZqX,GAAI,CAAErX,KAAM,cACZsX,GAAI,CAAEtX,KAAM,oBACZuX,GAAI,CAAEvX,KAAM,qBACZwX,GAAI,CAAExX,KAAM,YACZyX,GAAI,CAAEzX,KAAM,aACZ0X,GAAI,CAAE1X,KAAM,SACZ2X,GAAI,CAAE3X,KAAM,UACZ4X,GAAI,CAAE5X,KAAM,UACZ6X,GAAI,CAAE7X,KAAM,SACZ8X,GAAI,CAAE9X,KAAM,WACZ+X,GAAI,CAAE/X,KAAM,WACZgY,GAAI,CAAEhY,KAAM,WACZiY,GAAI,CAAEjY,KAAM,WACZkY,GAAI,CAAElY,KAAM,WACZmY,GAAI,CAAEnY,KAAM,WACZoY,GAAI,CAAEpY,KAAM,WACZqY,GAAI,CAAErY,KAAM,WACZsY,GAAI,CAAEtY,KAAM,WACZuY,GAAI,CAAEvY,KAAM,WACZwY,GAAI,CAAExY,KAAM,SACZyY,GAAI,CAAEzY,KAAM,aACZ0Y,GAAI,CAAE1Y,KAAM,aACZ2Y,GAAI,CAAE3Y,KAAM,aACZ4Y,GAAI,CAAE5Y,KAAM,gBACZ6Y,GAAI,CAAE7Y,KAAM,iBACZ8Y,GAAI,CAAE9Y,KAAM,WACZ+Y,GAAI,CAAE/Y,KAAM,eACZgZ,GAAI,CAAEhZ,KAAM,eACZiZ,GAAI,CAAEjZ,KAAM,eACZkZ,GAAI,CAAElZ,KAAM,eACZmZ,GAAI,CAAEnZ,KAAM,eACZoZ,GAAI,CAAEpZ,KAAM,eACZqZ,GAAI,CAAErZ,KAAM,eACZsZ,GAAI,CAAEtZ,KAAM,eACZuZ,GAAI,CAAEvZ,KAAM,eACZwZ,GAAI,CAAExZ,KAAM,eACZyZ,GAAI,CAAEzZ,KAAM,eACZ0Z,GAAI,CAAE1Z,KAAM,eACZ2Z,GAAI,CAAE3Z,KAAM,eACZ4Z,GAAI,CAAE5Z,KAAM,eACZ6Z,GAAI,CAAE7Z,KAAM,eACZ8Z,GAAI,CAAE9Z,KAAM,eACZ+Z,GAAI,CAAE/Z,KAAM,eACZga,GAAI,CAAEha,KAAM,eACZia,GAAI,CAAEja,KAAM,eACZka,GAAI,CAAEla,KAAM,eACZma,GAAI,CAAEna,KAAM,eACZoa,GAAI,CAAEpa,KAAM,eACZqa,GAAI,CAAEra,KAAM,eACZsa,GAAI,CAAEta,KAAM,eACZua,GAAI,CAAEva,KAAM,eACZwa,GAAI,CAAExa,KAAM,eACZya,GAAI,CAAEza,KAAM,uBACZ0a,GAAI,CAAE1a,KAAM,aACZ2a,GAAI,CAAE3a,KAAM,wBACZ4a,GAAI,CAAE5a,KAAM,SACZ6a,GAAI,CAAE7a,KAAM,cACZ8a,GAAI,CAAE9a,KAAM,gBACZ+a,GAAI,CAAE/a,KAAM,eACZgb,GAAI,CAAEhb,KAAM,eACZib,GAAI,CAAEjb,KAAM,eACZkb,IAAK,CAAElb,KAAM,eACbmb,IAAK,CAAEnb,KAAM,eACbob,IAAK,CAAEpb,KAAM,eACbqb,IAAK,CAAErb,KAAM,eACbsb,IAAK,CAAEtb,KAAM,eACbub,IAAK,CAAEvb,KAAM,eACbwb,IAAK,CAAExb,KAAM,eACbyb,IAAK,CAAEzb,KAAM,eACb0b,IAAK,CAAE1b,KAAM,eACb2b,IAAK,CAAE3b,KAAM,eACb4b,IAAK,CAAE5b,KAAM,eACb6b,IAAK,CAAE7b,KAAM,eACb8b,IAAK,CAAE9b,KAAM,eACb+b,IAAK,CAAE/b,KAAM,eACbgc,IAAK,CAAEhc,KAAM,eACbic,IAAK,CAAEjc,KAAM,eACbkc,IAAK,CAAElc,KAAM,eACbmc,IAAK,CAAEnc,KAAM,eACboc,IAAK,CAAEpc,KAAM,eACbqc,IAAK,CAAErc,KAAM,eACbsc,IAAK,CAAEtc,KAAM,eACbuc,IAAK,CAAEvc,KAAM,eACbwc,IAAK,CAAExc,KAAM,eACbyc,IAAK,CAAEzc,KAAM,oBACb0c,IAAK,CAAE1c,KAAM,gBACb2c,IAAK,CAAE3c,KAAM,qBACb4c,IAAK,CAAE5c,KAAM,SACb6c,IAAK,CAAE7c,KAAM,qBChIX,GAAS,WAAa,IAAIoC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACa,MAAM,CAAC,eAAgB,CAAC,SAAYjB,EAAI+I,WAAWzI,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,OAAO,MAAQ,+BAA+B,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,yFAAyF,KAAO,gBAC7X,GAAkB,GCctB,IACE1C,KAAM,kBACN2F,MAAO,CAAC,aCjB8V,MCQpW,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIvD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACa,MAAM,CAAC,aAAc,CAAC,SAAYjB,EAAI+I,WAAWzI,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,OAAO,MAAQ,+BAA+B,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,ugBAAugB,KAAO,gBACzyB,GAAkB,GCiBtB,IACE1C,KAAM,YACN2F,MAAO,CAAC,aCpBoV,MCQ1V,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QC2Bf,IACE3F,KAAM,oBACN2F,MAAO,CAAC,QAAS,QAAS,YAC1BsF,WAAY,CAAd,iCACEhP,KAJF,WAKI,MAAO,CACL0Y,aAAa,EACbmI,QAAS,CAAC,IAAK,KAAM,IAAK,IAAK,IAAK,IAA1C,KACMzI,QAAQ,EACRE,WAAY,KAGhBwI,MAAO,CACLxI,WADJ,WAEUlS,KAAKkS,YACPlS,KAAKgS,QAAS,EACVhS,KAAKkS,aAAelS,KAAKnB,OAC3BmB,KAAKqJ,MAAM,QAASrJ,KAAKkS,aAG3BlS,KAAKgS,QAAS,IAIpB2I,QAxBF,WAyBI3a,KAAKkS,WAAalS,KAAKnB,OAEzBqF,QAAS,CACPiO,cADJ,SACA,GACM,OAAK/K,EAGEwT,GAAMxT,EAAIyT,WAAW,GAAGC,YAAYnd,KAFlC,IAIX6U,aAPJ,SAOA,GACMxS,KAAKkS,WAAaK,EAClBvS,KAAKsS,aAAc,GAErBP,iBAXJ,SAWA,GACM/R,KAAK+E,MAAMgW,eAAeC,SAG5B3I,MAfJ,WAgBWrS,KAAK8I,WACR9I,KAAKkS,WAAa,GAClBlS,KAAK+E,MAAMgW,eAAeC,YC3F2U,MCQzW,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIjb,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACa,MAAM,CAAC,qBAAsB,CAAE,QAAWjB,EAAIkb,SAAW,CAAC,SAAYlb,EAAI+I,WAAWvH,GAAG,CAAC,MAAQ,SAASK,GAAiC,OAAzBA,EAAO0H,kBAAyBvJ,EAAIwJ,QAAQ3H,MAAW,CAACzB,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,OAAQkB,EAAIkb,QAAS7V,WAAW,aAAa5E,YAAY,cAAcL,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAIkb,UAAYlb,EAAI+I,SAAU1D,WAAW,yBAAyB/E,MAAM,CAAC,IAAoB,UAAdN,EAAImb,MACrhB,EAAQ,QACR,EAAQ,WAA2C/a,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAIkb,SAAWlb,EAAI+I,SAAU1D,WAAW,wBAAwB/E,MAAM,CAAC,IAAM,EAAQ,WAAqDN,EAAS,MAAEI,EAAG,OAAO,CAACK,YAAY,SAAS,CAACT,EAAI0F,GAAG1F,EAAI2F,GAAG3F,EAAIgJ,UAAUhJ,EAAI+B,QACxU,GAAkB,GCkBtB,IACEnE,KAAM,WACN2F,MAAO,CACL4X,MAAO,CACL3d,KAAM4d,OACNxS,UAAU,EACVmJ,QAAS,SACTsJ,UAAW,SAAjB,GACQ,MAAO,CAAC,SAAU,SAAS7U,SAAS1H,KAGxCwc,KAAM,CACJ9d,KAAMmL,QACNC,UAAU,EACVmJ,SAAS,GAEX/I,MAAO,CACLxL,KAAM4d,OACNxS,UAAU,EACVmJ,QAAS,IAEXhJ,SAAU,CACRvL,KAAMmL,QACNC,UAAU,EACVmJ,SAAS,IAGblY,KA3BF,WA4BI,MAAO,CACLqhB,QAASjb,KAAKqb,OAGlBnX,QAAS,CACPqF,QADJ,WAEWvJ,KAAK8I,WACR9I,KAAKib,SAAWjb,KAAKib,QACrBjb,KAAKqJ,MAAM,QAASrJ,KAAKib,aCzDiT,MCQ9U,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIlb,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACK,YAAY,cAAc,CAACL,EAAG,MAAM,CAACY,IAAI,mBAAmBP,YAAY,oBAAoB,CAACL,EAAG,MAAMJ,EAAI+F,GAAI/F,EAAU,QAAE,SAASub,EAAG7S,GAAO,OAAOtI,EAAG,MAAM,CAAChB,IAAIsJ,EAAMjI,YAAY,eAAeW,MAAM,CAAG+H,MAASoS,EAAQ,MAAI,OAAU,CAACvb,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG4V,EAAG3d,MAAM,UAAS,KAAKwC,EAAG,MAAM,CAACY,IAAI,kBAAkBP,YAAY,kBAAkBe,GAAG,CAAC,OAASxB,EAAIwb,gBAAgB,CAACpb,EAAG,QAAQ,CAACY,IAAI,QAAQP,YAAY,mBAAmB,CAACL,EAAG,QAAQ,CAACA,EAAG,KAAKJ,EAAI+F,GAAI/F,EAAW,SAAE,SAASub,EAAG7S,GAAO,OAAOtI,EAAG,KAAK,CAAChB,IAAIsJ,EAAM1H,IAAI,KAAKya,UAAS,GAAM,CAACrb,EAAG,MAAM,CAACK,YAAY,YAAYW,MAAOpB,EAAa,WAAG,CAACA,EAAI0F,GAAG1F,EAAI2F,GAAG4V,WAAW,KAAKnb,EAAG,QAAQJ,EAAI+F,GAAI/F,EAAI0b,gBAAqB,OAAE,SAASC,GAAU,OAAOvb,EAAG,KAAK,CAAChB,IAAIuc,GAAU3b,EAAI+F,GAAI/F,EAAW,SAAE,SAASyI,EAAImT,GAAU,OAAOxb,EAAG,KAAK,CAAChB,IAAIwc,GAAU,CAACxb,EAAG,MAAM,CAACK,YAAY,YAAYW,MAAOpB,EAAa,WAAG,CAACA,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG3F,EAAI6b,QAAQpT,GAAKkT,EAAW,EAAI3b,EAAI0b,gBAAgBtQ,QAAQ,YAAW,MAAK,SAAShL,EAAG,MAAM,CAACK,YAAY,gBAAgB,CAACL,EAAG,MAAM,CAACK,YAAY,sBAAsB,CAACT,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG3F,EAAIoP,UAAU,IAAIpP,EAAI2F,GAAoB,IAAjB3F,EAAIoP,SAAiB,MAAQ,QAAQ,eAAgBpP,EAAW,QAAEI,EAAG,OAAO,CAACJ,EAAI0F,GAAG,iBAAiB1F,EAAI+B,KAAM/B,EAAQ,KAAEI,EAAG,OAAO,CAACJ,EAAI0F,GAAG,MAAM1F,EAAI2F,GAAG3F,EAAI8b,SAAS9b,EAAI+B,OAAO3B,EAAG,QAAQ,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAI+b,UAAY,EAAG1W,WAAW,kBAAkB/E,MAAM,CAAC,aAAaN,EAAI+b,WAAW9W,MAAM,CAACnG,MAAOkB,EAAe,YAAEkF,SAAS,SAAUC,GAAMnF,EAAIgc,YAAY7W,GAAKE,WAAW,kBAAkB,MACxlD,GAAkB,GCDlB,GAAS,WAAa,IAAIrF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACE,MAAM,CAAC,aAAaN,EAAI+b,UAAU,aAAa,EAAE,eAAe,EAAE,YAAY/b,EAAIic,QAAQ,YAAYjc,EAAIic,QAAQ,kBAAiB,EAAK,kBAAkB,qBAAqB,kBAAkB,sBAAsB,eAAe,wBAAwB,wBAAwB,kBAAkB,kBAAkB,iBAAiB,kBAAkB,iBAAiB,iBAAiB,sBAAsBhX,MAAM,CAACnG,MAAOkB,EAAQ,KAAEkF,SAAS,SAAUC,GAAMnF,EAAIkc,KAAK/W,GAAKE,WAAW,WAC1kB,GAAkB,G,wBCqBtB,IACEzH,KAAM,QACNiL,WAAY,CAAd,eACEtF,MAAO,CAAC,YAAa,SACrB1J,KAJF,WAKI,MAAO,CACLqiB,KAAMjc,KAAKnB,MACXmd,QAAS,0RAObtB,MAAO,CACLuB,KADJ,WAEMjc,KAAKqJ,MAAM,QAASrJ,KAAKic,OAE3Bpd,MAJJ,WAKMmB,KAAKic,KAAOjc,KAAKnB,SCzCuU,MCQ1V,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCmCf,IACElB,KAAM,WACNiL,WAAY,CAAd,UACEtF,MAAO,CACLsY,QAASvhB,OACTwhB,KAAMV,OACNe,SAAU,CACR3e,KAAMsU,OACNC,QAAS,IAEXtB,QAAS9H,SAEX9O,KAZF,WAaI,MAAO,CACLqV,OAAQ,KACRkN,WAAY,KACZJ,YAAa,EACbK,eAAgB,OAGpB1Y,SAAU,CACRsC,QADJ,WAEM,OAAO3L,OAAOuQ,KAAK5K,KAAK4b,UAE1BzM,SAJJ,WAKM,OAAOnP,KAAK4b,QAAQ5b,KAAKgG,QAAQ,IAAI5L,QAEvCiiB,UAPJ,WAQM,IAAN,sCACM,MAAO,CAAb,2CAEIP,UAXJ,WAYM,OAAO1Y,KAAK8H,KAAKlL,KAAKmP,SAAWnP,KAAKkc,WAExCT,gBAdJ,WAeM,IAAN,qCACA,kBAIM,OAHIrQ,EAAMpL,KAAKmP,SAAW,IACxB/D,EAAMpL,KAAKmP,SAAW,GAEjB,CACLhE,MAAR,EACQC,IAAR,EACQH,MAAOG,EAAMD,EAAQ,KAI3BjH,QAAS,CACPoY,sBADJ,WACA,WACMtc,KAAKmc,WAAanc,KAAK+E,MAAM,mBAAmBmF,YAChDlK,KAAKuc,WAAU,WACb,EAAR,mCACU,MAAO,CAAjB,+DAIIhB,cATJ,WAUMvb,KAAK+E,MAAM,oBAAoByX,WAAaxc,KAAK+E,MAAM,mBAAmByX,aAG9E1X,QA5DF,WA6DI9E,KAAKoc,eAAiB,IAAIK,eAAezc,KAAKsc,uBAC9Ctc,KAAKoc,eAAeM,QAAQ1c,KAAK+E,MAAMgB,OACvC/F,KAAKsc,yBAEPK,cAjEF,WAkEI3c,KAAKoc,eAAeQ,UAAU5c,KAAK+E,MAAMgB,QAE3C2U,MAAO,CACLe,gBAAiB,wBACjBG,QAFJ,WAGM5b,KAAK+b,YAAc,KC7HqU,MCO1V,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,QClBX,GAAS,WAAa,IAAIhc,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACY,IAAI,gBAAgBP,YAAY,kBAAkBT,EAAI+F,GAAI/F,EAAY,UAAE,SAASiR,EAAIvI,GAAO,OAAOtI,EAAG,MAAM,CAAChB,IAAIsJ,EAAMjI,YAAY,OAAO,CAAe,UAAbwQ,EAAIzT,KAAkB4C,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,WAAgCN,EAAI+B,KAAmB,SAAbkP,EAAIzT,KAAiB4C,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,QAA4B,MAAQ,UAAUN,EAAI+B,KAAmB,YAAbkP,EAAIzT,KAAoB4C,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,WAAkCN,EAAI+B,KAAmB,YAAbkP,EAAIzT,KAAoB4C,EAAG,oBAAoB,CAACE,MAAM,CAAC,SAAW2Q,EAAI7D,YAAYpN,EAAI+B,KAAK3B,EAAG,OAAO,CAACK,YAAY,YAAY,CAACT,EAAI0F,GAAG1F,EAAI2F,GAAG3F,EAAI8c,iBAAiB7L,QAAU,MAAK,IACjtB,GAAkB,GCDlB,GAAS,WAAa,IAAIjR,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACa,MAAMjB,EAAI+c,eAAezc,MAAM,CAAC,OAASN,EAAIU,KAAK,MAAQV,EAAIU,KAAK,QAAW,OAASV,EAAIU,KAAO,IAAMV,EAAIU,OAAQ,CAACN,EAAG,SAAS,CAACK,YAAY,gBAAgBW,MAAM,CAAG4b,YAAahd,EAAIgd,aAAe1c,MAAM,CAAC,GAAKN,EAAIU,KAAO,EAAE,GAAKV,EAAIU,KAAO,EAAE,EAAIV,EAAIid,UAAU7c,EAAG,SAAS,CAACK,YAAY,mBAAmBW,MAAM,CAAG8b,gBAAiBld,EAAImd,eAAgBC,iBAAkBpd,EAAI4E,OAAQoY,YAAahd,EAAIgd,aAAe1c,MAAM,CAAC,GAAKN,EAAIU,KAAO,EAAE,GAAKV,EAAIU,KAAO,EAAE,EAAIV,EAAIid,aACrjB,GAAkB,GCmBtB,IACErf,KAAM,mBACN2F,MAAO,CACL6J,SAAU,CACR5P,KAAMsU,OACNlJ,UAAU,GAEZlI,KAAM,CACJlD,KAAMsU,OACNlJ,UAAU,EACVmJ,QAAS,KAGbpO,SAAU,CACRwZ,eADJ,WAEM,IAAN,qBACA,0CACA,MACM,MAAO,GAAb,iCAEIJ,eAPJ,WAQM,YAAyBjf,IAAlBmC,KAAKmN,SAAyB,UAAY,YAEnD6P,OAVJ,WAWM,OAAOhd,KAAKS,KAAO,EAAIT,KAAK+c,aAE9BpY,OAbJ,WAcM,OAAqB,KAAd3E,KAAKgd,OAAgB,GAE9BD,YAhBJ,WAiBM,OAAO/c,KAAKS,KAAO,MClDiU,MCQtV,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCJf,IACE9C,KAAM,OACN2F,MAAO,CAAC,YACRsF,WAAY,CAAd,qBACE8R,MAAO,CACL,kBAAmB,kBAErB5V,QAPF,WAQI9E,KAAKod,kBAEPlZ,QAAS,CACP,eADJ,WACA,iKACA,yBACA,EAFA,gCAGA,cAHA,OAIA,2BAJA,8CAQI2Y,iBATJ,SASA,GACM,IAAN,KAiBM,OAhBgB,OAAZ7L,EAAIlG,UAA4BjN,IAAZmT,EAAIlG,MACT,UAAbkG,EAAIzT,KACNtC,GAAU,gBAApB,mBAEUA,GAAU,yBAApB,oBAIMA,GAAU+V,EAAItT,QACT,aAAX,UACQzC,GAAU,KAGR+V,EAAIhI,OACN/N,GAAU,IAAlB,gBAEaA,KCpDiU,MCQ1U,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBA,I,UAAA,CACboiB,UADa,SACFlS,EAAOC,GAChB,IAAMkS,EAAOlS,EAAImS,UAAYpS,EAAMoS,UAC7BC,EAAUF,EAAO,IACvB,OAAOE,EAAQC,QAAQ,GAAK,KAG9BC,SAPa,SAOHC,EAAMC,GACd,IAAIjhB,EACJ,OAAO,WAAY,uBACjBS,aAAaT,GACbA,EAAUmB,YAAW,kBAAM6f,EAAK5iB,MAAM,EAAM8iB,KAAYD,OCqG9D,IACEjgB,KAAM,YACNiL,WAAY,CACVkV,UAAJ,GACIC,UAAJ,EACIC,kBAAJ,GACIC,SAAJ,GACIC,SAAJ,GACIC,KAAJ,IAEE7a,MAAO,CAAC,OAAQ,KAAM,cACtB1J,KAXF,WAYI,MAAO,CACL8U,eAAe,EACfE,UAAW,GACXE,UAAW,GACXC,UAAW,IACXC,WAAY,IACZC,QAAQ,EACRI,oBAAoB,EACpBD,kBAAmB,GACnBF,YAAa,KACbkP,WAAY,KACZzP,eAAgB,KAGpB+L,MAAO,CACL3L,UADJ,WAEM/O,KAAK6O,cAGPG,WALJ,WAMMhP,KAAK6O,cAGPI,OATJ,WAUMjP,KAAK6O,cAEPD,UAAWiN,GAAK6B,UAAS,WAA7B,WACM1d,KAAK2O,eAAiB,GACjB3O,KAAK4O,WAGV5O,KAAKoG,GAAGiY,kBAAkBre,KAAK4O,WACrC,mBACQ,EAAR,0DAEA,MAEE1K,QAAS,CACPsG,gBADJ,WAEWxK,KAAK0O,gBACJ1O,KAAKoe,aACPpe,KAAKoG,GAAG+H,QAAQ,eAA1B,6BACUnO,KAAKoG,GAAGyH,iBAEV7N,KAAKse,OAAOC,KAAKve,KAAKyO,YACtBzO,KAAKqJ,MAAM,YAGfmV,MAXJ,WAYMxe,KAAKiP,QAAS,EACdjP,KAAK+O,UAAY,IACjB/O,KAAKgP,WAAa,IAClBhP,KAAK8O,UAAY,GACjB9O,KAAK4O,UAAY,GACjB5O,KAAK0O,eAAgB,EACrB1O,KAAKqP,oBAAqB,EAC1BrP,KAAKoP,kBAAoB,GACzBpP,KAAKkP,YAAc,KACnBlP,KAAKoe,WAAa,KAClBpe,KAAK2O,eAAiB,IAExB8P,KAxBJ,WAyBMze,KAAK4O,UAAY5O,KAAKoG,GAAGsY,kBAAkB,EAAjD,wBACM1e,KAAKse,OAAOK,KAAK3e,KAAKyO,aAExB,WA5BJ,WA4BA,2KACA,wBACA,GACA,UACA,2BACA,wBACA,gBACA,uBAPA,SAUA,WAVA,SAWA,mBAXA,OAWA,EAXA,OAYA,WACA,qBACA,wBAGA,mCAEA,aACA,0BACA,yEACA,iBAtBA,qDA0BA,sBACA,aACA,eA5BA,6DAgCI,YA5DJ,SA4DA,0LACA,YADA,uBAEA,6CAFA,iCAMA,mBACA,GACA,2BACA,wBACA,gBACA,uBAEA,GACA,yBACA,aAEA,4BACA,iDAEA,GACA,kDACA,aAEA,OAEA,cACA,wBAEA,gCA7BA,UAgCA,WAhCA,UAiCA,mBAjCA,WAiCA,EAjCA,OAkCA,WAEA,YApCA,wBAqCA,aACA,oBACA,iBAEA,qBACA,2DACA,6DAGA,yEAIA,gBAGA,4BAGA,yBACA,mBACA,KAGA,WA7DA,UA8DA,2CA9DA,QA+DA,WAEA,yBAEA,oBACA,gFACA,iBAGA,gBAEA,wBA1EA,wBA4EA,uCACA,cACA,2DA9EA,8DAiFA,qBACA,eAGA,qBACA,eAGA,0BACA,aACA,eA3FA,QA+FA,gBACA,gBACA,8BACA,mBAlGA,8DAoGI,OAhKJ,WAgKA,uKACA,4BACA,GACA,KADA,kDAEA,aAFA,WAGA,gFACA,MAJA,yBAKA,aALA,MAMA,WARA,SASA,sCATA,OASA,EATA,OAUA,qCACA,wBACA,kBAZA,gDCjU8V,MCQ1V,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QC0Cf,IACE9Q,KAAM,aACN2F,MAAO,CACL/F,KAAM,CACJA,KAAM4d,OACNxS,UAAU,EACVmJ,QAAS,QACTsJ,UAAW,SAAjB,GACQ,MAAO,CAAC,cAAe,SAAS7U,SAAS1H,KAG7CqK,MAAO,CACL3L,KAAM4d,OACNxS,UAAU,EACVmJ,QAAS,UAGblJ,WAAY,CACVgW,aAAJ,GACIC,UAAJ,IAEEjlB,KArBF,WAsBI,MAAO,CACLuM,MAAO,GACP2Y,iBAAkB3iB,QAAQC,UAC1B6J,KAAM,KACNsE,MAAO,OAGXzF,QA7BF,WA6BA,WACsB,gBAAd9E,KAAKzC,OACPyC,KAAK8e,iBAAmB,IAAI3iB,SAAQ,SAA1C,GACQ,EAAR,2DACcc,EAAM8hB,cAAcvQ,WAAW,SACjC,EAAZ,gBACYpS,aAMV8H,QAAS,CACPsG,gBADJ,WAEUxK,KAAKuK,QACPvK,KAAKuK,MAAMyU,WACXhf,KAAKuK,MAAQ,OAIjB,OARJ,WAQA,wJACA,iCACA,8BACA,6BAHA,8CAOI0U,OAfJ,SAeA,GACM,OAAO9iB,QAAQ8B,IAAI,CAAC+B,KAAKuK,MAAM0U,OAAOhZ,GAAOjG,KAAK8e,mBACxD,mBAGI,UApBJ,SAoBA,oKACA,mBACA,6BAEA,gBAJA,gBAKA,YALA,8BAOA,SAPA,SAQA,cARA,cASA,iBACA,UAVA,kBAWA,iDACA,cAZA,+CAeIzU,OAnCJ,WAoCM,EAAN,6CACA,sBAGIC,KAxCJ,SAwCA,GACMtK,KAAKkf,UAAUjiB,EAAMkiB,aAAaxX,MAAM,OC/IsS,MCQhV,I,UAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI5H,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACA,EAAG,MAAM,CAACK,YAAY,OAAOH,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAAQkB,GAAG,CAAC,MAAQ,SAASK,GAAiC,OAAzBA,EAAO0H,kBAAyBvJ,EAAIwJ,QAAQ3H,IAAS,WAAa,SAASA,GAAQ,OAAO7B,EAAIyJ,YAAY5H,EAAQ7B,EAAIgK,kBAAkB,WAAahK,EAAI0J,cAAc,CAACtJ,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,0NAA0N,KAAO,eAAeF,EAAG,OAAO,CAACY,IAAI,UAAUP,YAAY,eAAeW,MAAOpB,EAAgB,cAAG,CAACA,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG3F,EAAI+J,SAAS,UACpwB,GAAkB,GCyBtB,IACEnM,KAAM,aACNwM,OAAQ,CAACC,GACT9G,MAAO,CAAC,UAAW,mBACnBY,QAAS,CACPqF,QADJ,WAEMvJ,KAAKyJ,cACLzJ,KAAKqJ,MAAM,YCjC8U,MCQ3V,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAItJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACA,EAAG,MAAM,CAACK,YAAY,OAAOH,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAAQkB,GAAG,CAAC,MAAQ,SAASK,GAAiC,OAAzBA,EAAO0H,kBAAyBvJ,EAAIwJ,QAAQ3H,IAAS,WAAa7B,EAAIyJ,YAAY,WAAazJ,EAAI0J,cAAc,CAACtJ,EAAG,IAAI,CAACE,MAAM,CAAC,YAAY,gBAAgB,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,qhBAAqhB,KAAO,eAAeF,EAAG,OAAO,CAACA,EAAG,WAAW,CAACE,MAAM,CAAC,GAAK,UAAU,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,KAAO,iBAAiBF,EAAG,OAAO,CAACY,IAAI,UAAUP,YAAY,eAAeW,MAAOpB,EAAgB,cAAG,CAACA,EAAI0F,GAAG,iCAC/rC,GAAkB,GC0CtB,IACE9H,KAAM,eACNwM,OAAQ,CAACC,GACT9G,MAAO,CAAC,WACRY,QAAS,CACPqF,QADJ,WAEMvJ,KAAKyJ,cACLzJ,KAAKqJ,MAAM,YClDgV,MCQ7V,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCwBf,IACE1L,KAAM,SACNiL,WAAY,CACVwW,iBAAJ,EACIrB,UAAJ,EACIsB,YAAJ,EACIC,WAAJ,GACIC,WAAJ,GACIC,aAAJ,GACIX,UAAJ,IAEEjlB,KAXF,WAYI,MAAO,CACLyL,eAAe,EACfF,OAAQ,KACRc,KAAM,OAGVvC,SAAU,CACR8B,OADJ,WACA,WACM,OAAKxF,KAAKkG,OAAOC,MAAMC,GAAGZ,OAIlBxF,KAAKmF,OAEnB,oCACA,YAAQ,OAAR,4DAFA,4BAJe,IASXQ,OAZJ,WAaM,OAAO3F,KAAKkG,OAAOC,MAAMC,GAAGT,SAGhCzB,QAAS,CACP0B,aADJ,WAEM5F,KAAKkG,OAAOC,MAAMC,GAAGqZ,OAAO,GAAlC,gCAEI,OAJJ,WAIA,8KACA,0BADA,cACA,OADA,gBAEA,cAFA,cAGA,iBACA,UAJA,SAKA,eALA,OAMA,SANA,iDCjF4X,MCQxX,I,UAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI1f,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,SAAS,CAAEN,EAAI2f,KAAKtlB,OAAS,EAAG+F,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,gBAAgBN,EAAI+F,GAAI/F,EAAQ,MAAE,SAAS4f,EAAIlX,GAAO,OAAOtI,EAAG,MAAM,CAAChB,IAAIsJ,EAAMzH,MAAM,CAAC,CAAC,eAAiB2e,EAAIvS,KAAOrN,EAAI6f,eAAiB,OAAOre,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAI8f,UAAUF,EAAIvS,OAAO,CAACjN,EAAG,MAAM,CAACK,YAAY,YAAY,CAACL,EAAG,OAAO,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,OAAQ8gB,EAAIG,QAAS1a,WAAW,iBAAiB5E,YAAY,QAAQ,CAACT,EAAI0F,GAAG,OAAQka,EAAQ,KAAExf,EAAG,OAAO,CAACJ,EAAI0F,GAAG1F,EAAI2F,GAAGia,EAAIhiB,SAASwC,EAAG,OAAO,CAACK,YAAY,gBAAgB,CAACT,EAAI0F,GAAG1F,EAAI2F,GAAGia,EAAII,eAAe5f,EAAG,MAAM,CAACA,EAAG,aAAa,CAACK,YAAY,aAAaH,MAAM,CAAC,KAAO,IAAIkB,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIigB,eAAevX,QAAY,QAAO,GAAG1I,EAAI+B,KAAK/B,EAAI+F,GAAI/F,EAAQ,MAAE,SAAS4f,EAAIlX,GAAO,OAAOtI,EAAG,MAAM,CAAChB,IAAIwgB,EAAIvS,GAAG/M,MAAM,CAAC,GAAKsf,EAAIvS,GAAG,YAAYuS,EAAIhiB,KAAK,aAAagiB,EAAIM,MAAM,oBAAoBN,EAAIO,YAAY,iBAAiBP,EAAIQ,SAAS,gBAAgBR,EAAIS,aAAa,YAAY3X,QAAWtI,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAA2B,IAApBkB,EAAI2f,KAAKtlB,OAAcgL,WAAW,sBAAsB/E,MAAM,CAAC,GAAK,gBAAgB,CAACF,EAAG,OAAO,CAACK,YAAY,OAAOe,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIsgB,MAAMhX,MAAM,uBAAuB,CAACtJ,EAAI0F,GAAG,YAAY1F,EAAI0F,GAAG,+CAA+CtF,EAAG,cAAc,CAACK,YAAY,OAAOH,MAAM,CAAC,GAAK,eAAe,CAACN,EAAI0F,GAAG,gBAAgB,GAAGtF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,aAAa,QAAU,SAAS,OAAS,SAAS,CAACF,EAAG,MAAM,CAACK,YAAY,iBAAiB,CAACT,EAAI0F,GAAG,cAAc1F,EAAI2F,GAA2B,OAAxB3F,EAAIugB,gBAA4BvgB,EAAI2f,KAAK3f,EAAIugB,iBAAiB3iB,MAAS,IAAOoC,EAAI2f,KAAK3f,EAAIugB,iBAAyB,SAAI,IAAQ,IAAI,KAAKngB,EAAG,aAAa,CAACoB,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIue,OAAOC,KAAK,mBAAmB,GAAGpe,EAAG,MAAM,CAACK,YAAY,eAAe,CAACT,EAAI0F,GAAG,8CAA8C1F,EAAI2F,GAA2B,OAAxB3F,EAAIugB,gBAA4BvgB,EAAI2f,KAAK3f,EAAIugB,iBAAiB3iB,MAAS,IAAOoC,EAAI2f,KAAK3f,EAAIugB,iBAAyB,SAAI,IAAQ,IAAI,uBAAuBngB,EAAG,MAAM,CAACK,YAAY,4BAA4B,CAACL,EAAG,SAAS,CAACK,YAAY,YAAYe,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIwgB,SAASxgB,EAAIugB,oBAAoB,CAACvgB,EAAI0F,GAAG,4BAA4BtF,EAAG,SAAS,CAACK,YAAY,YAAYe,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIue,OAAOC,KAAK,iBAAiB,CAACxe,EAAI0F,GAAG,YAAYtF,EAAG,SAAS,CAACK,YAAY,UAAUe,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIygB,aAAazgB,EAAIugB,oBAAoB,CAACvgB,EAAI0F,GAAG,yBAAyB,IACxhF,GAAkB,GCDlB,GAAS,WAAa,IAAI1F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAY,SAAEqF,WAAW,aAAa5E,YAAY,yBAAyB,CAACL,EAAG,aAAa,CAACK,YAAY,yBAAyBH,MAAM,CAAC,WAAa,GAAG,OAAS,CAAEI,KAAM,GAAIC,IAAK,KAAM,MAAQ,CAAED,KAAM,GAAIC,IAAK,MAAOC,YAAYZ,EAAIa,GAAG,CAAC,CAACzB,IAAI,YAAY0B,GAAG,WAAW,MAAO,CAACV,EAAG,MAAM,CAACK,YAAY,QAAQH,MAAM,CAAC,GAAK,SAAWN,EAAI0gB,cAAc3f,OAAM,GAAM,CAAC3B,IAAI,aAAa0B,GAAG,WAAW,MAAO,CAACV,EAAG,MAAM,CAACY,IAAI,aAAaP,YAAY,aAAaH,MAAM,CAAC,GAAK,UAAWN,EAAI0gB,cAAc3f,OAAM,OAAUX,EAAG,MAAM,CAACK,YAAY,cAAcH,MAAM,CAAC,GAAK,UAAWN,EAAI0gB,YAAYtgB,EAAG,WAAW,CAACE,MAAM,CAAC,GAAM,IAAON,EAAI2gB,OAAgB,UAAI,IAAM3gB,EAAI0gB,WAAY,CAACtgB,EAAG,aAAa,CAACY,IAAI,YAAYV,MAAM,CAAC,qBAAqBN,EAAI4gB,kBAAkBpf,GAAG,CAAC,SAAW,SAASK,GAAQ,OAAO7B,EAAI6gB,aAAa,YAAahf,IAAS,IAAM7B,EAAIoO,SAASnJ,MAAM,CAACnG,MAAOkB,EAAS,MAAEkF,SAAS,SAAUC,GAAMnF,EAAIkgB,MAAM/a,GAAKE,WAAW,YAAY,GAAGjF,EAAG,WAAW,CAACE,MAAM,CAAC,GAAM,IAAON,EAAI2gB,OAAY,MAAI,IAAM3gB,EAAI0gB,WAAY,CAACtgB,EAAG,aAAa,CAACE,MAAM,CAAC,OAASN,EAAI9E,OAAO,qBAAqB8E,EAAI4gB,iBAAiB,MAAQ5gB,EAAIhD,MAAM,KAAOgD,EAAI8b,MAAMta,GAAG,CAAC,SAAW,SAASK,GAAQ,OAAO7B,EAAI6gB,aAAa,QAAShf,QAAa,GAAGzB,EAAG,WAAW,CAACE,MAAM,CAAC,GAAM,IAAON,EAAI2gB,OAAe,SAAI,IAAM3gB,EAAI0gB,WAAY,CAACtgB,EAAG,YAAY,CAACY,IAAI,WAAWV,MAAM,CAAC,cAAcN,EAAI9E,OAAO,eAAe8E,EAAI8gB,gBAAgB,YAAY9gB,EAAI+gB,cAAcvf,GAAG,CAAC,SAAW,SAASK,GAAQ,OAAO7B,EAAI6gB,aAAa,WAAYhf,IAAS,OAAS7B,EAAIghB,qBAAqB,IAAI,IAC3pD,GAAkB,GCDlB,GAAS,WAAa,IAAIhhB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACK,YAAY,oBAAoB,CAACL,EAAG,MAAM,CAACK,YAAY,wBAAwB,CAACL,EAAG,aAAa,CAACY,IAAI,KAAKV,MAAM,CAAC,QAAUN,EAAIihB,WAAWzf,GAAG,CAAC,QAAUxB,EAAIkhB,UAAUjc,MAAM,CAACnG,MAAOkB,EAAS,MAAEkF,SAAS,SAAUC,GAAMnF,EAAIkgB,MAAM/a,GAAKE,WAAW,YAAY,GAAGjF,EAAG,gBAAgB,CAACE,MAAM,CAAC,MAAQ,aAAakB,GAAG,CAAC,SAAW,SAASK,GAAQ,OAAO7B,EAAIsJ,MAAM,WAAYzH,MAAW,CAACzB,EAAG,cAAc,CAACE,MAAM,CAAC,SAAWN,EAAImhB,YAAY,QAAUnhB,EAAI4gB,iBAAiB,QAAU,gBAAgB,mBAAmB,YAAYpf,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIsJ,MAAM,UAAU,CAAClJ,EAAG,WAAW,CAACE,MAAM,CAAC,SAAWN,EAAImhB,gBAAgB,IAAI,IAAI,IACluB,GAAkB,G,2DCDP,IACbxB,KAAM,GACNyB,WAAY,KACZC,aAAc,KACdC,kBAAmB,EACnBC,oBAAqB,GACrBlb,GAAI,MCJS,I,UAAA,CACbmb,MADa,SACNpb,EAAOC,GACRD,EAAMC,IACRD,EAAMC,GAAG4Y,WAEX7Y,EAAMC,GAAKA,GAGbob,UARa,SAQFrb,EARE,GAQiE,IAA1DsC,EAA0D,EAA1DA,MAAO9K,EAAmD,EAAnDA,KAAMyP,EAA6C,EAA7CA,GAAI6S,EAAyC,EAAzCA,MAAOE,EAAkC,EAAlCA,SAAUD,EAAwB,EAAxBA,YAAaJ,EAAW,EAAXA,QAC3DH,EAAMxZ,EAAMuZ,KAAKjX,GACjBgZ,EAAQ9B,EAAIvS,GAEdA,GAAMjH,EAAMib,eAAiBK,IAC/Btb,EAAMib,aAAehU,GAGnBA,IAAMuS,EAAIvS,GAAKA,GACfzP,IAAQgiB,EAAIhiB,KAAOA,GACnBsiB,IAASN,EAAIM,MAAQA,GACrBE,IAAYR,EAAIQ,SAAWA,GAC3BD,IAAeP,EAAIO,YAAcA,QACrBriB,IAAZiiB,IAAyBH,EAAIG,QAAUA,GACvCA,UAEKH,EAAIS,aAGbsB,aAAIC,IAAIxb,EAAMuZ,KAAMjX,EAAOkX,IAG7BiC,UA9Ba,SA8BFzb,EAAOsC,GAEZtC,EAAMuZ,KAAKjX,GAAO2E,KAAOjH,EAAMib,eAC7B3Y,EAAQtC,EAAMuZ,KAAKtlB,OAAS,EAC9B+L,EAAMib,aAAejb,EAAMuZ,KAAKjX,EAAQ,GAAG2E,GAClC3E,EAAQ,EACjBtC,EAAMib,aAAejb,EAAMuZ,KAAKjX,EAAQ,GAAG2E,IAE3CjH,EAAMib,aAAe,KACrBjb,EAAMgb,WAAa,KACnBhb,EAAMkb,kBAAoB,IAG9Blb,EAAMuZ,KAAKpkB,OAAOmN,EAAO,IAE3BoZ,gBA7Ca,SA6CI1b,EAAOiH,GACtBjH,EAAMib,aAAehU,GAEvB0U,cAhDa,SAgDE3b,EAAOwZ,GACpBxZ,EAAMgb,WAAaxB,GAErBoC,0BAnDa,SAmDc5b,EAAO6b,GAChC7b,EAAMmb,oBAAsBW,MAAMC,QAAQF,GAAaA,EAAY,CAACA,M,aCpDzD,IACPG,OADO,WACYvoB,GAAM,4JAAfuM,EAAe,EAAfA,MACRwZ,EAAM/lB,EAAOwoB,KAAKlS,MAAMkS,KAAKC,UAAUzoB,IAAS,GAIjDA,GAASA,EAAKwT,GAUjBuS,EAAIG,SAAU,GATdH,EAAIvS,GAAKkV,kBACT3C,EAAIhiB,KAAO,KACXgiB,EAAII,SAAW5Z,EAAMkb,kBAAN,mBACClb,EAAMkb,mBAClB,WACJ1B,EAAIQ,SAAW,QACfR,EAAIO,iBAAcriB,EAClB8hB,EAAIG,SAAU,GAMX3Z,EAAMuZ,KAAK6C,MAAK,SAAAC,GAAS,OAAIA,EAAUpV,KAAOuS,EAAIvS,QACrDjH,EAAMuZ,KAAKhlB,KAAKilB,GACXA,EAAIhiB,OACPwI,EAAMkb,mBAAqB,IAtBF,kBA0BtB1B,EAAIvS,IA1BkB,+CCGjCsU,aAAIe,IAAIC,SAEO,WAAIA,QAAKC,MAAM,CAC5Bxc,SACAyc,aACAC,aCNK,SAASC,GAAUC,EAAItI,GAC5B,IAAMuI,EAAQD,EAAGE,WAAWF,EAAGG,aAAaC,OAAOC,cAC7CnoB,EAASooB,KAAGra,KAAK4C,IAAImX,EAAItI,GAM/B,OAH2B,IAAvBxf,EAAOqoB,KAAKlpB,QAAgBa,EAAOqoB,KAAK,GAAGC,KAAKH,gBAAkBJ,IACpE/nB,EAAOqoB,KAAO,IAETroB,EAGT,IAAMuoB,GAAc,CAClB,aACE,IAAMC,EAAS,GAMf,OALIC,GAAMvd,MAAMC,GAAGZ,QACjBke,GAAMvd,MAAMC,GAAGZ,OAAO8G,SAAQ,SAAAvG,GAC5B0d,EAAO1d,EAAMpI,MAAQoI,EAAMC,QAAQ6E,KAAI,SAAAG,GAAM,OAAIA,EAAOrN,WAGrD8lB,GAET,mBACE,IAAMje,EAASke,GAAMvd,MAAMC,GAAGZ,OAC9B,OAAOA,GAA4B,IAAlBA,EAAOpL,OAAeoL,EAAO,GAAG7H,KAAO,MAE1DgmB,gBAAgB,EAChBC,uBAAuB,EACvBC,eAAe,GAGV,SAASC,GAAkBC,GAChCV,KAAGW,SAASD,EAAQjB,GAAUU,IAGjB,SAASQ,GAAUD,GAEhC,IAAMf,EAAQe,EAAOd,WAAWc,EAAOb,aACjCe,EAAKjB,EAAMG,OAAOrjB,OAAO,GACzBokB,EAAYlB,EAAMzlB,KACN,WAAd2mB,GAA2BD,GAAa,MAAPA,GAAqB,MAAPA,GAInDZ,KAAGW,SAASD,EAAQjB,GAAUU,I,iBChD5B,I,kDAAS,WAAa,IAAIzjB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACK,YAAY,iBAAiB,CAACL,EAAG,cAAc,CAACE,MAAM,CAAC,OAAuB,cAAdN,EAAIokB,MAAsB,QAAU,6BAA6B,mBAAmB,YAAY/R,SAAS,CAAC,MAAQ,SAASxQ,GAAQ,OAAO7B,EAAIsJ,MAAM,WAAY,gBAAgB,CAAClJ,EAAG,oBAAoB,GAAGA,EAAG,cAAc,CAACE,MAAM,CAAC,OAAuB,UAAdN,EAAIokB,MAAkB,QAAU,6BAA6B,mBAAmB,YAAY/R,SAAS,CAAC,MAAQ,SAASxQ,GAAQ,OAAO7B,EAAIsJ,MAAM,WAAY,YAAY,CAAClJ,EAAG,eAAe,GAAGA,EAAG,cAAc,CAACE,MAAM,CAAC,OAAuB,aAAdN,EAAIokB,MAAqB,QAAU,4BAA4B,mBAAmB,YAAY/R,SAAS,CAAC,MAAQ,SAASxQ,GAAQ,OAAO7B,EAAIsJ,MAAM,WAAY,eAAe,CAAClJ,EAAG,mBAAmB,GAAIJ,EAAIqkB,OAAc,QAAEjkB,EAAG,MAAM,CAACK,YAAY,0BAA0BT,EAAI+B,KAAK/B,EAAIuB,GAAG,YAAY,KAC35B,GAAkB,GCDlB,GAAS,WAAa,IAAIvB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACa,MAAM,CAAC,WAAY,CAAEqjB,OAAQtkB,EAAIskB,QAAU,CAAEvb,SAAU/I,EAAI+I,WAAYvH,GAAG,CAAC,MAAQxB,EAAIwJ,QAAQ,WAAa,SAAS3H,GAAQ,OAAO7B,EAAIyJ,YAAY5H,EAAQ7B,EAAIgK,kBAAkB,WAAahK,EAAI0J,cAAc,CAACtJ,EAAG,MAAM,CAACK,YAAY,QAAQ,CAACT,EAAIuB,GAAG,YAAY,GAAGnB,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAW,QAAEqF,WAAW,YAAY5E,YAAY,oBAAoB,CAACL,EAAG,sBAAsB,GAAIJ,EAAW,QAAEI,EAAG,OAAO,CAACY,IAAI,UAAUP,YAAY,eAAeW,MAAOpB,EAAgB,cAAG,CAACA,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG3F,EAAI+J,SAAS,OAAO/J,EAAI+B,QAChpB,GAAkB,GCoBtB,IACEnE,KAAM,gBACN2F,MAAO,CAAC,SAAU,WAAY,UAAW,kBAAmB,WAC5DsF,WAAY,CAAd,qBACEuB,OAAQ,CAACC,GACTlG,QAAS,CACPqF,QADJ,WAEMvJ,KAAKyJ,cACLzJ,KAAKqJ,MAAM,YC7BmU,MCQhV,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAItJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,SAAS,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,qQAAqQ,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,oFAAoF,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,oFAAoF,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,mDAAmD,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,mDAAmD,KAAO,gBACnmC,GAAkB,GCgBtB,IACE1C,KAAM,aClBsV,MCO1V,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIoC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,SAAS,CAACF,EAAG,IAAI,CAACE,MAAM,CAAC,YAAY,gBAAgB,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,4HAA4H,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,g4EAAg4E,KAAO,eAAeF,EAAG,OAAO,CAACA,EAAG,WAAW,CAACE,MAAM,CAAC,GAAK,UAAU,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,KAAO,QAAQ,UAAY,mCACt6F,GAAkB,GCoBtB,IACE1C,KAAM,iBCtB0V,MCO9V,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIoC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,SAAS,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,+gBAA+gB,KAAO,aAAaF,EAAG,SAAS,CAACE,MAAM,CAAC,GAAK,UAAU,GAAK,UAAU,EAAI,MAAM,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,sVAAsV,KAAO,gBACnwC,GAAkB,GCctB,IACE1C,KAAM,gBChByV,MCO7V,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCuBf,IACEA,KAAM,cACN2F,MAAO,CAAC,SACRsF,WAAY,CACV0b,WAAJ,GACIC,cAAJ,GACIC,aAAJ,GACIC,UAAJ,KChDiZ,MCQ7Y,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI1kB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,SAAS,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,uEAAuE,KAAO,gBACnR,GAAkB,GCYtB,IACE1C,KAAM,WCdoV,MCOxV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCmBf,IACEA,KAAM,YACN2F,MAAO,CAAC,QAAS,oBACjBsF,WAAY,CACV8b,WAAJ,iBACIC,YAAJ,GACIL,WAAJ,GACIM,QAAJ,IAEEhrB,KATF,WAUI,MAAO,CACLqmB,MAAOjgB,KAAKnB,MACZmiB,UAAW,CACT6D,QAAS,EACT9lB,KAAM,eACNmc,MAAO,MACP4J,aAAa,EACbC,MAAM,EACNC,aAAa,EACbC,UAAW,CAAnB,oBAIEvhB,SAAU,CACRwd,YADJ,WAEM,OAAN,2DAGExG,MAAO,CACLuF,MADJ,WAEMjgB,KAAKqJ,MAAM,QAASrJ,KAAKigB,SAG7B/b,QAAS,CACP+c,SAAUpF,GAAK6B,SAASsG,GAAU,KAClChJ,MAFJ,WAGMhb,KAAK+E,MAAMge,GAAG2B,WAAW1J,WCzE2X,MCQtZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIjb,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACK,YAAY,mBAAmB,CAACL,EAAG,MAAM,CAACK,YAAY,2BAA2B,CAACL,EAAGJ,EAAIhB,KAAK,CAACgC,IAAI,gBAAgBmkB,IAAI,YAAY7kB,MAAM,CAAC,eAAeN,EAAIhB,OAASgB,EAAIolB,SAAWplB,EAAIqlB,iBAAcvnB,EAAU,eAAekC,EAAIslB,WAAW,wBAAwBtlB,EAAIulB,oBAAoB/jB,GAAG,CAAC,4BAA4B,SAASK,GAAQ7B,EAAIulB,mBAAmB1jB,GAAQ,+BAA+B,SAASA,GAAQ7B,EAAIulB,mBAAmB1jB,GAAQ,sBAAwB,SAASA,GAAQ7B,EAAIwlB,cAAe,GAAO,OAAS,SAAS3jB,GAAQ,OAAO7B,EAAIsJ,MAAM,eAAe,GAAGlJ,EAAG,gBAAgB,CAACE,MAAM,CAAC,MAAQ,YAAYkB,GAAG,CAAC,SAAW,SAASK,GAAQ,OAAO7B,EAAIsJ,MAAM,WAAYzH,MAAW,CAACzB,EAAG,cAAc,CAACE,MAAM,CAAC,OAAsB,UAAbN,EAAIhB,KAAiB,QAAU,kBAAkB,mBAAmB,YAAYwC,GAAG,CAAC,MAAQ,SAASK,GAAQ7B,EAAIhB,KAAO,WAAW,CAACoB,EAAG,eAAe,GAAGA,EAAG,cAAc,CAACE,MAAM,CAAC,OAAsB,UAAbN,EAAIhB,KAAiB,QAAU,kBAAkB,mBAAmB,YAAYwC,GAAG,CAAC,MAAQ,SAASK,GAAQ7B,EAAIhB,KAAO,WAAW,CAACoB,EAAG,eAAe,GAAGA,EAAG,MAAM,CAACK,YAAY,0BAA0BL,EAAG,cAAc,CAACE,MAAM,CAAC,UAAYN,EAAIulB,oBAAsBvlB,EAAIwlB,aAAa,QAAUxlB,EAAIwlB,aAAa,QAAU,oBAAoB,mBAAmB,YAAYhkB,GAAG,CAAC,MAAQxB,EAAIylB,YAAY,CAACrlB,EAAG,aAAa,IAAI,IAAI,IAC/5C,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAW,QAAEqF,WAAW,YAAYrE,IAAI,iBAAiBP,YAAY,mBAAmB,CAACL,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,OAAQkB,EAAI0lB,aAAe1lB,EAAI2lB,QAAStgB,WAAW,4BAA4B5E,YAAY,yBAAyB,CAACT,EAAI0F,GAAG,oGAAoGtF,EAAG,eAAe,CAACY,IAAI,eAAeP,YAAY,QAAQW,MAAM,CAAGwkB,OAAS5lB,EAAI0lB,YAAoC,OAAtB,qBAAgCplB,MAAM,CAAC,KAAON,EAAIoG,MAAMvM,KAAK,OAASmG,EAAIoG,MAAMua,OAAO,OAAS3gB,EAAIoG,MAAMyf,OAAO,OAAS,CAAEC,UAAU,EAAMC,aAAa,EAAOC,uBAAwB,CAAC,YAAa,YAAchmB,EAAI0lB,YAAY,kBAAoB1lB,EAAIimB,kBAAkB,OAASjmB,EAAIkmB,OAAO,kBAAmB,EAAK,OAAQ,EAAK,2BAA4B,GAAM1kB,GAAG,CAAC,SAAWxB,EAAImmB,OAAO,SAAWnmB,EAAIomB,aAAa,IACjgC,GAAkB,G,oFCCf,SAASC,GAA2BX,GACzC,OAAKA,EAIEprB,OAAOuQ,KAAK6a,GAAa5a,KAAI,SAAAlN,GAAI,MAAK,CAC3CkB,MAAOlB,EACPoL,MAAOpL,MALA,GASJ,SAAS0oB,GAAmBlgB,EAAOsf,GAGxC,IAAMa,EAAYlE,KAAKlS,MAAMkS,KAAKC,UAAUlc,IACtCogB,EAAe,GACrB,IAAK,IAAMpnB,KAAOsmB,EAChBc,EAAapnB,GAAO,GAGtB,OADAqnB,KAAYF,EAAU1sB,KAAM2sB,GACrBD,EAGM,QACbF,6BACAC,sBCOF,IACE1oB,KAAM,QACN2F,MAAO,CAAC,cAAe,cAAe,sBACtCsF,WAAY,CACV6d,aAAJ,MAEE7sB,KANF,WAOI,MAAO,CACLqsB,OAAQ,GAAd,EACM9f,MAAOnG,KAAKolB,aAAe,CACzBxrB,KAAM,GACN8mB,OAAQ,GACRkF,OAAQ,IAEVF,SAAS,EACTtJ,eAAgB,OAGpB1Y,SAAU,CACRsiB,kBADJ,WAEM,OAAOU,GAAYN,0BAA0BpmB,KAAKylB,eAGtD3gB,QAvBF,WAwBI9E,KAAKoc,eAAiB,IAAIK,eAAezc,KAAK2mB,cAC9C3mB,KAAKoc,eAAeM,QAAQ1c,KAAK+E,MAAM6hB,iBAEzCjK,cA3BF,WA4BI3c,KAAKoc,eAAeQ,UAAU5c,KAAK+E,MAAM6hB,iBAE3ClM,MAAO,CACL+K,YADJ,WAIM,KAAN,oCAGEvhB,QAAS,CACPyiB,aADJ,WACA,WACM3mB,KAAK0lB,SAAU,EACf1lB,KAAKuc,WAAU,WACb,EAAR,eAGI4J,SAPJ,SAOA,SAGID,OAVJ,SAUA,OACMlmB,KAAKmG,MAAQ,CAAnB,0BACMnG,KAAKqJ,MAAM,WAEbgd,kBAdJ,WAeM,OAAOK,GAAYL,kBAAkBrmB,KAAKmG,MAAOnG,KAAKylB,cAExD,UAjBJ,WAiBA,uKACA,4DADA,SAEA,sDAFA,OAEA,EAFA,OAGA,iCACA,6BAJA,gDCxFya,MCQra,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI1lB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACK,YAAY,mBAAmB,CAACL,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,OAAQkB,EAAI0lB,YAAargB,WAAW,iBAAiB5E,YAAY,yBAAyB,CAACT,EAAI0F,GAAG,oGAAoGtF,EAAG,WAAW,CAACE,MAAM,CAAC,YAAYN,EAAIiG,SAASzE,GAAG,CAAC,OAAS,SAASK,GAAQ,OAAO7B,EAAIsJ,MAAM,WAAW,iCAAmC,SAASzH,GAAQ,OAAO7B,EAAIsJ,MAAM,2BAA2BrE,MAAM,CAACnG,MAAOkB,EAAgB,aAAEkF,SAAS,SAAUC,GAAMnF,EAAI8mB,aAAa3hB,GAAKE,WAAW,kBAAkBjF,EAAG,MAAM,CAACY,IAAI,cAAcP,YAAY,kBAAkB,IAC/uB,GAAkB,G,gDCDlB,I,oBAAS,WAAa,IAAIT,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACK,YAAY,YAAY,CAACL,EAAG,MAAM,CAACa,MAAM,CAAC8lB,UAAW/mB,EAAI+mB,YAAY,CAAC3mB,EAAG,MAAM,CAACK,YAAY,OAAO,CAACL,EAAG,QAAQ,CAACJ,EAAI0F,GAAG,aAAatF,EAAG,cAAc,CAACK,YAAY,wBAAwBH,MAAM,CAAC,QAAUN,EAAIgnB,aAAa,SAAuC,IAA5BhnB,EAAIgnB,aAAa3sB,OAAa,UAAW,EAAK,cAAe,EAAK,mBAAkB,EAAK,eAAc,EAAM,IAAM2F,EAAIgnB,aAAa3sB,OAAO,iBAAiB,SAAS,YAAc,IAAI4K,MAAM,CAACnG,MAAOkB,EAAQ,KAAEkF,SAAS,SAAUC,GAAMnF,EAAIinB,KAAK9hB,GAAKE,WAAW,SAAS,CAACjF,EAAG,WAAW,CAAC8mB,KAAK,eAAe,CAAC9mB,EAAG,OAAO,CAACK,YAAY,cAAc,CAACT,EAAI0F,GAAG,kBAAkBtF,EAAG,WAAW,CAAC8mB,KAAK,eAAe,CAAClnB,EAAI0F,GAAG,oBAAoBtF,EAAG,WAAW,CAAC8mB,KAAK,YAAY,CAAC9mB,EAAG,OAAO,CAACK,YAAY,cAAc,CAACT,EAAI0F,GAAG,mBAAmB,GAAGtF,EAAG,iBAAiB,CAACK,YAAY,WAAWH,MAAM,CAAC,UAAY,OAAO2E,MAAM,CAACnG,MAAOkB,EAAY,SAAEkF,SAAS,SAAUC,GAAMnF,EAAImnB,SAAShiB,GAAKE,WAAW,eAAe,GAAGjF,EAAG,MAAM,CAACK,YAAY,OAAO,CAACL,EAAG,QAAQ,CAACJ,EAAI0F,GAAG,UAAUtF,EAAG,cAAc,CAACK,YAAY,wBAAwBH,MAAM,CAAC,QAAUN,EAAIonB,aAAa,SAAuC,IAA5BpnB,EAAIonB,aAAa/sB,OAAa,UAAW,EAAK,cAAe,EAAK,mBAAkB,EAAK,eAAc,EAAM,IAAM2F,EAAIonB,aAAa/sB,OAAO,gBAAgB,GAAG,iBAAiB,SAAS,YAAc,IAAI4K,MAAM,CAACnG,MAAOkB,EAAQ,KAAEkF,SAAS,SAAUC,GAAMnF,EAAIqnB,KAAKliB,GAAKE,WAAW,SAAS,CAACjF,EAAG,WAAW,CAAC8mB,KAAK,eAAe,CAAC9mB,EAAG,OAAO,CAACK,YAAY,cAAc,CAACT,EAAI0F,GAAG,kBAAkBtF,EAAG,WAAW,CAAC8mB,KAAK,eAAe,CAAClnB,EAAI0F,GAAG,iBAAiBtF,EAAG,WAAW,CAAC8mB,KAAK,YAAY,CAAC9mB,EAAG,OAAO,CAACK,YAAY,cAAc,CAACT,EAAI0F,GAAG,mBAAmB,GAAGtF,EAAG,iBAAiB,CAACK,YAAY,WAAWH,MAAM,CAAC,UAAY,OAAO2E,MAAM,CAACnG,MAAOkB,EAAY,SAAEkF,SAAS,SAAUC,GAAMnF,EAAIsnB,SAASniB,GAAKE,WAAW,eAAe,GAAGjF,EAAG,MAAM,CAACK,YAAY,kBAAkB,CAACL,EAAG,QAAQ,CAACJ,EAAI0F,GAAG,gBAAgBtF,EAAG,cAAc,CAACK,YAAY,oCAAoCH,MAAM,CAAC,QAAUN,EAAIunB,YAAY,MAAQ,OAAO,WAAW,OAAO,mBAAkB,EAAK,eAAc,EAAM,cAAe,EAAK,gBAAgB,GAAG,iBAAiB,SAAS,YAAc,qBAAqBtiB,MAAM,CAACnG,MAAOkB,EAAc,WAAEkF,SAAS,SAAUC,GAAMnF,EAAIwnB,WAAWriB,GAAKE,WAAW,eAAe,CAACjF,EAAG,WAAW,CAAC8mB,KAAK,YAAY,CAAC9mB,EAAG,OAAO,CAACK,YAAY,cAAc,CAACT,EAAI0F,GAAG,mBAAmB,GAAGtF,EAAG,cAAc,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAIynB,SAAW,EAAGpiB,WAAW,iBAAiB5E,YAAY,4BAA4BH,MAAM,CAAC,QAAUN,EAAI0nB,SAAS,SAAmC,IAAxB1nB,EAAI0nB,SAASrtB,OAAa,mBAAkB,EAAK,eAAc,EAAM,cAAe,EAAK,gBAAgB,GAAG,iBAAiB,SAAS,YAAc,sBAAsB4K,MAAM,CAACnG,MAAOkB,EAAQ,KAAEkF,SAAS,SAAUC,GAAMnF,EAAI2nB,KAAKxiB,GAAKE,WAAW,UAAUjF,EAAG,cAAc,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAIynB,SAAW,EAAGpiB,WAAW,iBAAiB5E,YAAY,4BAA4BH,MAAM,CAAC,QAAUN,EAAI0nB,SAAS,SAAmC,IAAxB1nB,EAAI0nB,SAASrtB,OAAa,mBAAkB,EAAK,eAAc,EAAM,cAAe,EAAK,gBAAgB,GAAG,iBAAiB,SAAS,YAAc,4BAA4B4K,MAAM,CAACnG,MAAOkB,EAAQ,KAAEkF,SAAS,SAAUC,GAAMnF,EAAI4nB,KAAKziB,GAAKE,WAAW,WAAW,GAAGjF,EAAG,MAAM,CAACK,YAAY,OAAO,CAACL,EAAG,QAAQ,CAACJ,EAAI0F,GAAG,UAAUtF,EAAG,cAAc,CAACK,YAAY,kCAAkCH,MAAM,CAAC,QAAUN,EAAI6nB,UAAU,MAAQ,OAAO,WAAW,OAAO,mBAAkB,EAAK,eAAc,EAAM,eAAc,EAAM,cAAe,EAAK,gBAAgB,GAAG,iBAAiB,SAAS,YAAc,iBAAiB5iB,MAAM,CAACnG,MAAOkB,EAAY,SAAEkF,SAAS,SAAUC,GAAMnF,EAAI8nB,SAAS3iB,GAAKE,WAAW,aAAa,CAACjF,EAAG,WAAW,CAAC8mB,KAAK,YAAY,CAAC9mB,EAAG,OAAO,CAACK,YAAY,cAAc,CAACT,EAAI0F,GAAG,mBAAmB,IAAI,KAAKtF,EAAG,OAAO,CAACK,YAAY,WAAWe,GAAG,CAAC,MAAQ,SAASK,GAAQ7B,EAAI+mB,WAAa/mB,EAAI+mB,aAAa,CAAC/mB,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG3F,EAAI+mB,UAAY,sBAAwB,uBAAuB,WAC3/H,GAAkB,G,oCCDlB,GAAS,WAAa,IAAI/mB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACa,MAAM,CAAC,iBAAkBjB,EAAI+nB,WAAWvmB,GAAG,CAAC,MAAQxB,EAAIgoB,gBAAgB,CAAChoB,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG3F,EAAIlB,MAAM0H,SAAS,OAAS,MAAQ,SAAS,KAAKpG,EAAG,YAAY,CAACK,YAAY,YAAYH,MAAM,CAAC,WAA+B,QAAlBN,EAAI+nB,UAAoB,IAAM/nB,EAAIlB,MAAM0H,SAAS,cAAc,IAC9W,GAAkB,GCDlB,GAAS,WAAa,IAAIxG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACa,MAAM,CAAC,YAAa,CAAEC,WAAYlB,EAAIkB,YAAc,CAAE+mB,IAAKjoB,EAAIioB,MAAO3nB,MAAM,CAAC,MAAQ,IAAI,OAAS,KAAK,QAAU,WAAW,KAAO,SAAS,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,yPAAyP,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,qZAAqZ,KAAO,gBACx8B,GAAkB,GCctB,IACE1C,KAAM,WACN2F,MAAO,CACLrC,WAAY,CACV1D,KAAMmL,QACNC,UAAU,EACVmJ,SAAS,GAEXkW,IAAK,CACHzqB,KAAMmL,QACNC,UAAU,EACVmJ,SAAS,KC1B8U,MCQzV,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCLf,IACEnU,KAAM,eACN2F,MAAO,CAAC,YAAa,SACrBsF,WAAY,CACVqf,SAAJ,IAEE/jB,QAAS,CACP6jB,cADJ,WAEyB,eAAf/nB,KAAKnB,MACPmB,KAAKqJ,MAAM,QAAS,gBAC5B,4BACQrJ,KAAKqJ,MAAM,QAAS,gBAEpBrJ,KAAKqJ,MAAM,QAAS,iBC3Bma,MCQ3b,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCdF6e,I,oBAAqB,CAChC,QACA,6BACA,4BACA,iCAGWC,GAAoB,CAC/B,eACA,kBACA,mBAGK,SAASC,GAAiBC,GAC/B,IAAMC,EAAUD,EAAUE,aACpBC,EAAUH,EAAUI,aAEpBhD,EAAc,CAClB,cAAe+C,EAAQ3d,KAAI,SAAA6d,GAAM,OAAIA,EAAOld,KAAK,QACjD,WAAY8c,EAAQzd,KAAI,SAAA8d,GAAM,OAAIA,EAAOnd,KAAK,SAG1Cod,EAAoB,GACpBC,EAAoB,GAEpBC,EAAWT,EAAUS,SAAStd,KAAK,KACnCud,EAAWV,EAAUU,SAASvd,KAAK,KAgBzC,OAdAgd,EAAQlc,SAAQ,SAAAoc,GACd,IAAMM,EAAeD,EAAW,IAAML,EAAOld,KAAK,KAClDqd,EAAkBG,GAAgB,GAClCV,EAAQhc,SAAQ,SAAAqc,GACd,IAAM9pB,EAAQwpB,EAAUY,cAAcN,EAAQD,GAAQ7pB,QACtDgqB,EAAkBG,GAActuB,KAAKmE,GACrC,IAAMqqB,EAAeJ,EAAW,IAAMH,EAAOnd,KAAK,KAC7Cod,EAAkBM,KACrBN,EAAkBM,GAAgB,IAEpCN,EAAkBM,GAAcxuB,KAAKmE,SAIlCxE,OAAOqP,OAAO+b,EAAaoD,EAAmBD,GAGvD,SAASO,GAAqBvvB,EAAM6gB,GAIlC,OAHAA,EAAQ2O,qBAAqB3D,YAAc2C,GAAgBxuB,GAC3D6gB,EAAQ2O,qBAAqBC,SAEtBC,KAAE7O,EAAQ2O,qBAAqBG,KAGxCD,KAAEE,OACAF,KAAEG,eAAe7B,UACjB0B,KAAEG,eAAeC,iBACjBJ,KAAEG,eAAeE,iBACjB,CAAE,eAAgBR,KAGb,IAAMvB,GAAYvtB,OAAOuQ,KAAK0e,KAAEG,eAAe7B,WAAW/c,KAAI,SAAA1L,GACnE,MAAO,CACLxB,KAAMwB,EACNyqB,IAAKN,KAAEG,eAAe7B,UAAUzoB,OAIvBmoB,GAAcjtB,OAAOuQ,KAAK0e,KAAEG,eAAenC,aAAazc,KAAI,SAAA1L,GACvE,MAAO,CACLxB,KAAMwB,EACNyqB,IAAKN,KAAEG,eAAenC,YAAYnoB,OCsEtC,2BAEA,IACExB,KAAM,UACN2F,MAAO,CAAC,WAAY,SACpBsF,WAAY,CACVihB,YAAJ,KACIC,aAAJ,IAEElwB,KAPF,WAQI,IAAJ,iDACA,+CACI,MAAO,CACLktB,WAAW,EACXe,SAAU,CAAhB,6CACMN,WAAY,CAAlB,+CACMH,KAAM,KAAZ,2BACMJ,KAAM,KAAZ,2BACMU,KAAM,KAAZ,+CACMC,KAAM,KAAZ,+CACMT,SAAU,KAAhB,yCACMG,SAAU,KAAhB,yCACM+B,qBACN,yFACA,SAGE1lB,SAAU,CACR8jB,SADJ,WAEM,OAAIU,GAAmB3hB,SAASvG,KAAKunB,WAAW5pB,MACvC,EAGLwqB,GAAkB5hB,SAASvG,KAAKunB,WAAW5pB,MACtC,EAGF,GAETiqB,UAZJ,WAaM,OAAO,IAETN,YAfJ,WAgBM,OAAO,IAETH,aAlBJ,WAkBA,WACM,OAAOnnB,KAAKynB,SAAStiB,QAAO,SAAlC,iCAEI4hB,aArBJ,WAqBA,WACM,OAAO/mB,KAAKynB,SAAStiB,QAAO,SAAlC,kCAGEuV,MAAO,CACLmN,SADJ,WAEM7nB,KAAK+pB,eAEPxC,WAJJ,WAKMvnB,KAAK+pB,eAEP3C,KAPJ,WAQMpnB,KAAK+pB,eAEP/C,KAVJ,WAWMhnB,KAAK+pB,eAEPrC,KAbJ,WAcM1nB,KAAK+pB,eAEPpC,KAhBJ,WAiBM3nB,KAAK+pB,eAEP7C,SAnBJ,WAoBMlnB,KAAK+pB,eAEP1C,SAtBJ,WAuBMrnB,KAAK+pB,gBAGTpP,QA5EF,WA4EA,WACI3a,KAAKopB,qBAAqBY,IAAI,UAAU,WAA5C,qBACIhqB,KAAKopB,qBAAqBY,IAAI,yBAAyB,SAA3D,mDAEE9lB,QAAS,CACP6lB,YADJ,WAGM,IADA,IAAN,KACA,yBACQE,EAAKvvB,KAAKsF,KAAK,MAAvB,YAEMA,KAAKqJ,MAAM,UACXrJ,KAAKqJ,MAAM,QAAS,CAClB+d,KAAMpnB,KAAKonB,KACXJ,KAAMhnB,KAAKgnB,KACXE,SAAUlnB,KAAKknB,SACfG,SAAUrnB,KAAKqnB,SACfE,WAAYvnB,KAAKunB,WAAWqC,IAAIK,GAChCC,eAAgBlqB,KAAKunB,WAAW5pB,KAChCkqB,SAAU7nB,KAAK6nB,SAAS+B,IACxBO,aAAcnqB,KAAK6nB,SAASlqB,KAC5BysB,gBAAwC,iBAAvBpqB,KAAK6nB,SAASlqB,UAA0BE,EAAY,CACnEurB,qBAAsBppB,KAAKopB,sBAE7Ba,KAAR,OCrPwb,MCQpb,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCMf,2BAEA,IACEtsB,KAAM,QACN2F,MAAO,CAAC,cAAe,cAAe,sBACtCsF,WAAY,CACVyhB,QAAJ,IAEEzwB,KANF,WAOI,MAAO,CACLwiB,eAAgB,KAChByK,aAAe7mB,KAAKolB,YAa1B,CACQ,KAAR,sBACQ,KAAR,sBACQ,SAAR,0BACQ,SAAR,0BACQ,eAAR,gCACQ,WAAR,wFACQ,KAAR,sBACQ,aAAR,8BACQ,SAAR,6DACQ,gBAAR,kCACU,qBAAV,QACY,UAAZ,CAAc,YAAd,6DAFA,GAtBA,CACQ,KAAR,GACQ,KAAR,GACQ,SAAR,aACQ,SAAR,aACQ,eAAR,QACQ,WAAR,wCACQ,KAAR,GACQ,aAAR,QACQ,SAAR,oCACQ,qBAAR,KAoBE1hB,SAAU,CACRsC,QADJ,WAEM,OAAO3L,OAAOuQ,KAAK5K,KAAKylB,aAAe,MAG3C/K,MAAO,CACL+K,YADJ,WAEMzlB,KAAK2e,QAEP,4BAA6B,CAC3B2L,WAAW,EACXC,QAFN,WAGQvqB,KAAKqJ,MAAM,4BAAgE,eAAnCrJ,KAAK6mB,aAAasD,gBAG9DtD,aAVJ,WAWM7mB,KAAK2e,SAGT7Z,QA3DF,WA4DI9E,KAAK2e,OAGL3e,KAAKoc,eAAiB,IAAIK,eAAezc,KAAK2mB,cAC9C3mB,KAAKoc,eAAeM,QAAQ1c,KAAK+E,MAAMylB,cAEzC7N,cAlEF,WAmEI3c,KAAKoc,eAAeQ,UAAU5c,KAAK+E,MAAMylB,cAE3CtmB,QAAS,CACPyiB,aADJ,WAIU3mB,KAAK6mB,aAAasD,gBAAgB,GAA5C,mCACQvqB,OAAOyN,cAAc,IAAIod,MAAM,YAInC9L,KATJ,WAUM,IAAN,uCACU3e,KAAK6mB,aAAasD,gBAAgB,GAA5C,oCACQ1P,EAAQ2P,gBAAkB,CACxBnE,OAAQ,CACNyE,UAAU,EACVxhB,MAAO,KACPyc,OAAQ,MAEVgF,aAAc,CACZ7E,aAAa,EACb8E,YAAY,EACZ7E,uBAAwB,CAAC,cAK/B,KAAN,8BACA,YAEQ,IAFA,IAAR,OACA,8DADA,WAEA,GACU,IAAV,KACU,EAAV,6BACY,EAAZ,4BAEU,EAAV,IALA,aAAU,EAAV,IAOA,WACA,GAIU/lB,KAAK6mB,aAAasD,gBAAgB,GAA5C,mCACQvqB,OAAOyN,cAAc,IAAIod,MAAM,YAInCpE,kBA9CJ,WA+CM,IAAN,uCACM,GAAI5L,EAAQ2P,gBAAiB,CAC3B,IAAR,yDACQ3P,EAAQ2P,gBAAkB,CACxBS,mBAAoBC,EAAezE,qBAIvC,OAAO5L,GAGT,UA1DJ,WA0DA,uKACA,6CADA,gBAEA,gEAFA,4BAGA,qEAHA,wBAIA,uDAJA,SAKA,gBACA,aACA,WACA,cARA,OAKA,EALA,OAUA,iCACA,6BAXA,+BAaA,iDAbA,UAcA,QAdA,QAcA,EAdA,OAeA,iCACA,gEAhBA,iDC1Jya,MCQra,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI1a,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,SAAS,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,qCAAqC,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,6CAA6C,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,oCAAoC,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,oCAAoC,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,qCAAqC,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,mJAAmJ,KAAO,gBACx/B,GAAkB,GCiBtB,IACE1C,KAAM,aCnBsV,MCO1V,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIoC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,SAAS,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,YAAY,UAAU,YAAY,UAAU,EAAI,iVAAiV,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,kCAAkC,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,qCAAqC,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,oCAAoC,KAAO,gBAClzB,GAAkB,GCetB,IACE1C,KAAM,aCjBsV,MCO1V,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIoC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,SAAS,CAACF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,iYAAiY,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,gmCAAgmC,KAAO,aAAaF,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,oDAAoD,KAAO,gBACrzD,GAAkB,GCatB,IACE1C,KAAM,WCfoV,MCOxV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCqCf,IACEA,KAAM,WACN2F,MAAO,CAAC,aAAc,cAAe,YACrCsF,WAAY,CACVmiB,MAAJ,GACIC,MAAJ,GACIrG,YAAJ,GACIL,WAAJ,GACI2G,UAAJ,GACIC,UAAJ,GACIC,QAAJ,IAEEvxB,KAZF,WAaI,MAAO,CACLmF,KAAMiB,KAAKmlB,UAAY,QACvBG,oBAAoB,EACpBC,cAAc,IAGlB7K,MAAO,CACL3b,KADJ,WAEMiB,KAAKqJ,MAAM,UACXrJ,KAAKslB,oBAAqB,IAG9BphB,QAAS,CACP,UADJ,WACA,wJACA,kBASA,uBACA,oCACA,GAZA,8CAcImiB,kBAfJ,WAgBM,OAAOrmB,KAAK+E,MAAMqmB,cAAc/E,uBChGoX,MCQtZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAItmB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACY,IAAI,iBAAiBP,YAAY,oBAAoB,CAACL,EAAG,MAAM,CAACK,YAAY,4BAA4B,CAACL,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAsB,OAAfkB,EAAI9E,SAAoB8E,EAAI4gB,mBAAqB5gB,EAAIhD,MAAOqI,WAAW,mDAAmD5E,YAAY,+BAA+B,CAACT,EAAI0F,GAAG,2CAA4C1F,EAAoB,iBAAEI,EAAG,MAAM,CAACK,YAAY,oCAAoC,CAACL,EAAG,oBAAoB,CAACE,MAAM,CAAC,KAAO,MAAMN,EAAI0F,GAAG,0BAA0B,GAAG1F,EAAI+B,KAAK3B,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,WAAsBhB,IAAfkC,EAAI9E,SAAyB8E,EAAI4gB,mBAAqB5gB,EAAIhD,MAAOqI,WAAW,wDAAwD5E,YAAY,8BAA8B,CAACT,EAAI0F,GAAG,iDAAkD1F,EAAS,MAAEI,EAAG,OAAO,CAACE,MAAM,CAAC,SAAW,CAACN,EAAIhD,UAAUgD,EAAI+B,KAAM/B,EAAU,OAAEI,EAAG,YAAY,CAACK,YAAY,WAAWH,MAAM,CAAC,WAAWN,EAAI9E,OAAO,KAAO8E,EAAI8b,KAAK,SAAW9b,EAAImc,YAAYnc,EAAI+B,MAAM,GAAG3B,EAAG,gBAAgB,CAACE,MAAM,CAAC,MAAQ,SAASkB,GAAG,CAAC,SAAW,SAASK,GAAQ,OAAO7B,EAAIsJ,MAAM,WAAYzH,QAAa,IAC/uC,GAAkB,GCqCtB,IACEjE,KAAM,YACN2F,MAAO,CAAC,SAAU,mBAAoB,QAAS,QAC/C1J,KAHF,WAII,MAAO,CACLwiB,eAAgB,KAChBF,SAAU,KAGdtT,WAAY,CACVsV,SAAJ,GACImN,iBAAJ,GACIlN,KAAJ,GACIwG,YAAJ,IAEE7f,QAfF,WAgBI9E,KAAKoc,eAAiB,IAAIK,eAAezc,KAAK2mB,cAC9C3mB,KAAKoc,eAAeM,QAAQ1c,KAAK+E,MAAMumB,gBACvCtrB,KAAKurB,qBAEP5O,cApBF,WAqBI3c,KAAKoc,eAAeQ,UAAU5c,KAAK+E,MAAMumB,iBAE3CpnB,QAAS,CACPyiB,aADJ,WAEM3mB,KAAKurB,qBAEPA,kBAJJ,WAKM,IAAN,4BAIA,yBACMvrB,KAAKkc,SAAW9Y,KAAK1C,IAAI0C,KAAKooB,MAAMC,EAAY,IAAK,OCvEoV,MCQ3Y,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,qBCwCf,IACE9tB,KAAM,MACN2F,MAAO,CAAC,KAAM,WAAY,YAAa,kBAAmB,WAAY,eAAgB,gBACtFsF,WAAY,CACV8iB,UAAJ,GACIC,SAAJ,GACIC,UAAJ,GACIC,WAAJ,EACIC,SAAJ,SAEElyB,KAVF,WAWI,MAAO,CACLqmB,MAAOjgB,KAAK+rB,UACZ9wB,OAAQ,KACR0lB,kBAAkB,EAClB5jB,MAAO,KACP8e,KAAM,EACN6E,OAAQ,CACNsL,UAAW,QACXjmB,MAAO,SACPkmB,SAAU,YAIhBvoB,SAAU,CACRwoB,SADJ,WAEM,OAAOlsB,KAAKoN,KAAOpN,KAAKkG,OAAOC,MAAMib,eAGzC1G,MAAO,CACLwR,SAAU,CACR5B,WAAW,EACX,QAFN,WAEA,4JACA,WADA,uBAEA,mCAFA,SAGA,cAHA,OAIA,0BAJA,+CAQIrK,MAXJ,WAYMjgB,KAAKkG,OAAOimB,OAAO,YAAa,CAAtC,mCAGEjoB,QAAS,CACP0c,aADJ,SACA,KACM,IAAN,iBACM5gB,KAAK0gB,OAAO0L,GAAQpsB,KAAK0gB,OAAO2L,GAChCrsB,KAAK0gB,OAAO2L,GAAMC,GAEpBvL,iBANJ,WAOM/gB,KAAKkG,OAAOimB,OAAO,YAAa,CAAtC,kCAEI,QATJ,WASA,uKACA,sBACA,cACA,aACA,iBAJA,SAMA,WANA,SAOA,0BAPA,OAOA,SAPA,OAQA,gCARA,qDAUA,SACA,aACA,cAZA,QAeA,qBACA,sBAhBA,+DChH2Y,MCQvY,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCiDf,IACEvjB,WAAY,CACV2jB,IAAJ,GACIzO,UAAJ,IAEElkB,KALF,WAMI,MAAO,CACL0mB,gBAAiB,OAGrB5c,SAAU,CACRgc,KADJ,WAEM,OAAO1f,KAAKkG,OAAOC,MAAMuZ,MAE3BE,cAJJ,WAKM,OAAO5f,KAAKkG,OAAOC,MAAMib,eAG7BzG,QAlBF,WAmBI/a,OAAOuE,iBAAiB,eAAgBnE,KAAKwsB,mBAE/CtoB,QAAS,CACPsoB,iBADJ,SACA,GACUxsB,KAAK0f,KAAK6C,MAAK,SAAzB,yBACQtlB,EAAMuH,iBACNvH,EAAM8sB,YAAc,KAGxBlK,UAPJ,SAOA,GACM7f,KAAKkG,OAAOimB,OAAO,kBAAmB/e,IAExC4S,eAVJ,SAUA,GACMhgB,KAAKsgB,gBAAkB7X,EAClBzI,KAAK0f,KAAKjX,GAAOqX,QAGpB9f,KAAKugB,SAAS9X,GAFdzI,KAAKse,OAAOK,KAAK,eAKrB4B,SAlBJ,SAkBA,GACMvgB,KAAKse,OAAOC,KAAK,cACjBve,KAAKsgB,gBAAkB,KACvBtgB,KAAKkG,OAAOimB,OAAO,YAAa1jB,IAElC+X,aAvBJ,SAuBA,cACMxgB,KAAKqgB,MAAM2J,IAAI,gBAAgB,WAC7B,EAAR,YACQ,EAAR,8BAEMhqB,KAAK6f,UAAU7f,KAAK0f,KAAKjX,GAAO2E,IAChCpN,KAAKse,OAAOC,KAAK,cACjBve,KAAKuc,WAAU,WACb,EAAR,iCCxH4X,MCQxX,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,QCGf,IACE5e,KAAM,YACNiL,WAAY,CACV6jB,OAAJ,GACIZ,WAAJ,EACIa,KAAJ,IAEE,aAPF,WAOA,qKACA,2BACA,gBAFA,uBAGA,GACA,KACA,+DACA,wDACA,MACA,qBACA,IACA,eACA,mBACA,KACA,2BACA,uBACA,sBACA,qBACA,sBACA,WAlBA,SAoBA,sCApBA,OAoBA,EApBA,OAqBA,qCArBA,+CC7B6W,MCQzW,I,UAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI3sB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAiC,IAA/BJ,EAAI4sB,gBAAgBvyB,OAAc+F,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,gBAAgB,CAACN,EAAI0F,GAAG,4CAA4CtF,EAAG,OAAO,CAACK,YAAY,OAAOe,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIsgB,MAAMhX,MAAM,uBAAuB,CAACtJ,EAAI0F,GAAG,YAAY1F,EAAI0F,GAAG,6BAA6BtF,EAAG,OAAO,CAACK,YAAY,OAAOe,GAAG,CAAC,MAAQxB,EAAI6sB,kBAAkB,CAAC7sB,EAAI0F,GAAG,YAAY1F,EAAI0F,GAAG,oBAAoB1F,EAAI+B,KAAK3B,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAI4sB,gBAAgBvyB,OAAS,EAAGgL,WAAW,+BAA+BrE,IAAI,uBAAuBV,MAAM,CAAC,GAAK,yBAAyB,CAACF,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,yBAAyB,CAACF,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,oBAAoB,CAACF,EAAG,SAAS,CAACK,YAAY,UAAUH,MAAM,CAAC,GAAK,uBAAuBkB,GAAG,CAAC,MAAQxB,EAAI6sB,kBAAkB,CAAC7sB,EAAI0F,GAAG,cAActF,EAAG,SAAS,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAI8sB,uBAAyB,EAAGznB,WAAW,+BAA+B5E,YAAY,UAAUH,MAAM,CAAC,GAAK,uBAAuBkB,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAI+sB,6BAA6B,CAAC/sB,EAAI0F,GAAG,cAActF,EAAG,SAAS,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAIgtB,2BAA6B,EAAG3nB,WAAW,mCAAmC5E,YAAY,UAAUH,MAAM,CAAC,GAAK,uBAAuBkB,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIitB,iBAAiBjtB,EAAIktB,yBAAyB,CAACltB,EAAI0F,GAAG,gBAAgBtF,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,mBAAmB,CAACF,EAAG,aAAa,CAACE,MAAM,CAAC,YAAc,yBAAyB,MAAQ,SAAS2E,MAAM,CAACnG,MAAOkB,EAAU,OAAEkF,SAAS,SAAUC,GAAMnF,EAAIoF,OAAOD,GAAKE,WAAW,aAAa,KAAKjF,EAAG,MAAM,CAACK,YAAY,cAAc,CAACL,EAAG,MAAM,CAACK,YAAY,oBAAoB,CAACL,EAAG,MAAM,CAACA,EAAG,MAAM,CAACY,IAAI,UAAUP,YAAY,gBAAgB,CAACL,EAAG,YAAY,CAACY,IAAI,eAAeV,MAAM,CAAC,MAAQ,SAASkB,GAAG,CAAC,MAAQxB,EAAImtB,mBAAmB/sB,EAAG,MAAM,CAACK,YAAY,WAAW,CAACT,EAAI0F,GAAG,WAAW,GAAGtF,EAAG,MAAM,CAACK,YAAY,gBAAgB,CAACT,EAAI0F,GAAG,sBAAsBtF,EAAG,MAAM,CAACK,YAAY,kBAAkBW,MAAM,CAAG,aAAepB,EAAIotB,eAAiB,OAAU,CAAChtB,EAAG,QAAQ,CAACY,IAAI,QAAQP,YAAY,mBAAmB,CAACL,EAAG,QAAQJ,EAAI+F,GAAI/F,EAAmB,iBAAE,SAASqtB,EAAQ3kB,GAAO,OAAOtI,EAAG,KAAK,CAAChB,IAAIiuB,EAAQhgB,GAAG7L,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIstB,YAAY5kB,MAAU,CAACtI,EAAG,KAAK,CAACY,IAAI,UAAUya,UAAS,GAAM,CAACrb,EAAG,MAAM,CAACK,YAAY,aAAa,CAACL,EAAG,YAAY,CAACY,IAAI,cAAcya,UAAS,EAAKnb,MAAM,CAAC,KAAON,EAAIutB,WAAavtB,EAAIktB,qBAAqBM,IAAIH,EAAQhgB,KAAK7L,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIytB,UAAU5rB,EAAQwrB,EAAQhgB,QAAQjN,EAAG,MAAM,CAACK,YAAY,QAAQ,CAACT,EAAI0F,GAAG1F,EAAI2F,GAAG0nB,EAAQzvB,SAAUyvB,EAAoB,aAAEjtB,EAAG,MAAM,CAACK,YAAY,QAAQe,GAAG,CAAC,WAAaxB,EAAIyJ,YAAY,WAAazJ,EAAI0J,cAAc,CAAC1J,EAAI0F,GAAG,gBAAgBtF,EAAG,OAAO,CAACY,IAAI,UAAUya,UAAS,EAAKhb,YAAY,eAAeW,MAAOpB,EAAgB,cAAG,CAACA,EAAI0F,GAAG,iGAAiG1F,EAAI+B,MAAM,KAAK3B,EAAG,KAAK,CAACA,EAAG,MAAM,CAACK,YAAY,iBAAiB,CAACL,EAAG,MAAM,CAACK,YAAY,kBAAkB,CAACT,EAAI0F,GAAG1F,EAAI2F,GAAG3F,EAAI0tB,GAAG,OAAP1tB,CAAeqtB,EAAQM,eAAevtB,EAAG,MAAM,CAACK,YAAY,mBAAmB,CAAG4sB,EAAQhN,aAAyGrgB,EAAI+B,KAA/F3B,EAAG,cAAc,CAACoB,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAI4tB,iBAAiBP,EAAQhgB,QAAiBjN,EAAG,YAAY,CAACoB,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAI6tB,iBAAiBnlB,OAAWtI,EAAG,cAAc,CAACE,MAAM,CAAC,QAAU,yBAAyB,mBAAmB,YAAYkB,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAI6F,aAAa,CAACwnB,GAAYA,EAAY,KAAI,aAAgBA,EAAQhN,aAAmHrgB,EAAI+B,KAAzG3B,EAAG,cAAc,CAACoB,GAAG,CAAC,MAAQ,SAASK,GAAQ7B,EAAIitB,kBAAiB,IAAKa,KAAOC,IAAIV,EAAQhgB,UAAmB,YAAW,WAAWjN,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,SAAS,QAAU,SAAS,OAAS,SAAS,CAACF,EAAG,MAAM,CAACK,YAAY,iBAAiB,CAACT,EAAI0F,GAAG,oBAAoBtF,EAAG,aAAa,CAACoB,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIue,OAAOC,KAAK,eAAe,GAAGpe,EAAG,MAAM,CAACK,YAAY,eAAe,CAACL,EAAG,aAAa,CAACE,MAAM,CAAC,MAAQ,mBAAmB,YAAYN,EAAI8I,SAAS,MAAQ,QAAQ7D,MAAM,CAACnG,MAAOkB,EAAW,QAAEkF,SAAS,SAAUC,GAAMnF,EAAIguB,QAAQ7oB,GAAKE,WAAW,cAAc,GAAGjF,EAAG,MAAM,CAACK,YAAY,4BAA4B,CAACL,EAAG,SAAS,CAACK,YAAY,YAAYe,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIue,OAAOC,KAAK,aAAa,CAACxe,EAAI0F,GAAG,YAAYtF,EAAG,SAAS,CAACK,YAAY,UAAUe,GAAG,CAAC,MAAQxB,EAAIiuB,gBAAgB,CAACjuB,EAAI0F,GAAG,gBAAgBtF,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,SAAS,QAAU,SAAS,OAAS,SAAS,CAACF,EAAG,MAAM,CAACK,YAAY,iBAAiB,CAACT,EAAI0F,GAAG,WAAW1F,EAAI2F,GAAG3F,EAAIkuB,YAAc,YAAc,WAAW,KAAK9tB,EAAG,aAAa,CAACoB,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIue,OAAOC,KAAK,eAAe,GAAGpe,EAAG,MAAM,CAACK,YAAY,eAAe,CAACT,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG3F,EAAImuB,iBAAiB,KAAK/tB,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAI8sB,uBAAyB9sB,EAAIgtB,2BAA4B3nB,WAAW,wDAAwD/E,MAAM,CAAC,GAAK,SAAS,CAACF,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,WAA+BN,EAAI0F,GAAG,qEAAqEtF,EAAG,MAAM,CAACK,YAAY,4BAA4B,CAACL,EAAG,SAAS,CAACK,YAAY,YAAYe,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIue,OAAOC,KAAK,aAAa,CAACxe,EAAI0F,GAAG,YAAYtF,EAAG,SAAS,CAACK,YAAY,UAAUe,GAAG,CAAC,MAAQxB,EAAIouB,gBAAgB,CAACpuB,EAAI0F,GAAG,iBAAiB,IACx4K,GAAkB,GCDlB,I,oBAAS,WAAa,IAAI1F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACA,EAAG,MAAM,CAACK,YAAY,OAAOH,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAAQkB,GAAG,CAAC,MAAQ,SAASK,GAAiC,OAAzBA,EAAO0H,kBAAyBvJ,EAAIwJ,QAAQ3H,IAAS,WAAa7B,EAAIyJ,YAAY,WAAazJ,EAAI0J,cAAc,CAACtJ,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,4TAA4T,KAAO,eAAeF,EAAG,OAAO,CAACY,IAAI,UAAUP,YAAY,eAAeW,MAAOpB,EAAgB,cAAG,CAACA,EAAI0F,GAAG,0BACxxB,GAAkB,GCyBtB,IACE9H,KAAM,aACNwM,OAAQ,CAACC,GACTlG,QAAS,CACPqF,QADJ,WAEMvJ,KAAKyJ,cACLzJ,KAAKqJ,MAAM,YChC4W,MCQzX,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAItJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACA,EAAG,MAAM,CAACK,YAAY,OAAOH,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAAQkB,GAAG,CAAC,MAAQ,SAASK,GAAiC,OAAzBA,EAAO0H,kBAAyBvJ,EAAIwJ,QAAQ3H,IAAS,WAAa7B,EAAIyJ,YAAY,WAAazJ,EAAI0J,cAAc,CAACtJ,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,mgBAAmgB,KAAO,eAAeF,EAAG,OAAO,CAACY,IAAI,UAAUP,YAAY,eAAeW,MAAOpB,EAAgB,cAAG,CAACA,EAAI0F,GAAG,4BAC/9B,GAAkB,GCyBtB,IACE9H,KAAM,WACNwM,OAAQ,CAACC,GACTlG,QAAS,CACPqF,QADJ,WAEMvJ,KAAKyJ,cACLzJ,KAAKqJ,MAAM,YChC0W,MCQvX,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAItJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACA,EAAG,MAAM,CAACK,YAAY,OAAOH,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,QAAU,YAAY,KAAO,QAAQkB,GAAG,CAAC,MAAQ,SAASK,GAAiC,OAAzBA,EAAO0H,kBAAyBvJ,EAAIwJ,QAAQ3H,IAAS,WAAa,SAASA,GAAQ,OAAO7B,EAAIyJ,YAAY5H,EAAQ,aAAa,WAAa7B,EAAI0J,cAAc,CAACtJ,EAAG,OAAO,CAACE,MAAM,CAAC,EAAI,+TAA+T,KAAO,eAAeF,EAAG,OAAO,CAACY,IAAI,UAAUP,YAAY,eAAeW,MAAOpB,EAAgB,cAAG,CAACA,EAAI0F,GAAG,yBACx0B,GAAkB,GCyBtB,IACE9H,KAAM,aACNwM,OAAQ,CAACC,GACTlG,QAAS,CACPqF,QADJ,WAEMvJ,KAAKyJ,cACLzJ,KAAKqJ,MAAM,YChC4W,MCQzX,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBA,IACb+kB,SADa,SACHC,EAAkBrM,GAC1B,GAAyB,IAArBqM,EAMF,OALArM,EAAU1V,SAAQ,SAAAgiB,GAChBA,EAAQnO,SAAW,QACnBmO,EAAQpO,YAAcoO,EAAQC,aACvBD,EAAQC,SAEVvM,ICJPwM,GAAUC,GAAUL,SAEX,IACbM,QAAS,EACTC,mBAFa,WAGX,IAAIC,EAAcxM,KAAKlS,MAAM2e,aAAaC,QAAQ,gBAClD,IAAKF,EAAa,CAChB,IAAMG,EAAeF,aAAaC,QAAQ,aAC1C,OAAIC,GACFH,EAAcJ,GAAQ,EAAGpM,KAAKlS,MAAM6e,IACpC/uB,KAAKgvB,cAAcJ,GACZA,GAEF,GAGT,OAAQA,GAAeA,EAAY5M,WAAc,IAGnD4L,iBAjBa,SAiBKqB,GAChB,IAAMC,EAAa9M,KAAKlS,MAAMkS,KAAKC,UAAU4M,IAM7C,OALAC,EAAWvxB,KAAOuxB,EAAWvxB,KAAO,QACpCuxB,EAAW9hB,GAAKkV,kBAChB4M,EAAWxB,UAAY,IAAI1d,YACpBkf,EAAW9O,aAEX8O,GAGTC,cA3Ba,SA2BEC,GACb,IAAMC,GAAiBD,EAAWE,SAClC,OAAOF,EAAWhP,cAAgBiP,GAGpCE,KAhCa,SAgCPH,EAAYrB,GAChB,IAAMlvB,EAAQ,CACZuO,GAAIgiB,EAAWhP,aAAekC,kBAAW8M,EAAWhiB,GACpD6S,MAAOmP,EAAWnP,MAClBE,SAAUiP,EAAWrqB,MAAMknB,SAASltB,KACpCmhB,YAAakP,EAAWrqB,MAAMknB,SAAS5F,oBACvC1oB,KAAMowB,GAAWqB,EAAWE,UAIxBV,EAAc5uB,KAAK2uB,qBAGzB,GAAIZ,EACFlvB,EAAM6uB,UAAY,IAAI1d,SACjB,CACL,IAAIwf,EAAeZ,EAAYa,WAAU,SAAAC,GAAU,OAAIA,EAAWtiB,KAAOgiB,EAAWhiB,MACpFvO,EAAM6uB,UAAYkB,EAAYY,GAAc9B,UAY9C,OARIK,EACFa,EAAYl0B,KAAKmE,GAEjB+vB,EAAYY,GAAgB3wB,EAI9BmB,KAAKgvB,cAAcJ,GACZ/vB,GAGTmwB,cAhEa,SAgEEhN,GACb6M,aAAac,QAAQ,cAAevN,KAAKC,UAAU,CAAEqM,QAAS1uB,KAAK0uB,QAAS1M,gBAG9E4N,mBApEa,SAoEOC,GAClB,IAAMC,EAAe1N,KAAKlS,MAAMkS,KAAKC,UAAUwN,IAE/C,OADAC,EAAaxjB,SAAQ,SAAA8gB,GAAO,cAAWA,EAAQhN,gBACxCgC,KAAKC,UAAU,CAAEqM,QAAS1uB,KAAK0uB,QAAS1M,UAAW8N,GAAgB,KAAM,IAGlFC,qBA1Ea,SA0ES3oB,GAAK,WACnB4a,EAAYI,KAAKlS,MAAM9I,GACzByoB,EAAc,GAiBlB,OAhBK7N,EAAU0M,QAKbmB,EAAc7N,EAAUA,WAAa,IAHrC6N,EAAe5N,MAAMC,QAAQF,GAA2BA,EAAd,CAACA,GAC3C6N,EAAcrB,GAAQ,EAAGqB,IAM3BA,EAAYvjB,SAAQ,SAAA8gB,GAClB,IAAM4C,EAAkB,EAAKrB,qBAAqB9jB,KAAI,SAAAuiB,GAAO,OAAIA,EAAQhgB,MACrE4iB,EAAgBzpB,SAAS6mB,EAAQhgB,MACnCggB,EAAQhgB,GAAKkV,sBAIVuN,GAGTjD,gBAhGa,WAgGM,WACjB,OAAO9e,EAAGlG,aACPG,MAAK,SAAAX,GACJ,OAAO,EAAK2oB,qBAAqB3oB,OAIjC6oB,wBAvGO,WAuGoB,qKACbniB,EAAG7F,SAAS,oBADC,cACzBgG,EADyB,gBAEZA,EAAIiiB,OAFQ,UAEzBt2B,EAFyB,OAI1BA,EAAK80B,QAJqB,0CAKtB90B,EAAKQ,OAAS,EAAIo0B,GAAQ,EAAG50B,GAAQ,IALf,iCAOtBA,EAAKooB,WAPiB,gDC8CnC,IACErkB,KAAM,YACNiL,WAAY,CACVunB,WAAJ,GACIC,SAAJ,GACI7Q,WAAJ,GACI8Q,WAAJ,GACIvS,UAAJ,GACIC,UAAJ,EACIE,SAAJ,IAEE9T,OAAQ,CAACC,GACTxQ,KAZF,WAaI,MAAO,CACLooB,UAAW,GACX7c,OAAQ,KACR4oB,QAAS,KACTuC,mBAAoB,KACpBznB,SAAU,KACVokB,qBAAsB,IAAIY,IAC1BhB,uBAAwB,EACxBE,2BAA4B,EAC5BO,WAAW,EACXW,aAAa,EACb7R,eAAgB,KAChB+Q,eAAgB,IAGpBzpB,SAAU,CACR4d,oBADJ,WAEM,OAAOthB,KAAKkG,OAAOC,MAAMmb,oBAAoBzW,KAAI,SAAvD,GAEQ,OADAuiB,EAAQhN,cAAe,EAChBgN,MAGXmD,uBAPJ,WAQM,OAAO,IAAI1C,IAAI7tB,KAAKshB,oBAAoBzW,KAAI,SAAlD,oBAEI8hB,gBAVJ,WAUA,WACA,oBAMM,OALI3sB,KAAKmF,SACPwnB,EAAkBA,EAAgBxnB,QAC1C,YAAU,OAAV,4DAGawnB,GAET6D,aAnBJ,WAoBM,OAAOxwB,KAAKshB,oBAAoBmP,OAAOzwB,KAAKgiB,YAE9C0O,sBAtBJ,WAsBA,WACM,OAAO1wB,KAAKgiB,UAAUyN,WAAU,SAAtC,0CAEIvB,gBAzBJ,WA0BM,IAAKluB,KAAKiuB,cAChB,mCACA,8BACA,kDAEQ,MAAO,GAGT,IAAN,6BACA,gCADA,YACA,kCACA,YACA,WAHA,WAIA,gDAJA,KAMM,MAAO,mCAAb,gBAGEtT,QAvEF,WAuEA,WACIgW,GAAgBV,0BACpB,kBACM,EAAN,gDAEA,qBACA,oBACM,EAAN,sCAGEnrB,QAjFF,WAkFI9E,KAAKoc,eAAiB,IAAIK,eAAezc,KAAK4wB,oBAC9C5wB,KAAKoc,eAAeM,QAAQ1c,KAAK+E,MAAM,yBAEvC/E,KAAK6wB,oBAAsB,IAAIpU,eAAezc,KAAK8wB,eACnD9wB,KAAK6wB,oBAAoBnU,QAAQ1c,KAAK+E,MAAMgB,OAC5C/F,KAAK8wB,gBACL9wB,KAAK4wB,sBAEPjU,cA1FF,WA2FI3c,KAAKoc,eAAeQ,UAAU5c,KAAK+E,MAAM,yBACzC/E,KAAK6wB,oBAAoBjU,UAAU5c,KAAK+E,MAAMgB,QAEhDgrB,QAAS,CACPC,KADJ,SACA,GACM,IAAKnyB,EACH,MAAO,GAET,IAAN,8CACA,GACQoyB,QAAQ,EACRC,KAAM,UACNC,OAAQ,WAEV,OAAO,IAAInhB,KAAKnR,GAAOuyB,mBAAmB,QAASC,GAAe,IACxE,4CAGEntB,QAAS,CACP4sB,cADJ,WAEM,IAAN,wBACA,uDACA,EACM9wB,KAAK+E,MAAM,WAAW5D,MAAQ,UAApC,gBAEIyvB,mBAPJ,WAQM,IAAN,sDACM5wB,KAAKmtB,eAAiB1B,EAAY,EAAxC,MAEI4B,YAXJ,SAWA,cACA,0BACMrtB,KAAKkG,OAAOorB,SAAS,SAAU3R,GAAK5X,MAAK,SAA/C,GACQ,EAAR,mCACQ,EAAR,+BAGI4lB,iBAlBJ,SAkBA,GACM3tB,KAAK6I,SAAW,KAChB7I,KAAKswB,mBAAqBljB,EAC1BpN,KAAK+tB,QAAU/tB,KAAKgiB,UAAUhiB,KAAK0wB,uBAAuB/yB,KAC1DqC,KAAKse,OAAOK,KAAK,WAEnBqP,cAxBJ,WAyBM,GAAKhuB,KAAK+tB,QAAV,CAIA,IAAN,6CACMwD,EAAiB5zB,KAAOqC,KAAK+tB,QAC7B/tB,KAAKwxB,KAAKxxB,KAAKgiB,UAAWhiB,KAAK0wB,sBAAuBa,GAGtDZ,GAAgB3B,cAAchvB,KAAKgiB,WAGnC,IAAN,0BACUvB,GAAY,GACdzgB,KAAKkG,OAAOimB,OAAO,YAAa,CAC9B1jB,MAAOgY,EACP9iB,KAAMqC,KAAK+tB,QACX3gB,GAAImkB,EAAiBnkB,KAIzBpN,KAAKse,OAAOC,KAAK,eApBfve,KAAK6I,SAAW,+BAsBpB+kB,iBAhDJ,SAgDA,GACM,IAAN,+CACU5tB,KAAKstB,YACPttB,KAAKitB,qBAAqBa,IAAIoB,EAAW9hB,IACzCpN,KAAK6sB,uBAAyB7sB,KAAKitB,qBAAqBxsB,MAE1DT,KAAKgiB,UAAUtnB,KAAKw0B,GACpByB,GAAgB3B,cAAchvB,KAAKgiB,YAErCgL,iBAzDJ,SAyDA,GACMhtB,KAAKiuB,YAAcwD,EAAOhxB,KAAO,EAC5BT,KAAKiuB,cACRjuB,KAAKswB,mBAAqBmB,EAAOC,SAASC,OAAO9yB,OAEnDmB,KAAKse,OAAOK,KAAK,WAEnBwP,cAhEJ,WAgEA,WAEM,GADAnuB,KAAKse,OAAOC,KAAK,UACZve,KAAKiuB,YAahB,CACQjuB,KAAKgiB,UAAYhiB,KAAKstB,UAC9B,GACA,mCAAU,OAAV,oCAIQ,IADA,IAAR,yBACA,sBACcttB,KAAKitB,qBAAqBM,IAAI7N,EAAKxlB,GAAGkT,KACxCpN,KAAKkG,OAAOimB,OAAO,YAAajyB,GAKpC8F,KAAKitB,qBAAqB5a,YA3BL,CACrBrS,KAAKgiB,UAAU1mB,OAAO0E,KAAK0wB,sBAAuB,GAGlD,IAAR,6CACYjQ,GAAY,GACdzgB,KAAKkG,OAAOimB,OAAO,YAAa1L,GAI9BzgB,KAAKitB,qBAAqBM,IAAIvtB,KAAKswB,qBACrCtwB,KAAKitB,qBAAqB2E,OAAO5xB,KAAKswB,oBAkB1CtwB,KAAK6sB,uBAAyB7sB,KAAKitB,qBAAqBxsB,KACxDkwB,GAAgB3B,cAAchvB,KAAKgiB,YAErC6P,aAlGJ,SAkGA,GACM,OAAO7xB,KAAKkG,OAAOC,MAAMuZ,KAAK+P,WAAU,SAA9C,uBAEI7pB,aArGJ,SAqGA,KACM,IAAN,2BACM,EAAN,mBAEIknB,wBAzGJ,WAyGA,WACA,iBACA,kBACA,sCAAQ,OAAR,oCAEM9sB,KAAK4F,aAAaiqB,EAAa,gCAEjCjD,gBAhHJ,WAgHA,WACM+D,GAAgB/D,kBACtB,kBACA,cACU,EAAV,qBACY,EAAZ,kCAEU,EAAV,oDAGQ,EAAR,gCACQ,GAAR,+BAGIM,gBA9HJ,SA8HA,GACMltB,KAAKstB,UAAYrS,EACjBjb,KAAK+E,MAAM+sB,YAAYxlB,SAAQ,SAArC,kBAEMtM,KAAKitB,qBAAuBhS,EAClC,2CAAQ,OAAR,SACA,QAEMjb,KAAK6sB,uBAAyB7sB,KAAKitB,qBAAqBxsB,KACxDT,KAAK+sB,2BAA6B9R,EAAUjb,KAAKgiB,UAAU5nB,OAAS,GAEtEozB,UAzIJ,SAyIA,KACM,IAAN,qCACUvS,GACFjb,KAAKitB,qBAAqBa,IAAI1gB,GACzBgT,IACHpgB,KAAK+sB,4BAA8B,KAGjC/sB,KAAKitB,qBAAqBxsB,OAAST,KAAKwwB,aAAap2B,SACvD4F,KAAK+E,MAAMgtB,aAAa9W,SAAU,EAClCjb,KAAKstB,WAAY,GAEnBttB,KAAKitB,qBAAqB2E,OAAOxkB,GAC5BgT,IACHpgB,KAAK+sB,4BAA8B,IAGvC/sB,KAAK6sB,uBAAyB7sB,KAAKitB,qBAAqBxsB,QCla+S,MCQzW,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIV,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,uBAAuB,CAACF,EAAG,cAAc,CAACE,MAAM,CAAC,KAAO,iBAAiBF,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,SAAS,CAACN,EAAI0F,GAAG,iFAAiFtF,EAAG,SAAS,CAACK,YAAY,YAAYH,MAAM,CAAC,GAAK,QAAQkB,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIiyB,QAAQt3B,KAAK,iBAAiB,CAACqF,EAAI0F,GAAG,8BAA8B,IACxd,GAAkB,GCctB,IACE9H,KAAM,UACNiL,WAAY,CAAd,gBCjBiV,MCQ7U,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI7I,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAaA,EAAG,aAAa,CAACE,MAAM,CAAC,QAAU,cAAc,CAACF,EAAG,cAAc,CAACE,MAAM,CAAC,GAAK,gBAAgB,IAAI,IACzN,GAAkB,GCDlB,GAAS,WAAa,IAAIN,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACA,EAAG,cAAc,CAACE,MAAM,CAAC,GAAK,eAAe,CAACN,EAAI0F,GAAG,eAAetF,EAAG,cAAc,CAACE,MAAM,CAAC,GAAK,eAAe,CAACN,EAAI0F,GAAG,eAAetF,EAAG,IAAI,CAACE,MAAM,CAAC,KAAO,2CAA2C,OAAS,WAAW,CAACN,EAAI0F,GAAG,WAAW,GAAGtF,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,gBAAgB,CAACF,EAAG,SAAS,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAIkyB,gBAAsC,eAApBlyB,EAAImyB,OAAOhqB,KAAuB9C,WAAW,mDAAmD5E,YAAY,UAAUH,MAAM,CAAC,GAAK,WAAW,SAAWN,EAAI+f,SAASve,GAAG,CAAC,MAAQxB,EAAIoyB,yBAAyB,CAACpyB,EAAI0F,GAAG,YAAYtF,EAAG,SAAS,CAACK,YAAY,UAAUH,MAAM,CAAC,GAAK,cAAckB,GAAG,CAAC,MAAQxB,EAAIqyB,mBAAmB,CAACryB,EAAI0F,GAAG,cAActF,EAAG,wBAAwB,GAAGA,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,OAAO,QAAU,SAAS,OAAS,SAAS,CAACF,EAAG,MAAM,CAACK,YAAY,iBAAiB,CAACT,EAAI0F,GAAG,kBAAkBtF,EAAG,aAAa,CAACoB,GAAG,CAAC,MAAQxB,EAAIsyB,eAAe,GAAGlyB,EAAG,MAAM,CAACK,YAAY,eAAe,CAACL,EAAG,MAAM,CAACmF,WAAW,CAAC,CAAC3H,KAAK,OAAO4H,QAAQ,SAAS1G,MAAOkB,EAAgB,aAAEqF,WAAW,iBAAiB/E,MAAM,CAAC,GAAK,cAAc,CAACF,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,WAA+BN,EAAI0F,GAAG,wIAAwItF,EAAG,aAAa,CAACE,MAAM,CAAC,MAAQ,eAAe,YAAYN,EAAI8I,SAAS,MAAQ,QAAQ7D,MAAM,CAACnG,MAAOkB,EAAQ,KAAEkF,SAAS,SAAUC,GAAMnF,EAAIpC,KAAKuH,GAAKE,WAAW,WAAW,GAAGjF,EAAG,MAAM,CAACK,YAAY,4BAA4B,CAACL,EAAG,SAAS,CAACK,YAAY,YAAYe,GAAG,CAAC,MAAQxB,EAAIsyB,aAAa,CAACtyB,EAAI0F,GAAG,YAAYtF,EAAG,SAAS,CAACK,YAAY,UAAUe,GAAG,CAAC,MAAQxB,EAAIuyB,cAAc,CAACvyB,EAAI0F,GAAG,eAAe,IACvxD,GAAkB,GCDlB,GAAS,WAAa,IAAI1F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,uBAAuB,CAACF,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,gBAAgB,IAAM,EAAQ,SAA6BkB,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIue,OAAOK,KAAK,gBAAgBxe,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,WAAW,QAAU,SAAS,OAAS,OAAO,MAAQ,UAAU,CAACF,EAAG,MAAM,CAACK,YAAY,iBAAiB,CAACT,EAAI0F,GAAG,cAActF,EAAG,aAAa,CAACoB,GAAG,CAAC,MAAQ,SAASK,GAAQ,OAAO7B,EAAIue,OAAOC,KAAK,iBAAiB,GAAGpe,EAAG,MAAM,CAACK,YAAY,eAAeT,EAAI+F,GAAI/F,EAAQ,MAAE,SAASwM,EAAK9D,GAAO,OAAOtI,EAAG,MAAM,CAAChB,IAAIsJ,EAAMjI,YAAY,aAAa,CAACT,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG6G,EAAK5O,MAAM,KAAKwC,EAAG,MAAM,CAACK,YAAY,YAAYL,EAAG,MAAM,CAACK,YAAY,WAAWT,EAAI+F,GAAIyG,EAAS,MAAE,SAASgmB,EAAI9pB,GAAO,OAAOtI,EAAG,MAAM,CAAChB,IAAIsJ,GAAO,CAAC1I,EAAI0F,GAAG,IAAI1F,EAAI2F,GAAG6sB,GAAK,UAAS,QAAO,MAAM,IACv2B,GAAkB,GC6BtB,IACE50B,KAAM,oBACNiL,WAAY,CAAd,cACEhP,KAHF,WAII,MAAO,CACL44B,KAAM,CACZ,CACQ,KAAR,oBACQ,KAAR,wBAME,QAdF,WAcA,uKACA,iBADA,SAEA,wCAFA,cAEA,EAFA,OAGA,aACA,sBACA,6BALA,SAQA,uCARA,OAQA,EARA,OASA,aACA,8BACA,yBAXA,+CC5C0W,MCQtW,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCyCf,IACE70B,KAAM,WACNiL,WAAY,CACVmV,UAAJ,EACID,UAAJ,GACI2U,kBAAJ,IAEE74B,KAPF,WAQI,MAAO,CACL+D,KAAM,GACNkL,SAAU,OAGdnF,SAAU,CACRuuB,eADJ,WAEM,OAAOjyB,KAAKkG,OAAOC,MAAMgb,YAE3BrB,QAJJ,WAKM,IAAK9f,KAAKiyB,eACR,OAAO,EAET,IAAN,+BACA,4BACM,OAAOtS,GAAOA,EAAIG,SAEpBM,aAZJ,WAaM,QAAIpgB,KAAKiyB,gBACAjyB,KAAKiyB,eAAe7R,cAK/Bc,YAnBJ,WAoBM,OAAOlhB,KAAKiyB,kBAAoBjyB,KAAKkG,OAAOC,MAAMC,KAAOpG,KAAKiyB,eAAehS,SAGjFtF,QApCF,WAqCI3a,KAAKqgB,MAAM2J,IAAI,mBAAoBhqB,KAAKoyB,kBACxCpyB,KAAKqgB,MAAM2J,IAAI,cAAehqB,KAAKmyB,wBACnC31B,SAAS2H,iBAAiB,UAAWnE,KAAK0yB,eAE5C/V,cAzCF,WA0CIngB,SAAS+H,oBAAoB,UAAWvE,KAAK0yB,eAE/CxuB,QAAS,CACPkuB,iBADJ,WACA,WACMpyB,KAAKkG,OAAOorB,SAAS,UAAUvpB,MAAK,SAA1C,GACQ,EAAR,mCACA,eAAY,EAAZ,aACU,EAAV,+BAIIsqB,WATJ,WAUMryB,KAAKse,OAAOC,KAAK,QACjBve,KAAKqgB,MAAMsS,KAAK,iBAElBR,uBAbJ,WAcMnyB,KAAK6I,SAAW,KAChB7I,KAAKrC,KAAO,GAERgzB,GAAgBxB,cAAcnvB,KAAKiyB,gBACrCjyB,KAAKse,OAAOK,KAAK,QAEjB3e,KAAKsyB,eAGTA,YAvBJ,WAuBA,WACA,wCACM,IAAIM,GAAe5yB,KAAKrC,KAAxB,CAIA,IAAN,6BACA,2BAGA,yCAGMqC,KAAKkG,OAAOimB,OAAO,YAAa,CAC9B1jB,MAAOzI,KAAKiyB,eAAexR,SAC3B9iB,KAAMkB,EAAMlB,KACZyP,GAAIvO,EAAMuO,GACV6S,MAAOphB,EAAMohB,MACbE,SAAUthB,EAAMshB,SAChBD,YAAarhB,EAAMqhB,YACnBJ,SAAS,IAQX9f,KAAKuc,WAAU,WACb,EAAR,wBACQ,EAAR,yBAIMvc,KAAKse,OAAOC,KAAK,QAGjBve,KAAKqgB,MAAMhX,MAAM,qBAlCfrJ,KAAK6I,SAAW,+BAoCpB6pB,aA9DJ,SA8DA,GACM,GAAyB,eAArB1yB,KAAKkyB,OAAOhqB,KAAuB,CAErC,IAAe,MAAVnM,EAAEoD,KAAyB,UAAVpD,EAAEoD,OAAqBpD,EAAE82B,SAAW92B,EAAE+2B,SAK1D,OAJA/2B,EAAEyI,sBACGxE,KAAKkhB,aACRlhB,KAAKiyB,eAAe9jB,WAMxB,GAAc,MAAVpS,EAAEoD,MAAgBpD,EAAE82B,SAAW92B,EAAE+2B,SAKnC,OAJA/2B,EAAEyI,sBACGxE,KAAK8f,SACR9f,KAAKmyB,0BAMG,MAAVp2B,EAAEoD,MAAgBpD,EAAE82B,SAAW92B,EAAE+2B,WACnC/2B,EAAEyI,iBACFxE,KAAKoyB,uBC7LoV,MCQ7V,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCNf,I,UAAA,CACEz0B,KAAM,OACNiL,WAAY,CAAd,eCf8V,MCQ1V,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCVf8Y,aAAIe,IAAIsQ,QAER,IAAMC,GAAS,CACb,CACE9qB,KAAM,IACNvK,KAAM,UACN4C,UAAW0yB,IAEb,CACE/qB,KAAM,IACNvK,KAAM,OACN4C,UAAW2yB,GACXC,SAAU,CACR,CACEjrB,KAAM,aACNvK,KAAM,YACN4C,UAAW6yB,IAEb,CACElrB,KAAM,aACNvK,KAAM,YACN4C,UAAW8yB,OAMbC,GAAS,IAAIP,OAAU,CAC3BC,YAGFM,GAAOC,WAAP,yDAAkB,WAAOlH,EAAID,EAAMuF,GAAjB,0FACXjO,GAAMvd,MAAMC,GADD,uBAERmE,EAAQipB,GAAS5mB,iBAFT,SAGRrC,EAAM0U,SAHE,OAIdyE,GAAMyI,OAAO,QAAS5hB,GAJR,OAMhBonB,IANgB,2CAAlB,2DASe2B,U,qHCjCV,CAAC,YAAa,aAAa/sB,SAASktB,SAASC,WAChD,oDAGFhS,aAAIe,IAAIkR,iBACRjS,aAAIe,IAAImR,MAERlS,aAAIvR,OAAO0jB,eAAgB,EAE3B,IAAInS,aAAI,CACN4R,UACA5P,SACAoQ,OAAQ,SAAAC,GAAC,OAAIA,EAAEC,MACd3K,OAAO,S,+GC7BV,yBAAyf,EAAG,G,oCCA5f,yBAAkgB,EAAG,G,qBCArgBxtB,EAAOD,QAAU,80C,qBCAjBC,EAAOD,QAAU,0ha,8FCAjBC,EAAOD,QAAU,sgD,oICAjB,yBAA2hB,EAAG,G,oCCA9hB,yBAAglB,EAAG,G,oCCAnlB,yBAAqf,EAAG,G,oCCAxf,yBAAkmB,EAAG,G,uECArmBC,EAAOD,QAAU,IAA0B,yB,8oDCA3CC,EAAOD,QAAU,0zC,8CCAjBC,EAAOD,QAAU,kmB,kCCAjB,yBAA8d,EAAG,G,yDCAje,yBAAue,EAAG,G,uGCA1e,yBAA2hB,EAAG,G,kCCA9hB,yBAA8jB,EAAG,G,yDCAjkB,yBAAsf,EAAG,G,kCCAzf,yBAAyhB,EAAG,G,kCCA5hB,yBAAgjB,EAAG,G,yDCAnjB,yBAAsf,EAAG,G,kCCAzf,yBAAglB,EAAG,G,kCCAnlB,yBAA+e,EAAG,G,kCCAlf,yBAAwe,EAAG,G,mBCA3eC,EAAOD,QAAU,8gC,yDCAjB,yBAAye,EAAG,G,kCCA5e,yBAAqiB,EAAG,G,yDCAxiB,yBAAse,EAAG,G,kCCAze,yBAAsf,EAAG,G,kCCAzf,yBAAkjB,EAAG,G,kCCArjB,yBAAsf,EAAG,G,kCCAzf,yBAAwgB,EAAG,G,kCCA3gB,yBAAsf,EAAG,G","file":"js/app.023944c6.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-60cbf026\":\"37d9df6c\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=style&index=0&id=1c9f27dc&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=style&index=0&id=1c9f27dc&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMSAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwLjQ5OTggMTYuNjY2N0M2LjgyNDg0IDE2LjY2NjcgMy44MzMxNyAxMy42NzUgMy44MzMxNyAxMEMzLjgzMzE3IDYuMzI1MDIgNi44MjQ4NCAzLjMzMzM1IDEwLjQ5OTggMy4zMzMzNUMxNC4xNzQ4IDMuMzMzMzUgMTcuMTY2NSA2LjMyNTAyIDE3LjE2NjUgMTBDMTcuMTY2NSAxMy42NzUgMTQuMTc0OCAxNi42NjY3IDEwLjQ5OTggMTYuNjY2N1pNMTAuNDk5OCAxLjY2NjY5QzkuNDA1NDkgMS42NjY2OSA4LjMyMTg2IDEuODgyMjQgNy4zMTA4MSAyLjMwMTAyQzYuMjk5NzYgMi43MTk4MSA1LjM4MTEgMy4zMzM2NCA0LjYwNzI4IDQuMTA3NDZDMy4wNDQ0OCA1LjY3MDI3IDIuMTY2NSA3Ljc4OTg4IDIuMTY2NSAxMEMyLjE2NjUgMTIuMjEwMiAzLjA0NDQ4IDE0LjMyOTggNC42MDcyOCAxNS44OTI2QzUuMzgxMSAxNi42NjY0IDYuMjk5NzYgMTcuMjgwMiA3LjMxMDgxIDE3LjY5OUM4LjMyMTg2IDE4LjExNzggOS40MDU0OSAxOC4zMzM0IDEwLjQ5OTggMTguMzMzNEMxMi43MSAxOC4zMzM0IDE0LjgyOTYgMTcuNDU1NCAxNi4zOTI0IDE1Ljg5MjZDMTcuOTU1MiAxNC4zMjk4IDE4LjgzMzIgMTIuMjEwMiAxOC44MzMyIDEwQzE4LjgzMzIgOC45MDU2NyAxOC42MTc2IDcuODIyMDQgMTguMTk4OCA2LjgxMDk5QzE3Ljc4IDUuNzk5OTUgMTcuMTY2MiA0Ljg4MTI5IDE2LjM5MjQgNC4xMDc0NkMxNS42MTg2IDMuMzMzNjQgMTQuNjk5OSAyLjcxOTgxIDEzLjY4ODkgMi4zMDEwMkMxMi42Nzc4IDEuODgyMjQgMTEuNTk0MiAxLjY2NjY5IDEwLjQ5OTggMS42NjY2OVoiIGZpbGw9IiMwMENDOTYiLz4KPHJlY3QgeD0iNi4wOTcxNyIgeT0iMTAuMjc3MSIgd2lkdGg9IjEuNjciIGhlaWdodD0iNC4zNDUiIHRyYW5zZm9ybT0icm90YXRlKC00NSA2LjA5NzE3IDEwLjI3NzEpIiBmaWxsPSIjMDBDQzk2Ii8+CjxyZWN0IHg9IjEzLjc1MiIgeT0iNi45NzU4OSIgd2lkdGg9IjEuNjciIGhlaWdodD0iNy43NDM1OSIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTMuNzUyIDYuOTc1ODkpIiBmaWxsPSIjMDBDQzk2Ii8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI5IiB2aWV3Qm94PSIwIDAgNCA5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNCAwLjk4MDU2VjQuNUw0LjAwMDA0IDcuNzE0MjhMNCA5TDEuMTA2OTRlLTA3IDQuNUw0IDBWMC45ODA1NloiIGZpbGw9IiM1MDY3ODQiLz4KPC9zdmc+Cg==\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=style&index=0&id=15bea4a0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=style&index=0&id=15bea4a0&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=style&index=0&id=e3801f08&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=style&index=0&id=e3801f08&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=style&index=0&id=0b825a18&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=style&index=0&id=0b825a18&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzQiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA3NCA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQyIDRMMjguODg1NyAwQzcuNDM3MjkgMTYuNDUxMiAxLjg0MzE4ZS0wNSA2MS43OTYxIDAgOTZINzRDNzEuNzQxNiA2Mi4xMDg1IDU3LjUgMjQgNDIgNFoiIGZpbGw9IiNDOEQ0RTMiLz4KPG1hc2sgaWQ9Im1hc2swIiBtYXNrLXR5cGU9ImFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iNzQiIGhlaWdodD0iOTYiPgo8cGF0aCBkPSJNNDIgNEwyOC44ODU3IDBDNy40MzcyOSAxNi40NTEyIDEuODQzMThlLTA1IDYxLjc5NjEgMCA5Nkg3NEM3MS43NDE2IDYyLjEwODUgNTcuNSAyNCA0MiA0WiIgZmlsbD0iI0M4RDRFMyIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTMyLjAwMDEgNjAuNUMzOC41MDAxIDczIDYzLjUwMDEgNzYuNDk5OSA3My40OTk5IDczQzczLjQ5OTkgNzMgNzUuNzk5MiA2MC43OTk0IDc1LjUgNjAuNTAwMkM2OS43MzM5IDU0LjczMzggNDMuMDAwMyA1Ny45OTk4IDMyLjAwMDEgNjAuNVoiIGZpbGw9IiNBMkIxQzYiLz4KPC9nPgo8L3N2Zz4K\"","import mod from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c84dd870&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c84dd870&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3fcc3d82&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3fcc3d82&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA2IiBoZWlnaHQ9IjU2IiB2aWV3Qm94PSIwIDAgMTA2IDU2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMTA0LjI1MiAxLjQwODU1QzEwMC4yNjIgLTIuMDQ5NCA5My43NzczIDEuNDA4NTQgOTEuMjgzMiA1Ljg1NDI2TDEwMC4yNjIgMTQuMzkzOUMxMDQuNzUxIDEwLjc5NDEgMTA4LjI0MyA0Ljg2NjQ2IDEwNC4yNTIgMS40MDg1NVoiIGZpbGw9IiNGM0M2QkYiLz4KPHBhdGggZD0iTTkxLjAxMjMgNC4zNzIwN0M3Mi40NTY4IDI1LjE3MDQgMzAuNDI3OSAyMi45MjYzIDE5Ljk1MjcgNC4zNzIwN0wwIDQ0LjY2MTVDMzguNDA5IDY5Ljg1NDcgODYuNzk0NCA1MC4wOTU0IDEwMi4yNTggMTQuNTI4Nkw5MS4wMTIzIDQuMzcyMDdaIiBmaWxsPSIjQzhENEUzIi8+Cjwvc3ZnPgo=\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=44b0b048&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=44b0b048&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=style&index=0&id=a80fbe8a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=style&index=0&id=a80fbe8a&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=de063d86&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=de063d86&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=24244834&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=24244834&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=style&index=0&id=707ebea6&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=style&index=0&id=707ebea6&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=style&index=0&id=bfc135e8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=style&index=0&id=bfc135e8&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=style&index=0&id=eefa30c0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=style&index=0&id=eefa30c0&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE3NSIgdmlld0JveD0iMCAwIDQ1MCAxNzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ1MCIgaGVpZ2h0PSIxNzUiPgo8cmVjdCB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE3NSIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTEyOC4yMDcgMS45OTI3MkM3MC4xOTcyIC05Ljg0ODk3IDE4Ljc0NSAzMC44ODk1IDQuMzE5ODUgOTIuNjY3OEMtMTAuMTA1NCAxNTQuNDQ2IDE0LjMzMzcgMTg2LjMzMiAzNy4zMjE4IDIyNi4xODlDNzIuMzc4NCAyODYuOTcxIDE4MS41NTEgMzQxLjIzNyAyNjUuMDgzIDMzNy43ODlDMzM3LjUxNyAzMzQuOCAzODkuMDI4IDMxNi41MTQgNDI1LjkzNiAyNDguMTExQzQ4OS4zNzggMTMwLjUzMiA0MTcuNDQ0IDUzLjkwNjUgMzI1LjUyNyA2OC4yNTUxQzIxNC41NzEgODUuNTc2IDIxMy42MjkgMTkuNDMwMiAxMjguMjA3IDEuOTkyNzJaIiBmaWxsPSIjREZFOEYzIi8+CjxwYXRoIGQ9Ik0xNTYuMjg0IDE2OS40MjZDMTU4LjE1OCAxNjcuNTUzIDE2MC42OTkgMTY2LjUgMTYzLjM0OSAxNjYuNUgzMzEuOTExQzMzNC41NjEgMTY2LjUgMzM3LjEwMiAxNjcuNTUzIDMzOC45NzYgMTY5LjQyNkwzNDYuMDQxIDE3Ni40OTFIMTQ5LjIyTDE1Ni4yODQgMTY5LjQyNloiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE3NC4wOTkgMTcwLjI1OEMxNzQuMjgzIDE3MC4wOSAxNzQuNTI0IDE2OS45OTcgMTc0Ljc3MyAxNjkuOTk3SDMxOC40OUMzMTguNzM5IDE2OS45OTcgMzE4Ljk4IDE3MC4wOSAzMTkuMTY0IDE3MC4yNThWMTcwLjI1OEMzMTkuODM3IDE3MC44NzQgMzE5LjQwMiAxNzEuOTk1IDMxOC40OSAxNzEuOTk1SDE3NC43NzNDMTczLjg2MSAxNzEuOTk1IDE3My40MjYgMTcwLjg3NCAxNzQuMDk5IDE3MC4yNThWMTcwLjI1OFoiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTk0LjIyNyA4Ny44ODFDOTQuMzk2MiA4MC4xOTg4IDkyLjUwNDggNjUuMDYwOCA4My41ODU3IDY1Ljk2NjRDODMuNTg1NyA2NS45NjY0IDcwLjU3NzYgNzYuMDg3NyA3NS42MzkxIDgzLjYxODhDODAuNzAwNSA5MS4xNDk4IDkzLjQ2NzcgOTQuNTA4MyA5NC4yMjcgODcuODgxWiIgZmlsbD0iI0YzQzZCRiIvPgo8cGF0aCBkPSJNODkuMjc1IDkxLjMxMDVMODggOThDODUuNTAyMyA5OS40OTg2IDc2LjU1MzEgOTkuMDE5NiA3NC41IDk1Qzc0LjUgOTUgNzYuODI5OCA4OS45MTM1IDc3Ljg0NDYgODQuOTIyNkw4OS4yNzUgOTEuMzEwNVoiIGZpbGw9IiNGM0M2QkYiLz4KPHBhdGggZD0iTTkyLjI3MTkgNjcuMTE2MUM5Mi4yNzE5IDcyLjc2ODkgODQuMjI0MiA2OC44ODcyIDgyLjM0MjMgNzIuOTEyNkM4MC40NjA1IDc2LjkzNzkgNzcuMzk1MiA4Ni45MjA4IDc3LjM5NTIgODYuOTIwOEM3Mi42MzIzIDg0Ljc0MTQgNjYuNzI3MyA2OS4zMyA3My4yOTM2IDY1LjEwMzRDNzkuMzUwNiA2MS4yMDQ3IDkyLjI3MTkgNjMuMDEwMiA5Mi4yNzE5IDY3LjExNjFaIiBmaWxsPSIjNTA2Nzg0Ii8+CjxwYXRoIGQ9Ik03OS43NjU0IDgzLjk2MjhDNzUuMTUyMiA4MC43MjY5IDc2LjM3MSA3NS4xMzQzIDc5Ljc1NjIgNzYuOTUzNEM4NS4xOTk0IDc5Ljg3ODUgODEuMjkzNCA4Mi45ODA4IDc5Ljc2NTQgODMuOTYyOFoiIGZpbGw9IiNGM0M2QkYiLz4KPC9nPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iI0RGRThGMyIgc3Ryb2tlPSIjQzhENEUzIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjVMNi43NSAxNC4yNUwyLjYyNSAxMC4xMjVMMy42ODI1IDkuMDY3NUw2Ljc1IDEyLjEyNzVMMTQuNjkyNSA0LjE5MjVMMTUuNzUgNS4yNVoiIGZpbGw9IiNBMkIxQzYiLz4KPC9nPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9kIiB4PSIwLjYyNSIgeT0iMy4xOTI1IiB3aWR0aD0iMTcuMTI1IiBoZWlnaHQ9IjE0LjA1NzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiLz4KPGZlT2Zmc2V0IGR5PSIxIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMC4xNjQ3MDYgMCAwIDAgMCAwLjI0NzA1OSAwIDAgMCAwIDAuMzcyNTQ5IDAgMCAwIDAuMiAwIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0iZWZmZWN0MV9kcm9wU2hhZG93Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9kcm9wU2hhZG93IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=style&index=0&id=29bdb7bf&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=style&index=0&id=29bdb7bf&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=style&index=0&id=28a29e7a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=style&index=0&id=28a29e7a&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=1fac0635&\"\nvar script = {}\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('splitpanes',{staticClass:\"schema-tabs-splitter\",attrs:{\"before\":{ size: 20, max: 30 },\"after\":{ size: 80, max: 100 }},scopedSlots:_vm._u([{key:\"left-pane\",fn:function(){return [_c('schema')]},proxy:true},{key:\"right-pane\",fn:function(){return [_c('tabs')]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"container\",class:[\n 'splitpanes',\n (\"splitpanes-\" + (_vm.horizontal ? 'horizontal' : 'vertical')),\n { 'splitpanes-dragging': _vm.dragging }\n ]},[_c('div',{ref:\"movableSplitter\",staticClass:\"movable-splitter\",style:(_vm.movableSplitterStyle)}),_c('div',{ref:\"left\",staticClass:\"splitpanes-pane\",style:(_vm.styles.before),attrs:{\"size\":_vm.paneBefore.size,\"max-size\":\"30\"}},[_vm._t(\"left-pane\")],2),_c('div',{staticClass:\"splitpanes-splitter\",on:{\"mousedown\":_vm.bindEvents,\"touchstart\":_vm.bindEvents}},[_c('div',{class:[\n 'toggle-btns',\n {'both': _vm.after.max === 100 && _vm.before.max === 100 && _vm.paneAfter.size > 0 && _vm.paneBefore.size > 0}\n ]},[(_vm.after.max === 100 && _vm.paneAfter.size > 0)?_c('div',{staticClass:\"toggle-btn\",on:{\"click\":function($event){return _vm.togglePane(_vm.paneBefore)}}},[_c('img',{staticClass:\"direction-icon\",style:(_vm.directionBeforeIconStyle),attrs:{\"src\":require('@/assets/images/chevron.svg')}})]):_vm._e(),(_vm.before.max === 100 && _vm.paneBefore.size > 0)?_c('div',{staticClass:\"toggle-btn\",on:{\"click\":function($event){return _vm.togglePane(_vm.paneAfter)}}},[_c('img',{staticClass:\"direction-icon\",style:(_vm.directionAfterIconStyle),attrs:{\"src\":require('@/assets/images/chevron.svg')}})]):_vm._e()])]),_c('div',{ref:\"right\",staticClass:\"splitpanes-pane\",style:(_vm.styles.after)},[_vm._t(\"right-pane\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n // Get the cursor position relative to the splitpane container.\n getCurrentMouseDrag (event, container) {\n const rect = container.getBoundingClientRect()\n const { clientX, clientY } = ('ontouchstart' in window && event.touches)\n ? event.touches[0]\n : event\n return {\n x: clientX - rect.left,\n y: clientY - rect.top\n }\n },\n\n // Returns the drag percentage of the splitter relative to the 2 panes it's inbetween.\n getCurrentDragPercentage (event, container, isHorisontal) {\n let drag = this.getCurrentMouseDrag(event, container)\n drag = drag[isHorisontal ? 'y' : 'x']\n const containerSize = container[isHorisontal ? 'clientHeight' : 'clientWidth']\n return drag * 100 / containerSize\n },\n\n // Returns the new position in percents.\n calculateOffset (event, { container, isHorisontal, paneBeforeMax, paneAfterMax }) {\n const dragPercentage = this.getCurrentDragPercentage(event, container, isHorisontal)\n\n const paneBeforeMaxReached = paneBeforeMax < 100 && (dragPercentage >= paneBeforeMax)\n const paneAfterMaxReached = paneAfterMax < 100 && (dragPercentage <= 100 - paneAfterMax)\n\n // Prevent dragging beyond pane max.\n if (paneBeforeMaxReached || paneAfterMaxReached) {\n return paneBeforeMaxReached ? paneBeforeMax : Math.max(100 - paneAfterMax, 0)\n } else {\n return Math.min(Math.max(dragPercentage, 0), paneBeforeMax)\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=82b9f68a&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"schema-container\"}},[_c('div',{attrs:{\"id\":\"schema-filter\"}},[_c('text-field',{attrs:{\"placeholder\":\"Search table\",\"width\":\"100%\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1),_c('div',{attrs:{\"id\":\"db\"}},[_c('div',{staticClass:\"db-name\",on:{\"click\":function($event){_vm.schemaVisible = !_vm.schemaVisible}}},[_c('tree-chevron',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.schema.length > 0),expression:\"schema.length > 0\"}],attrs:{\"expanded\":_vm.schemaVisible}}),_vm._v(\" \"+_vm._s(_vm.dbName)+\" \")],1),_c('db-uploader',{attrs:{\"id\":\"db-edit\",\"type\":\"small\"}}),_c('export-icon',{attrs:{\"tooltip\":\"Export database\"},on:{\"click\":_vm.exportToFile}}),_c('add-table-icon',{on:{\"click\":_vm.addCsv}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.schemaVisible),expression:\"schemaVisible\"}],staticClass:\"schema\"},_vm._l((_vm.schema),function(table){return _c('table-description',{key:table.name,attrs:{\"name\":table.name,\"columns\":table.columns}})}),1),_c('csv-import',{ref:\"addCsv\",attrs:{\"file\":_vm.file,\"db\":_vm.$store.state.db,\"dialog-name\":\"addCsv\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n isDatabase (file) {\n const dbTypes = ['application/vnd.sqlite3', 'application/x-sqlite3']\n return file.type\n ? dbTypes.includes(file.type)\n : /\\.(db|sqlite(3)?)+$/.test(file.name)\n },\n\n getFileName (file) {\n return file.name.replace(/\\.[^.]+$/, '')\n },\n\n downloadFromUrl (url, fileName) {\n // Create downloader\n const downloader = document.createElement('a')\n downloader.href = url\n downloader.download = fileName\n\n // Trigger click\n downloader.click()\n\n // Clean up\n URL.revokeObjectURL(url)\n },\n\n async exportToFile (str, fileName, type = 'octet/stream') {\n const blob = new Blob([str], { type })\n const url = URL.createObjectURL(blob)\n this.downloadFromUrl(url, fileName)\n },\n\n /**\n * Note: if user press Cancel in file choosing dialog\n * it will be an unsettled promise. But it's grabbed by\n * the garbage collector (tested with FinalizationRegistry).\n */\n getFileFromUser (type) {\n return new Promise(resolve => {\n const uploader = document.createElement('input')\n\n uploader.type = 'file'\n uploader.accept = type\n\n uploader.addEventListener('change', () => {\n const file = uploader.files[0]\n resolve(file)\n })\n\n uploader.click()\n })\n },\n\n importFile () {\n const reader = new FileReader()\n\n return this.getFileFromUser('.json')\n .then(file => {\n return new Promise((resolve, reject) => {\n reader.onload = e => {\n resolve(e.target.result)\n }\n reader.readAsText(file)\n })\n })\n },\n\n readFile (path) {\n return fetch(path)\n },\n\n readAsArrayBuffer (file) {\n const fileReader = new FileReader()\n\n return new Promise((resolve, reject) => {\n fileReader.onerror = () => {\n fileReader.abort()\n reject(new Error('Problem parsing input file.'))\n }\n\n fileReader.onload = () => {\n resolve(fileReader.result)\n }\n fileReader.readAsArrayBuffer(file)\n })\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"table-name\",on:{\"click\":function($event){_vm.colVisible = !_vm.colVisible}}},[_c('tree-chevron',{attrs:{\"expanded\":_vm.colVisible}}),_vm._v(\" \"+_vm._s(_vm.name)+\" \")],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.colVisible),expression:\"colVisible\"}],staticClass:\"columns\"},_vm._l((_vm.columns),function(col,index){return _c('div',{key:index,staticClass:\"column\"},[_vm._v(\" \"+_vm._s(col.name)+\" \"),_c('span',{staticClass:\"column-type\"},[_vm._v(_vm._s(col.type))])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"chevron-icon\",style:({ transform: _vm.expanded ? 'rotate(90deg)' : 'rotate(0)' }),attrs:{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 8 12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M0.721924 9.93097L4.85292 5.79997L0.721924 1.66897L1.99992 0.399973L7.39992 5.79997L1.99992 11.2L0.721924 9.93097Z\",\"fill\":_vm.expanded ? '#506784' : 'rgba(80, 103, 132, 0.5)'}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./treeChevron.vue?vue&type=template&id=bfc135e8&scoped=true&\"\nimport script from \"./treeChevron.vue?vue&type=script&lang=js&\"\nexport * from \"./treeChevron.vue?vue&type=script&lang=js&\"\nimport style0 from \"./treeChevron.vue?vue&type=style&index=0&id=bfc135e8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bfc135e8\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableDescription.vue?vue&type=template&id=060be7fb&scoped=true&\"\nimport script from \"./TableDescription.vue?vue&type=script&lang=js&\"\nexport * from \"./TableDescription.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableDescription.vue?vue&type=style&index=0&id=060be7fb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"060be7fb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.label)?_c('div',{class:['text-field-label', { error: _vm.errorMsg }, {'disabled': _vm.disabled}]},[_vm._v(\" \"+_vm._s(_vm.label)+\" \"),(_vm.hint)?_c('hint-icon',{staticClass:\"hint\",attrs:{\"hint\":_vm.hint,\"max-width\":_vm.maxHintWidth || '149px'}}):_vm._e()],1):_vm._e(),_c('input',{class:{ error: _vm.errorMsg },style:({ width: _vm.width }),attrs:{\"type\":\"text\",\"placeholder\":_vm.placeholder,\"disabled\":_vm.disabled},domProps:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event.target.value)}}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errorMsg),expression:\"errorMsg\"}],staticClass:\"text-field-error\"},[_vm._v(_vm._s(_vm.errorMsg))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('svg',{staticClass:\"hint-icon\",attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M8.75 14.1666H10.4167V12.5H8.75V14.1666ZM9.58333 16.25C5.90833 16.25 2.91667 13.2583 2.91667 9.58333C2.91667 5.90833 5.90833 2.91667 9.58333 2.91667C13.2583 2.91667 16.25 5.90833 16.25 9.58333C16.25 13.2583 13.2583 16.25 9.58333 16.25ZM9.58333 1.25C8.48898 1.25 7.40535 1.46555 6.3943 1.88434C5.38326 2.30313 4.4646 2.91696 3.69078 3.69078C2.12797 5.25358 1.25 7.3732 1.25 9.58333C1.25 11.7935 2.12797 13.9131 3.69078 15.4759C4.4646 16.2497 5.38326 16.8635 6.3943 17.2823C7.40535 17.7011 8.48898 17.9167 9.58333 17.9167C11.7935 17.9167 13.9131 17.0387 15.4759 15.4759C17.0387 13.9131 17.9167 11.7935 17.9167 9.58333C17.9167 8.48898 17.7011 7.40535 17.2823 6.3943C16.8635 5.38326 16.2497 4.4646 15.4759 3.69078C14.7021 2.91696 13.7834 2.30313 12.7724 1.88434C11.7613 1.46555 10.6777 1.25 9.58333 1.25Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M9.91601 4.51787C8.98167 4.42606 8.05144 4.69097 7.36309 5.24472C6.68735 5.78828 6.2998 6.56661 6.2998 7.38012H7.92488C7.92488 6.97463 8.11059 6.60187 8.44779 6.33061C8.79784 6.049 9.25647 5.92005 9.73896 5.96755C10.4832 6.04076 11.0828 6.57277 11.1647 7.23265C11.2306 7.764 10.9661 8.28194 10.4744 8.58426C9.38676 9.25303 8.73742 10.343 8.73742 11.5H10.3625C10.3625 10.8243 10.7477 10.184 11.3929 9.78733C12.3808 9.17985 12.9122 8.13913 12.7798 7.07124C12.6144 5.73863 11.41 4.66476 9.91601 4.51787Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(Object.assign({}, _vm.tooltipStyle, {maxWidth: _vm.maxWidth}))},[_vm._v(\" \"+_vm._s(_vm.hint)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n data () {\n return {\n tooltipStyle: {\n visibility: 'hidden'\n }\n }\n },\n computed: {\n tooltipElement () {\n return this.$refs.tooltip\n }\n },\n methods: {\n showTooltip (e, tooltipPosition) {\n const position = tooltipPosition ? tooltipPosition.split('-') : ['top', 'right']\n const offset = 12\n\n if (position[0] === 'top') {\n this.tooltipStyle.top = e.clientY - offset + 'px'\n } else {\n this.tooltipStyle.top = e.clientY + offset + 'px'\n }\n\n if (position[1] === 'right') {\n this.tooltipStyle.left = e.clientX + offset + 'px'\n } else {\n this.tooltipStyle.left = e.clientX - offset - this.tooltipElement.offsetWidth + 'px'\n }\n\n this.tooltipStyle.visibility = 'visible'\n },\n hideTooltip () {\n this.tooltipStyle.visibility = 'hidden'\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./hint.vue?vue&type=template&id=30581f31&scoped=true&\"\nimport script from \"./hint.vue?vue&type=script&lang=js&\"\nexport * from \"./hint.vue?vue&type=script&lang=js&\"\nimport style0 from \"./hint.vue?vue&type=style&index=0&id=30581f31&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30581f31\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextField.vue?vue&type=template&id=59fd41a8&scoped=true&\"\nimport script from \"./TextField.vue?vue&type=script&lang=js&\"\nexport * from \"./TextField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TextField.vue?vue&type=style&index=0&id=59fd41a8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59fd41a8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"db-uploader-container\",style:({ width: _vm.width })},[(_vm.type === 'small')?_c('change-db-icon',{on:{\"click\":_vm.browse}}):_vm._e(),(_vm.type === 'illustrated')?_c('div',{staticClass:\"drop-area-container\"},[_c('div',{staticClass:\"drop-area\",on:{\"dragover\":function($event){$event.preventDefault();_vm.state = 'dragover'},\"dragleave\":function($event){$event.preventDefault();_vm.state=''},\"drop\":function($event){$event.preventDefault();return _vm.drop($event)},\"click\":_vm.browse}},[_c('div',{staticClass:\"text\"},[_vm._v(\" Drop the database or CSV file here or click to choose a file from your computer. \")])])]):_vm._e(),(_vm.type === 'illustrated')?_c('div',{attrs:{\"id\":\"img-container\"}},[_c('img',{attrs:{\"id\":\"drop-file-top-img\",\"src\":require('@/assets/images/top.svg')}}),_c('img',{class:{'swing': _vm.state === 'dragover'},attrs:{\"id\":\"left-arm-img\",\"src\":require('@/assets/images/leftArm.svg')}}),_c('img',{ref:\"fileImg\",class:{\n 'swing': _vm.state === 'dragover',\n 'fly': _vm.state === 'dropping',\n 'hidden': _vm.state === 'dropped'\n },attrs:{\"id\":\"file-img\",\"src\":require('@/assets/images/file.png')}}),_c('img',{attrs:{\"id\":\"drop-file-bottom-img\",\"src\":require('@/assets/images/bottom.svg')}}),_c('img',{attrs:{\"id\":\"body-img\",\"src\":require('@/assets/images/body.svg')}}),_c('img',{class:{'swing': _vm.state === 'dragover'},attrs:{\"id\":\"right-arm-img\",\"src\":require('@/assets/images/rightArm.svg')}})]):_vm._e(),_c('div',{staticClass:\"error\",attrs:{\"id\":\"error\"}}),_c('csv-import',{ref:\"addCsv\",attrs:{\"file\":_vm.file,\"db\":_vm.newDb,\"dialog-name\":\"importFromCsv\"},on:{\"cancel\":_vm.cancelCsvImport,\"finish\":_vm.finish}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('svg',{staticClass:\"db-edit-icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M3 10.5V12.75C3 14.25 5.2875 15.54 8.25 15.75V13.5825L8.3475 13.5C5.34 13.32 3 12.045 3 10.5ZM9 9.75C5.685 9.75 3 8.4075 3 6.75V9C3 10.6575 5.685 12 9 12C9.2925 12 9.5775 12 9.87 12L12.75 9.09C11.55 9.54 10.2825 9.75 9 9.75ZM9 2.25C5.685 2.25 3 3.5925 3 5.25C3 6.9075 5.685 8.25 9 8.25C12.315 8.25 15 6.9075 15 5.25C15 3.5925 12.315 2.25 9 2.25ZM15.75 8.3475C15.6375 8.3475 15.5325 8.3925 15.4575 8.475L14.7075 9.225L16.245 10.725L16.995 9.975C17.1525 9.825 17.16 9.57 16.995 9.3975L16.065 8.475C15.99 8.3925 15.885 8.3475 15.78 8.3475H15.75ZM14.28 9.66L9.75 14.205V15.75H11.295L15.84 11.1975L14.28 9.66Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Load another database or CSV \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./changeDb.vue?vue&type=template&id=2c7f445c&scoped=true&\"\nimport script from \"./changeDb.vue?vue&type=script&lang=js&\"\nexport * from \"./changeDb.vue?vue&type=script&lang=js&\"\nimport style0 from \"./changeDb.vue?vue&type=style&index=0&id=2c7f445c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c7f445c\",\n null\n \n)\n\nexport default component.exports","import sqliteParser from 'sqlite-parser'\n\nexport default {\n * generateChunks (data, size) {\n const matrix = Object.keys(data).map(col => data[col])\n const [row] = matrix\n const transposedMatrix = row.map((value, column) => matrix.map(row => row[column]))\n\n const count = Math.ceil(transposedMatrix.length / size)\n\n for (let i = 0; i <= count - 1; i++) {\n const start = size * i\n const end = start + size\n yield transposedMatrix.slice(start, end)\n }\n },\n\n getInsertStmt (tabName, columns) {\n const colList = `\"${columns.join('\", \"')}\"`\n const params = columns.map(() => '?').join(', ')\n return `INSERT INTO \"${tabName}\" (${colList}) VALUES (${params});`\n },\n\n getCreateStatement (tabName, data) {\n let result = `CREATE table \"${tabName}\"(`\n for (const col in data) {\n // Get the first row of values to determine types\n const value = data[col][0]\n let type = ''\n switch (typeof value) {\n case 'number': {\n type = 'REAL'\n break\n }\n case 'boolean': {\n type = 'INTEGER'\n break\n }\n case 'string': {\n type = 'TEXT'\n break\n }\n default: type = 'TEXT'\n }\n result += `\"${col}\" ${type}, `\n }\n\n result = result.replace(/,\\s$/, ');')\n return result\n },\n\n getAst (sql) {\n // There is a bug is sqlite-parser\n // It throws an error if tokenizer has an arguments:\n // https://github.com/codeschool/sqlite-parser/issues/59\n const fixedSql = sql\n .replace(/(tokenize=[^,]+)\"tokenchars=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"remove_diacritics=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"separators=.+?\"/, '$1')\n .replace(/tokenize=.+?(,|\\))/, 'tokenize=unicode61$1')\n\n return sqliteParser(fixedSql)\n },\n\n /*\n * Return an array of columns with name and type. E.g.:\n * [\n * { name: 'id', type: 'INTEGER' },\n * { name: 'title', type: 'NVARCHAR(30)' },\n * ]\n */\n getColumns (sql) {\n const columns = []\n const ast = this.getAst(sql)\n\n const columnDefinition = ast.statement[0].format === 'table'\n ? ast.statement[0].definition\n : ast.statement[0].result.args.expression // virtual table\n\n columnDefinition.forEach(item => {\n if (item.variant === 'column' && ['identifier', 'definition'].includes(item.type)) {\n let type = item.datatype ? item.datatype.variant : 'N/A'\n if (item.datatype && item.datatype.args) {\n type = type + '(' + item.datatype.args.expression[0].value\n if (item.datatype.args.expression.length === 2) {\n type = type + ', ' + item.datatype.args.expression[1].value\n }\n type = type + ')'\n }\n columns.push({ name: item.name, type: type })\n }\n })\n return columns\n }\n}\n","export default function Worker_fn() {\n return new Worker(__webpack_public_path__ + \"js/_worker.c13cc3a9.worker.js\");\n}\n","import stms from './_statements'\nimport fu from '@/lib/utils/fileIo'\n// We can import workers like so because of worker-loader:\n// https://webpack.js.org/loaders/worker-loader/\nimport Worker from './_worker.js'\n\n// Use promise-worker in order to turn worker into the promise based one:\n// https://github.com/nolanlawson/promise-worker\nimport PromiseWorker from 'promise-worker'\n\nfunction getNewDatabase () {\n const worker = new Worker()\n return new Database(worker)\n}\n\nexport default {\n getNewDatabase\n}\n\nlet progressCounterIds = 0\nclass Database {\n constructor (worker) {\n this.dbName = null\n this.schema = null\n this.worker = worker\n this.pw = new PromiseWorker(worker)\n\n this.importProgresses = {}\n worker.addEventListener('message', e => {\n const progress = e.data.progress\n if (progress !== undefined) {\n const id = e.data.id\n this.importProgresses[id].dispatchEvent(new CustomEvent('progress', {\n detail: progress\n }))\n }\n })\n }\n\n shutDown () {\n this.worker.terminate()\n }\n\n createProgressCounter (callback) {\n const id = progressCounterIds++\n this.importProgresses[id] = new EventTarget()\n this.importProgresses[id].addEventListener('progress', e => { callback(e.detail) })\n return id\n }\n\n deleteProgressCounter (id) {\n delete this.importProgresses[id]\n }\n\n async addTableFromCsv (tabName, data, progressCounterId) {\n const result = await this.pw.postMessage({\n action: 'import',\n data,\n progressCounterId,\n tabName\n })\n\n if (result.error) {\n throw new Error(result.error)\n }\n this.dbName = this.dbName || 'database'\n this.refreshSchema()\n }\n\n async loadDb (file) {\n const fileContent = file ? await fu.readAsArrayBuffer(file) : null\n const res = await this.pw.postMessage({ action: 'open', buffer: fileContent })\n\n if (res.error) {\n throw new Error(res.error)\n }\n\n this.dbName = file ? fu.getFileName(file) : 'database'\n this.refreshSchema()\n }\n\n async refreshSchema () {\n const getSchemaSql = `\n SELECT name, sql\n FROM sqlite_master\n WHERE type='table' AND name NOT LIKE 'sqlite_%';\n `\n const result = await this.execute(getSchemaSql)\n // Parse DDL statements to get column names and types\n const parsedSchema = []\n if (result && result.name) {\n result.name.forEach((table, index) => {\n parsedSchema.push({\n name: table,\n columns: stms.getColumns(result.sql[index])\n })\n })\n }\n\n // Refresh schema\n this.schema = parsedSchema\n }\n\n async execute (commands) {\n await this.pw.postMessage({ action: 'reopen' })\n const results = await this.pw.postMessage({ action: 'exec', sql: commands })\n\n if (results.error) {\n throw new Error(results.error)\n }\n // if it was more than one select - take only the last one\n return results[results.length - 1]\n }\n\n async export (fileName) {\n const data = await this.pw.postMessage({ action: 'export' })\n\n if (data.error) {\n throw new Error(data.error)\n }\n fu.exportToFile(data, fileName)\n }\n\n async validateTableName (name) {\n if (name.startsWith('sqlite_')) {\n throw new Error(\"Table name can't start with sqlite_\")\n }\n\n if (/[^\\w]/.test(name)) {\n throw new Error('Table name can contain only letters, digits and underscores')\n }\n\n if (/^(\\d)/.test(name)) {\n throw new Error(\"Table name can't start with a digit\")\n }\n\n await this.execute(`BEGIN; CREATE TABLE \"${name}\"(id); ROLLBACK;`)\n }\n\n sanitizeTableName (tabName) {\n return tabName\n .replace(/[^\\w]/g, '_') // replace everything that is not letter, digit or _ with _\n .replace(/^(\\d)/, '_$1') // add _ at beginning if starts with digit\n .replace(/_{2,}/g, '_') // replace multiple _ with one _\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal',{attrs:{\"name\":_vm.dialogName,\"classes\":\"dialog\",\"height\":\"auto\",\"width\":\"80%\",\"scrollable\":\"\",\"clickToClose\":false}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" CSV import \"),_c('close-icon',{attrs:{\"disabled\":_vm.disableDialog},on:{\"click\":_vm.cancelCsvImport}})],1),_c('div',{staticClass:\"dialog-body\"},[_c('text-field',{attrs:{\"label\":\"Table name\",\"width\":\"484px\",\"disabled\":_vm.disableDialog,\"error-msg\":_vm.tableNameError,\"id\":\"csv-table-name\"},model:{value:(_vm.tableName),callback:function ($$v) {_vm.tableName=$$v},expression:\"tableName\"}}),_c('div',{staticClass:\"chars\"},[_c('delimiter-selector',{staticClass:\"char-input\",attrs:{\"width\":\"210px\",\"disabled\":_vm.disableDialog},on:{\"input\":_vm.previewCsv},model:{value:(_vm.delimiter),callback:function ($$v) {_vm.delimiter=$$v},expression:\"delimiter\"}}),_c('text-field',{staticClass:\"char-input\",attrs:{\"label\":\"Quote char\",\"hint\":\"The character used to quote fields.\",\"width\":\"93px\",\"disabled\":_vm.disableDialog,\"id\":\"quote-char\"},model:{value:(_vm.quoteChar),callback:function ($$v) {_vm.quoteChar=$$v},expression:\"quoteChar\"}}),_c('text-field',{staticClass:\"char-input\",attrs:{\"label\":\"Escape char\",\"hint\":\"The character used to escape the quote character within a field (e.g. \\\"column with \\\"\\\"quotes\\\"\\\" in text\\\").\",\"max-hint-width\":\"242px\",\"width\":\"93px\",\"disabled\":_vm.disableDialog,\"id\":\"escape-char\"},model:{value:(_vm.escapeChar),callback:function ($$v) {_vm.escapeChar=$$v},expression:\"escapeChar\"}})],1),_c('check-box',{attrs:{\"init\":true,\"label\":\"Use first row as column headers\",\"disabled\":_vm.disableDialog},on:{\"click\":function($event){_vm.header = $event}}}),(_vm.previewData\n && (_vm.previewData.rowCount > 0 || Object.keys(_vm.previewData).length > 0)\n )?_c('sql-table',{staticClass:\"preview-table\",attrs:{\"data-set\":_vm.previewData,\"preview\":true}}):_c('div',{staticClass:\"no-data\"},[_vm._v(\"No data\")]),_c('logs',{staticClass:\"import-csv-errors\",attrs:{\"messages\":_vm.importCsvMessages}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",attrs:{\"disabled\":_vm.disableDialog,\"id\":\"csv-cancel\"},on:{\"click\":_vm.cancelCsvImport}},[_vm._v(\" Cancel \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.importCsvCompleted),expression:\"!importCsvCompleted\"}],staticClass:\"primary\",attrs:{\"disabled\":_vm.disableDialog,\"id\":\"csv-import\"},on:{\"click\":function($event){return _vm.loadFromCsv(_vm.file)}}},[_vm._v(\" Import \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.importCsvCompleted),expression:\"importCsvCompleted\"}],staticClass:\"primary\",attrs:{\"disabled\":_vm.disableDialog,\"id\":\"csv-finish\"},on:{\"click\":_vm.finish}},[_vm._v(\" Finish \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Papa from 'papaparse'\n\nconst hintsByCode = {\n MissingQuotes: 'Edit your CSV so that the field has a closing quote char.',\n TooFewFields: 'Add fields or try another delimiter.',\n TooManyFields: 'Edit your CSV or try another delimiter.'\n}\n\nexport default {\n getResult (source) {\n const result = {}\n if (source.meta.fields) {\n source.meta.fields.forEach(col => {\n result[col.trim()] = source.data.map(row => {\n let value = row[col]\n if (value instanceof Date) {\n value = value.toISOString()\n }\n return value\n })\n })\n } else {\n for (let i = 0; i <= source.data[0].length - 1; i++) {\n result[`col${i + 1}`] = source.data.map(row => {\n let value = row[i]\n if (value instanceof Date) {\n value = value.toISOString()\n }\n return value\n })\n }\n }\n return result\n },\n\n parse (file, config = {}) {\n return new Promise((resolve, reject) => {\n const defaultConfig = {\n delimiter: '', // auto-detect\n newline: '', // auto-detect\n quoteChar: '\"',\n escapeChar: '\"',\n header: false,\n transformHeader: undefined,\n dynamicTyping: true,\n preview: 0,\n encoding: 'UTF-8',\n worker: true,\n comments: false,\n step: undefined,\n complete: results => {\n const res = {\n data: this.getResult(results),\n delimiter: results.meta.delimiter,\n hasErrors: false,\n rowCount: results.data.length\n }\n res.messages = results.errors.map(msg => {\n msg.type = msg.code === 'UndetectableDelimiter' ? 'info' : 'error'\n if (msg.type === 'error') res.hasErrors = true\n msg.hint = hintsByCode[msg.code]\n return msg\n })\n resolve(res)\n },\n error: (error, file) => {\n reject(error)\n },\n download: false,\n downloadRequestHeaders: undefined,\n downloadRequestBody: undefined,\n skipEmptyLines: 'greedy',\n chunk: undefined,\n chunkSize: undefined,\n fastMode: undefined,\n beforeFirstChunk: undefined,\n withCredentials: undefined,\n transform: undefined,\n delimitersToGuess: [',', '\\t', '|', ';', Papa.RECORD_SEP, Papa.UNIT_SEP]\n }\n\n Papa.parse(file, { ...defaultConfig, ...config })\n })\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['icon', {'disabled': _vm.disabled }],attrs:{\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 14 14\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('click')}}},[_c('path',{attrs:{\"d\":\"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./close.vue?vue&type=template&id=86f3a16c&scoped=true&\"\nimport script from \"./close.vue?vue&type=script&lang=js&\"\nexport * from \"./close.vue?vue&type=script&lang=js&\"\nimport style0 from \"./close.vue?vue&type=style&index=0&id=86f3a16c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"86f3a16c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ 'disabled': _vm.disabled }},[_c('div',{staticClass:\"text-field-label\"},[_vm._v(\"Delimiter\")]),_c('div',{staticClass:\"delimiter-selector-container\",style:({ width: _vm.width }),on:{\"click\":_vm.onContainerClick}},[_c('div',{staticClass:\"value\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],ref:\"delimiterInput\",class:{ 'filled': _vm.filled },attrs:{\"type\":\"text\",\"maxlength\":\"1\",\"disabled\":_vm.disabled},domProps:{\"value\":(_vm.inputValue)},on:{\"click\":function($event){$event.stopPropagation();},\"input\":function($event){if($event.target.composing){ return; }_vm.inputValue=$event.target.value}}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.getSymbolName(_vm.value)))])]),_c('div',{staticClass:\"controls\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('clear-icon',{attrs:{\"disabled\":_vm.disabled},nativeOn:{\"click\":function($event){return _vm.clear($event)}}}),_c('drop-down-chevron',{attrs:{\"disabled\":_vm.disabled},nativeOn:{\"click\":function($event){!_vm.disabled && (_vm.showOptions = !_vm.showOptions)}}})],1)]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showOptions),expression:\"showOptions\"}],staticClass:\"options\",style:({ width: _vm.width })},_vm._l((_vm.options),function(option,index){return _c('div',{key:index,staticClass:\"option\",on:{\"click\":function($event){return _vm.chooseOption(option)}}},[_c('pre',[_vm._v(_vm._s(option))]),_c('div',[_vm._v(_vm._s(_vm.getSymbolName(option)))])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n 0: { name: 'null character' },\n 1: { name: 'start of header' },\n 2: { name: 'start of text' },\n 3: { name: 'end of text' },\n 4: { name: 'end of transmission' },\n 5: { name: 'enquiry' },\n 6: { name: 'acknowledge' },\n 7: { name: 'bell (ring)' },\n 8: { name: 'backspace' },\n 9: { name: 'horizontal tab' },\n 10: { name: 'line feed' },\n 11: { name: 'vertical tab' },\n 12: { name: 'form feed' },\n 13: { name: 'carriage return' },\n 14: { name: 'shift out' },\n 15: { name: 'shift in' },\n 16: { name: 'data link escape' },\n 17: { name: 'device control 1' },\n 18: { name: 'device control 2' },\n 19: { name: 'device control 3' },\n 20: { name: 'device control 4' },\n 21: { name: 'negative acknowledge' },\n 22: { name: 'synchronize' },\n 23: { name: 'end transmission block' },\n 24: { name: 'cancel' },\n 25: { name: 'end of medium' },\n 26: { name: 'substitute' },\n 27: { name: 'escape' },\n 28: { name: 'file separator' },\n 29: { name: 'group separator' },\n 30: { name: 'record separator' },\n 31: { name: 'unit separator' },\n 32: { name: 'space' },\n 33: { name: 'exclamation mark' },\n 34: { name: 'quotation mark' },\n 35: { name: 'number sign' },\n 36: { name: 'dollar sign' },\n 37: { name: 'percent sign' },\n 38: { name: 'ampersand' },\n 39: { name: 'apostrophe' },\n 40: { name: 'left parenthesis' },\n 41: { name: 'right parenthesis' },\n 42: { name: 'asterisk' },\n 43: { name: 'plus sign' },\n 44: { name: 'comma' },\n 45: { name: 'hyphen' },\n 46: { name: 'period' },\n 47: { name: 'slash' },\n 48: { name: 'digit 0' },\n 49: { name: 'digit 1' },\n 50: { name: 'digit 2' },\n 51: { name: 'digit 3' },\n 52: { name: 'digit 4' },\n 53: { name: 'digit 5' },\n 54: { name: 'digit 6' },\n 55: { name: 'digit 7' },\n 56: { name: 'digit 8' },\n 57: { name: 'digit 9' },\n 58: { name: 'colon' },\n 59: { name: 'semicolon' },\n 60: { name: 'less-than' },\n 61: { name: 'equals-to' },\n 62: { name: 'greater-than' },\n 63: { name: 'question mark' },\n 64: { name: 'at sign' },\n 65: { name: 'uppercase A' },\n 66: { name: 'uppercase B' },\n 67: { name: 'uppercase C' },\n 68: { name: 'uppercase D' },\n 69: { name: 'uppercase E' },\n 70: { name: 'uppercase F' },\n 71: { name: 'uppercase G' },\n 72: { name: 'uppercase H' },\n 73: { name: 'uppercase I' },\n 74: { name: 'uppercase J' },\n 75: { name: 'uppercase K' },\n 76: { name: 'uppercase L' },\n 77: { name: 'uppercase M' },\n 78: { name: 'uppercase N' },\n 79: { name: 'uppercase O' },\n 80: { name: 'uppercase P' },\n 81: { name: 'uppercase Q' },\n 82: { name: 'uppercase R' },\n 83: { name: 'uppercase S' },\n 84: { name: 'uppercase T' },\n 85: { name: 'uppercase U' },\n 86: { name: 'uppercase V' },\n 87: { name: 'uppercase W' },\n 88: { name: 'uppercase X' },\n 89: { name: 'uppercase Y' },\n 90: { name: 'uppercase Z' },\n 91: { name: 'left square bracket' },\n 92: { name: 'backslash' },\n 93: { name: 'right square bracket' },\n 94: { name: 'caret' },\n 95: { name: 'underscore' },\n 96: { name: 'grave accent' },\n 97: { name: 'lowercase a' },\n 98: { name: 'lowercase b' },\n 99: { name: 'lowercase c' },\n 100: { name: 'lowercase d' },\n 101: { name: 'lowercase e' },\n 102: { name: 'lowercase f' },\n 103: { name: 'lowercase g' },\n 104: { name: 'lowercase h' },\n 105: { name: 'lowercase i' },\n 106: { name: 'lowercase j' },\n 107: { name: 'lowercase k' },\n 108: { name: 'lowercase l' },\n 109: { name: 'lowercase m' },\n 110: { name: 'lowercase n' },\n 111: { name: 'lowercase o' },\n 112: { name: 'lowercase p' },\n 113: { name: 'lowercase q' },\n 114: { name: 'lowercase r' },\n 115: { name: 'lowercase s' },\n 116: { name: 'lowercase t' },\n 117: { name: 'lowercase u' },\n 118: { name: 'lowercase v' },\n 119: { name: 'lowercase w' },\n 120: { name: 'lowercase x' },\n 121: { name: 'lowercase y' },\n 122: { name: 'lowercase z' },\n 123: { name: 'left curly brace' },\n 124: { name: 'vertical bar' },\n 125: { name: 'right curly brace' },\n 126: { name: 'tilde' },\n 127: { name: 'delete (rubout)' }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['chevron-icon', {'disabled': _vm.disabled}],attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M6.175 7.15002L10 10.975L13.825 7.15002L15 8.33336L10 13.3334L5 8.33336L6.175 7.15002Z\",\"fill\":\"#C8D4E3\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./dropDownChevron.vue?vue&type=template&id=29bdb7bf&scoped=true&\"\nimport script from \"./dropDownChevron.vue?vue&type=script&lang=js&\"\nexport * from \"./dropDownChevron.vue?vue&type=script&lang=js&\"\nimport style0 from \"./dropDownChevron.vue?vue&type=style&index=0&id=29bdb7bf&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29bdb7bf\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['clear-icon', {'disabled': _vm.disabled}],attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M14.3481 14.849C13.8791 15.318 13.1191 15.318 12.6511 14.849L10.0001 11.819L7.34907 14.848C6.88007 15.317 6.12007 15.317 5.65207 14.848C5.18307 14.379 5.18307 13.619 5.65207 13.151L8.41007 10.001L5.65107 6.84898C5.18207 6.37998 5.18207 5.62098 5.65107 5.15198C6.12007 4.68298 6.87907 4.68298 7.34807 5.15198L10.0001 8.18298L12.6511 5.15198C13.1201 4.68298 13.8791 4.68298 14.3481 5.15198C14.8171 5.62098 14.8171 6.38098 14.3481 6.84898L11.5901 10.001L14.3481 13.151C14.8171 13.62 14.8171 14.38 14.3481 14.849V14.849Z\",\"fill\":\"#C8D4E3\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./clear.vue?vue&type=template&id=69060e4e&scoped=true&\"\nimport script from \"./clear.vue?vue&type=script&lang=js&\"\nexport * from \"./clear.vue?vue&type=script&lang=js&\"\nimport style0 from \"./clear.vue?vue&type=style&index=0&id=69060e4e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69060e4e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=44b0b048&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=44b0b048&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44b0b048\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['checkbox-container', { 'checked': _vm.checked }, {'disabled': _vm.disabled}],on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.checked),expression:\"!checked\"}],staticClass:\"unchecked\"}),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.checked && !_vm.disabled),expression:\"checked && !disabled\"}],attrs:{\"src\":_vm.theme === 'light'\n ? require('@/assets/images/checkbox_checked_light.svg')\n : require('@/assets/images/checkbox_checked.svg')}}),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.checked && _vm.disabled),expression:\"checked && disabled\"}],attrs:{\"src\":require('@/assets/images/checkbox_checked_disabled.svg')}}),(_vm.label)?_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.label))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckBox.vue?vue&type=template&id=0dd86013&scoped=true&\"\nimport script from \"./CheckBox.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckBox.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CheckBox.vue?vue&type=style&index=0&id=0dd86013&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0dd86013\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"rounded-bg\"},[_c('div',{ref:\"header-container\",staticClass:\"header-container\"},[_c('div',_vm._l((_vm.header),function(th,index){return _c('div',{key:index,staticClass:\"fixed-header\",style:({ width: ((th.width) + \"px\") })},[_vm._v(\" \"+_vm._s(th.name)+\" \")])}),0)]),_c('div',{ref:\"table-container\",staticClass:\"table-container\",on:{\"scroll\":_vm.onScrollTable}},[_c('table',{ref:\"table\",staticClass:\"sqliteviz-table\"},[_c('thead',[_c('tr',_vm._l((_vm.columns),function(th,index){return _c('th',{key:index,ref:\"th\",refInFor:true},[_c('div',{staticClass:\"cell-data\",style:(_vm.cellStyle)},[_vm._v(_vm._s(th))])])}),0)]),_c('tbody',_vm._l((_vm.currentPageData.count),function(rowIndex){return _c('tr',{key:rowIndex},_vm._l((_vm.columns),function(col,colIndex){return _c('td',{key:colIndex},[_c('div',{staticClass:\"cell-data\",style:(_vm.cellStyle)},[_vm._v(\" \"+_vm._s(_vm.dataSet[col][rowIndex - 1 + _vm.currentPageData.start])+\" \")])])}),0)}),0)])])]),_c('div',{staticClass:\"table-footer\"},[_c('div',{staticClass:\"table-footer-count\"},[_vm._v(\" \"+_vm._s(_vm.rowCount)+\" \"+_vm._s(_vm.rowCount === 1 ? 'row' : 'rows')+\" retrieved \"),(_vm.preview)?_c('span',[_vm._v(\"for preview\")]):_vm._e(),(_vm.time)?_c('span',[_vm._v(\"in \"+_vm._s(_vm.time))]):_vm._e()]),_c('pager',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pageCount > 1),expression:\"pageCount > 1\"}],attrs:{\"page-count\":_vm.pageCount},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('paginate',{attrs:{\"page-count\":_vm.pageCount,\"page-range\":5,\"margin-pages\":1,\"prev-text\":_vm.chevron,\"next-text\":_vm.chevron,\"no-li-surround\":true,\"container-class\":\"paginator-continer\",\"page-link-class\":\"paginator-page-link\",\"active-class\":\"paginator-active-page\",\"break-view-link-class\":\"paginator-break\",\"next-link-class\":\"paginator-next\",\"prev-link-class\":\"paginator-prev\",\"disabled-class\":\"paginator-disabled\"},model:{value:(_vm.page),callback:function ($$v) {_vm.page=$$v},expression:\"page\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pager.vue?vue&type=template&id=658886c7&scoped=true&\"\nimport script from \"./Pager.vue?vue&type=script&lang=js&\"\nexport * from \"./Pager.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Pager.vue?vue&type=style&index=0&id=658886c7&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"658886c7\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=115cb541&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"115cb541\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"logsContainer\",staticClass:\"logs-container\"},_vm._l((_vm.messages),function(msg,index){return _c('div',{key:index,staticClass:\"msg\"},[(msg.type === 'error')?_c('img',{attrs:{\"src\":require('@/assets/images/error.svg')}}):_vm._e(),(msg.type === 'info')?_c('img',{attrs:{\"src\":require('@/assets/images/info.svg'),\"width\":\"20px\"}}):_vm._e(),(msg.type === 'success')?_c('img',{attrs:{\"src\":require('@/assets/images/success.svg')}}):_vm._e(),(msg.type === 'loading')?_c('loading-indicator',{attrs:{\"progress\":msg.progress}}):_vm._e(),_c('span',{staticClass:\"msg-text\"},[_vm._v(_vm._s(_vm.serializeMessage(msg)))])],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:_vm.animationClass,attrs:{\"height\":_vm.size,\"width\":_vm.size,\"viewBox\":(\"0 0 \" + _vm.size + \" \" + _vm.size)}},[_c('circle',{staticClass:\"loader-svg bg\",style:({ strokeWidth: _vm.strokeWidth }),attrs:{\"cx\":_vm.size / 2,\"cy\":_vm.size / 2,\"r\":_vm.radius}}),_c('circle',{staticClass:\"loader-svg front\",style:({ strokeDasharray: _vm.circleProgress, strokeDashoffset: _vm.offset, strokeWidth: _vm.strokeWidth }),attrs:{\"cx\":_vm.size / 2,\"cy\":_vm.size / 2,\"r\":_vm.radius}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoadingIndicator.vue?vue&type=template&id=62096452&scoped=true&\"\nimport script from \"./LoadingIndicator.vue?vue&type=script&lang=js&\"\nexport * from \"./LoadingIndicator.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoadingIndicator.vue?vue&type=style&index=0&id=62096452&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62096452\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logs.vue?vue&type=template&id=1c9f27dc&scoped=true&\"\nimport script from \"./Logs.vue?vue&type=script&lang=js&\"\nexport * from \"./Logs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Logs.vue?vue&type=style&index=0&id=1c9f27dc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1c9f27dc\",\n null\n \n)\n\nexport default component.exports","export default {\n getPeriod (start, end) {\n const diff = end.getTime() - start.getTime()\n const seconds = diff / 1000\n return seconds.toFixed(3) + 's'\n },\n\n debounce (func, ms) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(() => func.apply(this, arguments), ms)\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=68ef9d6c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=68ef9d6c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68ef9d6c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DbUploader.vue?vue&type=template&id=eefa30c0&scoped=true&\"\nimport script from \"./DbUploader.vue?vue&type=script&lang=js&\"\nexport * from \"./DbUploader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DbUploader.vue?vue&type=style&index=0&id=eefa30c0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eefa30c0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":function($event){return _vm.showTooltip($event, _vm.tooltipPosition)},\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M10.5 1.5H4.5C3.675 1.5 3 2.175 3 3V15C3 15.825 3.675 16.5 4.5 16.5H13.5C14.325 16.5 15 15.825 15 15V6L10.5 1.5ZM13.5 15H4.5V3H9.75V6.75H13.5V15ZM12 8.25V13.575L10.425 12L8.325 14.1L6.225 12L8.325 9.9L6.675 8.25H12Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" \"+_vm._s(_vm.tooltip)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./export.vue?vue&type=template&id=15bea4a0&scoped=true&\"\nimport script from \"./export.vue?vue&type=script&lang=js&\"\nexport * from \"./export.vue?vue&type=script&lang=js&\"\nimport style0 from \"./export.vue?vue&type=style&index=0&id=15bea4a0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15bea4a0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('g',{attrs:{\"clip-path\":\"url(#clip0)\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"\\n M13.6573 1.5H2.59985C1.77485 1.5 1.09985 2.175 1.09985 3V13.6649C1.09985 14.4899\\n 1.77485 15.1649 2.59985\\n 15.1649H9.84V13.6649H8.87866V9.08244H13.6573V9.83777H15.1573V3C15.1573\\n 2.17 14.4873 1.5 13.6573 1.5ZM13.6573\\n 7.58244V3H8.87866V7.58244H13.6573ZM7.37866 3H2.59985V7.58244H7.37866V3ZM2.59985\\n 9.08244V13.6649H7.37866V9.08244H2.59985ZM13.1702\\n 10.8434H15.6702V13.1717H18.0001V15.6717H15.6702V18H13.1702V15.6717H10.8401V13.1717H13.1702V10.8434Z\\n \",\"fill\":\"#A2B1C6\"}})]),_c('defs',[_c('clipPath',{attrs:{\"id\":\"clip0\"}},[_c('rect',{attrs:{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\"}})])])]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Add new table from CSV \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./addTable.vue?vue&type=template&id=0b825a18&scoped=true&\"\nimport script from \"./addTable.vue?vue&type=script&lang=js&\"\nexport * from \"./addTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./addTable.vue?vue&type=style&index=0&id=0b825a18&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b825a18\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3fcc3d82&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3fcc3d82&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fcc3d82\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"tabs\"}},[(_vm.tabs.length > 0)?_c('div',{attrs:{\"id\":\"tabs-header\"}},_vm._l((_vm.tabs),function(tab,index){return _c('div',{key:index,class:[{'tab-selected': (tab.id === _vm.selectedIndex)}, 'tab'],on:{\"click\":function($event){return _vm.selectTab(tab.id)}}},[_c('div',{staticClass:\"tab-name\"},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!tab.isSaved),expression:\"!tab.isSaved\"}],staticClass:\"star\"},[_vm._v(\"*\")]),(tab.name)?_c('span',[_vm._v(_vm._s(tab.name))]):_c('span',{staticClass:\"tab-untitled\"},[_vm._v(_vm._s(tab.tempName))])]),_c('div',[_c('close-icon',{staticClass:\"close-icon\",attrs:{\"size\":10},on:{\"click\":function($event){return _vm.beforeCloseTab(index)}}})],1)])}),0):_vm._e(),_vm._l((_vm.tabs),function(tab,index){return _c('tab',{key:tab.id,attrs:{\"id\":tab.id,\"init-name\":tab.name,\"init-query\":tab.query,\"init-view-options\":tab.viewOptions,\"init-view-type\":tab.viewType,\"is-predefined\":tab.isPredefined,\"tab-index\":index}})}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.tabs.length === 0),expression:\"tabs.length === 0\"}],attrs:{\"id\":\"start-guide\"}},[_c('span',{staticClass:\"link\",on:{\"click\":function($event){return _vm.$root.$emit('createNewInquiry')}}},[_vm._v(\"Create\")]),_vm._v(\" new inquiry from scratch or open one from \"),_c('router-link',{staticClass:\"link\",attrs:{\"to\":\"/inquiries\"}},[_vm._v(\"Inquiries\")])],1),_c('modal',{attrs:{\"name\":\"close-warn\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Close tab \"+_vm._s(_vm.closingTabIndex !== null ? (_vm.tabs[_vm.closingTabIndex].name || (\"[\" + (_vm.tabs[_vm.closingTabIndex].tempName) + \"]\")) : '')+\" \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('close-warn')}}})],1),_c('div',{staticClass:\"dialog-body\"},[_vm._v(\" You have unsaved changes. Save changes in \"+_vm._s(_vm.closingTabIndex !== null ? (_vm.tabs[_vm.closingTabIndex].name || (\"[\" + (_vm.tabs[_vm.closingTabIndex].tempName) + \"]\")) : '')+\" before closing? \")]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.closeTab(_vm.closingTabIndex)}}},[_vm._v(\" Close without saving \")]),_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.$modal.hide('close-warn')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":function($event){return _vm.saveAndClose(_vm.closingTabIndex)}}},[_vm._v(\"Save and close\")])])])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isActive),expression:\"isActive\"}],staticClass:\"tab-content-container\"},[_c('splitpanes',{staticClass:\"query-results-splitter\",attrs:{\"horizontal\":\"\",\"before\":{ size: 50, max: 100 },\"after\":{ size: 50, max: 100 }},scopedSlots:_vm._u([{key:\"left-pane\",fn:function(){return [_c('div',{staticClass:\"above\",attrs:{\"id\":'above-' + _vm.tabIndex}})]},proxy:true},{key:\"right-pane\",fn:function(){return [_c('div',{ref:\"bottomPane\",staticClass:\"bottomPane\",attrs:{\"id\":'bottom-'+ _vm.tabIndex}})]},proxy:true}])}),_c('div',{staticClass:\"hidden-part\",attrs:{\"id\":'hidden-'+ _vm.tabIndex}}),_c('teleport',{attrs:{\"to\":(\"#\" + (_vm.layout.sqlEditor) + \"-\" + _vm.tabIndex)}},[_c('sql-editor',{ref:\"sqlEditor\",attrs:{\"is-getting-results\":_vm.isGettingResults},on:{\"switchTo\":function($event){return _vm.onSwitchView('sqlEditor', $event)},\"run\":_vm.execute},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1),_c('teleport',{attrs:{\"to\":(\"#\" + (_vm.layout.table) + \"-\" + _vm.tabIndex)}},[_c('run-result',{attrs:{\"result\":_vm.result,\"is-getting-results\":_vm.isGettingResults,\"error\":_vm.error,\"time\":_vm.time},on:{\"switchTo\":function($event){return _vm.onSwitchView('table', $event)}}})],1),_c('teleport',{attrs:{\"to\":(\"#\" + (_vm.layout.dataView) + \"-\" + _vm.tabIndex)}},[_c('data-view',{ref:\"dataView\",attrs:{\"data-source\":_vm.result,\"init-options\":_vm.initViewOptions,\"init-mode\":_vm.initViewType},on:{\"switchTo\":function($event){return _vm.onSwitchView('dataView', $event)},\"update\":_vm.onDataViewUpdate}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sql-editor-panel\"},[_c('div',{staticClass:\"codemirror-container\"},[_c('codemirror',{ref:\"cm\",attrs:{\"options\":_vm.cmOptions},on:{\"changes\":_vm.onChange},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1),_c('side-tool-bar',{attrs:{\"panel\":\"sqlEditor\"},on:{\"switchTo\":function($event){return _vm.$emit('switchTo', $event)}}},[_c('icon-button',{attrs:{\"disabled\":_vm.runDisabled,\"loading\":_vm.isGettingResults,\"tooltip\":\"Run SQL query\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){return _vm.$emit('run')}}},[_c('run-icon',{attrs:{\"disabled\":_vm.runDisabled}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n tabs: [],\n currentTab: null,\n currentTabId: null,\n untitledLastIndex: 0,\n predefinedInquiries: [],\n db: null\n}\n","import Vue from 'vue'\n\nexport default {\n setDb (state, db) {\n if (state.db) {\n state.db.shutDown()\n }\n state.db = db\n },\n\n updateTab (state, { index, name, id, query, viewType, viewOptions, isSaved }) {\n const tab = state.tabs[index]\n const oldId = tab.id\n\n if (id && state.currentTabId === oldId) {\n state.currentTabId = id\n }\n\n if (id) { tab.id = id }\n if (name) { tab.name = name }\n if (query) { tab.query = query }\n if (viewType) { tab.viewType = viewType }\n if (viewOptions) { tab.viewOptions = viewOptions }\n if (isSaved !== undefined) { tab.isSaved = isSaved }\n if (isSaved) {\n // Saved inquiry is not predefined\n delete tab.isPredefined\n }\n\n Vue.set(state.tabs, index, tab)\n },\n\n deleteTab (state, index) {\n // If closing tab is the current opened\n if (state.tabs[index].id === state.currentTabId) {\n if (index < state.tabs.length - 1) {\n state.currentTabId = state.tabs[index + 1].id\n } else if (index > 0) {\n state.currentTabId = state.tabs[index - 1].id\n } else {\n state.currentTabId = null\n state.currentTab = null\n state.untitledLastIndex = 0\n }\n }\n state.tabs.splice(index, 1)\n },\n setCurrentTabId (state, id) {\n state.currentTabId = id\n },\n setCurrentTab (state, tab) {\n state.currentTab = tab\n },\n updatePredefinedInquiries (state, inquiries) {\n state.predefinedInquiries = Array.isArray(inquiries) ? inquiries : [inquiries]\n }\n}\n","import { nanoid } from 'nanoid'\n\nexport default {\n async addTab ({ state }, data) {\n const tab = data ? JSON.parse(JSON.stringify(data)) : {}\n // If no data then create a new blank one...\n // No data.id means to create new tab, but not blank,\n // e.g. with 'select * from csv_import' inquiry after csv import\n if (!data || !data.id) {\n tab.id = nanoid()\n tab.name = null\n tab.tempName = state.untitledLastIndex\n ? `Untitled ${state.untitledLastIndex}`\n : 'Untitled'\n tab.viewType = 'chart'\n tab.viewOptions = undefined\n tab.isSaved = false\n } else {\n tab.isSaved = true\n }\n\n // add new tab only if was not already opened\n if (!state.tabs.some(openedTab => openedTab.id === tab.id)) {\n state.tabs.push(tab)\n if (!tab.name) {\n state.untitledLastIndex += 1\n }\n }\n\n return tab.id\n }\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport state from '@/store/state'\nimport mutations from '@/store/mutations'\nimport actions from '@/store/actions'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state,\n mutations,\n actions\n})\n","import CM from 'codemirror'\nimport 'codemirror/addon/hint/show-hint.js'\nimport 'codemirror/addon/hint/sql-hint.js'\nimport store from '@/store'\n\nexport function getHints (cm, options) {\n const token = cm.getTokenAt(cm.getCursor()).string.toUpperCase()\n const result = CM.hint.sql(cm, options)\n // Don't show the hint if there is only one option\n // and the token is already completed with this option\n if (result.list.length === 1 && result.list[0].text.toUpperCase() === token) {\n result.list = []\n }\n return result\n}\n\nconst hintOptions = {\n get tables () {\n const tables = {}\n if (store.state.db.schema) {\n store.state.db.schema.forEach(table => {\n tables[table.name] = table.columns.map(column => column.name)\n })\n }\n return tables\n },\n get defaultTable () {\n const schema = store.state.db.schema\n return schema && schema.length === 1 ? schema[0].name : null\n },\n completeSingle: false,\n completeOnSingleClick: true,\n alignWithWord: false\n}\n\nexport function showHintOnDemand (editor) {\n CM.showHint(editor, getHints, hintOptions)\n}\n\nexport default function showHint (editor) {\n // Don't show autocomplete after a space or semicolon or in string literals\n const token = editor.getTokenAt(editor.getCursor())\n const ch = token.string.slice(-1)\n const tokenType = token.type\n if (tokenType === 'string' || !ch || ch === ' ' || ch === ';') {\n return\n }\n\n CM.showHint(editor, getHints, hintOptions)\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"side-tool-bar\"},[_c('icon-button',{attrs:{\"active\":_vm.panel === 'sqlEditor',\"tooltip\":\"Switch panel to SQL editor\",\"tooltip-position\":\"top-left\"},nativeOn:{\"click\":function($event){return _vm.$emit('switchTo', 'sqlEditor')}}},[_c('sql-editor-icon')],1),_c('icon-button',{attrs:{\"active\":_vm.panel === 'table',\"tooltip\":\"Switch panel to result set\",\"tooltip-position\":\"top-left\"},nativeOn:{\"click\":function($event){return _vm.$emit('switchTo', 'table')}}},[_c('table-icon')],1),_c('icon-button',{attrs:{\"active\":_vm.panel === 'dataView',\"tooltip\":\"Switch panel to data view\",\"tooltip-position\":\"top-left\"},nativeOn:{\"click\":function($event){return _vm.$emit('switchTo', 'dataView')}}},[_c('data-view-icon')],1),(_vm.$slots.default)?_c('div',{staticClass:\"side-tool-bar-divider\"}):_vm._e(),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['icon-btn', { active: _vm.active }, { disabled: _vm.disabled }],on:{\"click\":_vm.onClick,\"mouseenter\":function($event){return _vm.showTooltip($event, _vm.tooltipPosition)},\"mouseleave\":_vm.hideTooltip}},[_c('div',{staticClass:\"icon\"},[_vm._t(\"default\")],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"icon-in-progress\"},[_c('loading-indicator')],1),(_vm.tooltip)?_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" \"+_vm._s(_vm.tooltip)+\" \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./IconButton.vue?vue&type=template&id=0c2b486e&scoped=true&\"\nimport script from \"./IconButton.vue?vue&type=script&lang=js&\"\nexport * from \"./IconButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./IconButton.vue?vue&type=style&index=0&id=0c2b486e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c2b486e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M14.5 2.16512L3.5 2.16999C2.675 2.16999 2 2.84499 2 3.66999V14.3349C2 15.1599 2.675 15.8349 3.5 15.8349L14.5 15.83C15.3327 15.83 16 15.1551 16 14.33V3.66512C16 2.83511 15.33 2.16512 14.5 2.16512ZM14.5014 3.66512L3.49878 3.66999V14.33L14.5014 14.3251V3.66512Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M6.27319 14.7069L6.27319 3.32135L7.77319 3.32135L7.77319 14.7069L6.27319 14.7069Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M10.2639 14.6932L10.2639 3.30772L11.7639 3.30772L11.7639 14.6932L10.2639 14.6932Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M15.5108 7.48325H2.4895V5.98325H15.5108V7.48325Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M15.5108 11.6056H2.4895V10.1056H15.5108V11.6056Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./table.vue?vue&type=template&id=66df4be4&\"\nimport script from \"./table.vue?vue&type=script&lang=js&\"\nexport * from \"./table.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"19\",\"viewBox\":\"0 0 18 19\",\"fill\":\"none\"}},[_c('g',{attrs:{\"clip-path\":\"url(#clip0)\"}},[_c('path',{attrs:{\"d\":\"M4.5 1.51343H10.5L15 6.01343V8.45284H13.5V6.76343H9.75V3.01343H4.5V8.45284H3V3.01343C3 2.18843 3.675 1.51343 4.5 1.51343Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M4.28369 14.8127C4.28369 14.5872 4.20312 14.4114 4.04199 14.2854C3.88379 14.1594 3.604 14.0291 3.20264 13.8943C2.80127 13.7595 2.47314 13.6292 2.21826 13.5032C1.38916 13.0959 0.974609 12.5364 0.974609 11.8245C0.974609 11.47 1.07715 11.158 1.28223 10.8884C1.49023 10.616 1.7832 10.405 2.16113 10.2556C2.53906 10.1033 2.96387 10.0271 3.43555 10.0271C3.89551 10.0271 4.30713 10.1091 4.67041 10.2732C5.03662 10.4373 5.3208 10.6716 5.52295 10.9763C5.7251 11.2781 5.82617 11.6238 5.82617 12.0134H4.28809C4.28809 11.7527 4.20752 11.5505 4.04639 11.407C3.88818 11.2634 3.67285 11.1917 3.40039 11.1917C3.125 11.1917 2.90674 11.2532 2.74561 11.3762C2.5874 11.4963 2.5083 11.6501 2.5083 11.8376C2.5083 12.0017 2.59619 12.1511 2.77197 12.2859C2.94775 12.4177 3.25684 12.5554 3.69922 12.699C4.1416 12.8396 4.50488 12.9919 4.78906 13.156C5.48047 13.5544 5.82617 14.1038 5.82617 14.804C5.82617 15.3635 5.61523 15.803 5.19336 16.1223C4.77148 16.4417 4.19287 16.6013 3.45752 16.6013C2.93896 16.6013 2.46875 16.509 2.04688 16.3245C1.62793 16.137 1.31152 15.8821 1.09766 15.5598C0.886719 15.2346 0.78125 14.8611 0.78125 14.4392H2.32812C2.32812 14.782 2.41602 15.0354 2.5918 15.1995C2.77051 15.3606 3.05908 15.4412 3.45752 15.4412C3.7124 15.4412 3.91309 15.387 4.05957 15.2786C4.20898 15.1672 4.28369 15.012 4.28369 14.8127ZM12.0444 13.446C12.0444 14.0378 11.9463 14.5549 11.75 14.9973C11.5537 15.4368 11.2827 15.7898 10.937 16.0564L11.9697 16.8738L11.0161 17.6824L9.64062 16.575C9.51172 16.5925 9.38281 16.6013 9.25391 16.6013C8.70898 16.6013 8.22559 16.4753 7.80371 16.2234C7.38184 15.9714 7.05225 15.6111 6.81494 15.1423C6.58057 14.6736 6.45898 14.1345 6.4502 13.5251V13.1868C6.4502 12.5569 6.56445 12.0032 6.79297 11.5256C7.02441 11.0481 7.35254 10.679 7.77734 10.4182C8.20508 10.1575 8.69434 10.0271 9.24512 10.0271C9.78711 10.0271 10.2705 10.156 10.6953 10.4138C11.1201 10.6716 11.4497 11.0393 11.6841 11.5168C11.9214 11.9915 12.0415 12.5364 12.0444 13.1516V13.446ZM10.4756 13.178C10.4756 12.5422 10.3687 12.0603 10.1548 11.7322C9.94385 11.4011 9.64062 11.2356 9.24512 11.2356C8.83789 11.2356 8.53174 11.3982 8.32666 11.7234C8.12158 12.0486 8.01758 12.5247 8.01465 13.1516V13.446C8.01465 14.0759 8.11865 14.5593 8.32666 14.8962C8.53467 15.2302 8.84375 15.3972 9.25391 15.3972C9.64648 15.3972 9.94678 15.2317 10.1548 14.9006C10.3657 14.5696 10.4727 14.0935 10.4756 13.4724V13.178ZM14.3735 15.3269H17.0586V16.5134H12.8311V10.115H14.3735V15.3269Z\",\"fill\":\"#A2B1C6\"}})]),_c('defs',[_c('clipPath',{attrs:{\"id\":\"clip0\"}},[_c('rect',{attrs:{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\",\"transform\":\"translate(0 0.0134277)\"}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sqlEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sqlEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./sqlEditor.vue?vue&type=template&id=56d6f4f2&\"\nimport script from \"./sqlEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./sqlEditor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M13.5552 6.91522C13.7584 6.91357 13.9535 6.99442 14.096 7.13926L17.2582 10.3541C17.5486 10.6494 17.5447 11.1242 17.2494 11.4147C16.9541 11.7051 16.4793 11.7012 16.1888 11.4059L13.57 8.74357L9.29577 13.2318C9.01977 13.5216 8.56484 13.5436 8.2621 13.2819L5.35435 10.7677L2.03285 13.7321C1.72382 14.0079 1.24971 13.981 0.973901 13.6719C0.69809 13.3629 0.725022 12.8888 1.03406 12.613L4.8471 9.20986C5.12827 8.95892 5.55198 8.95559 5.83705 9.20208L8.70249 11.6797L13.0182 7.14796C13.1583 7.00084 13.3521 6.91686 13.5552 6.91522Z\",\"fill\":\"#A2B1C6\"}}),_c('circle',{attrs:{\"cx\":\"5.50049\",\"cy\":\"6.00339\",\"r\":\"1.5\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M16.036 1.21788L1.96546 1.213C1.14046 1.213 0.465462 1.888 0.465462 2.713L0.464111 15.2821C0.464111 16.1071 1.13911 16.7821 1.96411 16.7821L16.0347 16.787C16.8674 16.787 17.5347 16.1121 17.5347 15.287L17.536 2.71788C17.536 1.88787 16.866 1.21788 16.036 1.21788ZM16.0374 2.71788L1.96424 2.713L1.96289 15.2773L16.036 15.2821L16.0374 2.71788Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./dataView.vue?vue&type=template&id=8c6d3ebe&\"\nimport script from \"./dataView.vue?vue&type=script&lang=js&\"\nexport * from \"./dataView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SideToolBar.vue?vue&type=template&id=3b6366bb&scoped=true&\"\nimport script from \"./SideToolBar.vue?vue&type=script&lang=js&\"\nexport * from \"./SideToolBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SideToolBar.vue?vue&type=style&index=0&id=3b6366bb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3b6366bb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"12\",\"height\":\"13\",\"viewBox\":\"0 0 12 13\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M11.1624 6.94358L0.770043 12.9436L0.770043 0.943573L11.1624 6.94358Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./run.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./run.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./run.vue?vue&type=template&id=6d9e3fdd&\"\nimport script from \"./run.vue?vue&type=script&lang=js&\"\nexport * from \"./run.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c84dd870&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=c84dd870&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c84dd870\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"data-view-panel\"},[_c('div',{staticClass:\"data-view-panel-content\"},[_c(_vm.mode,{ref:\"viewComponent\",tag:\"component\",attrs:{\"init-options\":_vm.mode === _vm.initMode ? _vm.initOptions : undefined,\"data-sources\":_vm.dataSource,\"import-to-png-enabled\":_vm.importToPngEnabled},on:{\"update:importToPngEnabled\":function($event){_vm.importToPngEnabled=$event},\"update:import-to-png-enabled\":function($event){_vm.importToPngEnabled=$event},\"loadingImageCompleted\":function($event){_vm.loadingImage = false},\"update\":function($event){return _vm.$emit('update')}}})],1),_c('side-tool-bar',{attrs:{\"panel\":\"dataView\"},on:{\"switchTo\":function($event){return _vm.$emit('switchTo', $event)}}},[_c('icon-button',{attrs:{\"active\":_vm.mode === 'chart',\"tooltip\":\"Switch to chart\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){_vm.mode = 'chart'}}},[_c('chart-icon')],1),_c('icon-button',{attrs:{\"active\":_vm.mode === 'pivot',\"tooltip\":\"Switch to pivot\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){_vm.mode = 'pivot'}}},[_c('pivot-icon')],1),_c('div',{staticClass:\"side-tool-bar-divider\"}),_c('icon-button',{attrs:{\"disabled\":!_vm.importToPngEnabled || _vm.loadingImage,\"loading\":_vm.loadingImage,\"tooltip\":\"Save as PNG image\",\"tooltip-position\":\"top-left\"},on:{\"click\":_vm.saveAsPng}},[_c('png-icon')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],ref:\"chartContainer\",staticClass:\"chart-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.dataSources && _vm.visible),expression:\"!dataSources && visible\"}],staticClass:\"warning chart-warning\"},[_vm._v(\" There is no data to build a chart. Run your SQL query and make sure the result is not empty. \")]),_c('PlotlyEditor',{ref:\"plotlyEditor\",staticClass:\"chart\",style:({ height: !_vm.dataSources ? 'calc(100% - 40px)' : '100%' }),attrs:{\"data\":_vm.state.data,\"layout\":_vm.state.layout,\"frames\":_vm.state.frames,\"config\":{ editable: true, displaylogo: false, modeBarButtonsToRemove: ['toImage'] },\"dataSources\":_vm.dataSources,\"dataSourceOptions\":_vm.dataSourceOptions,\"plotly\":_vm.plotly,\"useResizeHandler\":true,\"debug\":true,\"advancedTraceTypeSelector\":true},on:{\"onUpdate\":_vm.update,\"onRender\":_vm.onRender}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import dereference from 'react-chart-editor/lib/lib/dereference'\n\nexport function getOptionsFromDataSources (dataSources) {\n if (!dataSources) {\n return []\n }\n\n return Object.keys(dataSources).map(name => ({\n value: name,\n label: name\n }))\n}\n\nexport function getOptionsForSave (state, dataSources) {\n // we don't need to save the data, only settings\n // so we modify state.data using dereference\n const stateCopy = JSON.parse(JSON.stringify(state))\n const emptySources = {}\n for (const key in dataSources) {\n emptySources[key] = []\n }\n dereference(stateCopy.data, emptySources)\n return stateCopy\n}\n\nexport default {\n getOptionsFromDataSources,\n getOptionsForSave\n}\n","\n\n\n\n\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=31be4117&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=31be4117&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31be4117\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pivot-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.dataSources),expression:\"!dataSources\"}],staticClass:\"warning pivot-warning\"},[_vm._v(\" There is no data to build a pivot. Run your SQL query and make sure the result is not empty. \")]),_c('pivot-ui',{attrs:{\"key-names\":_vm.columns},on:{\"update\":function($event){return _vm.$emit('update')},\"loadingCustomChartImageCompleted\":function($event){return _vm.$emit('loadingImageCompleted')}},model:{value:(_vm.pivotOptions),callback:function ($$v) {_vm.pivotOptions=$$v},expression:\"pivotOptions\"}}),_c('div',{ref:\"pivotOutput\",staticClass:\"pivot-output\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pivot-ui\"},[_c('div',{class:{collapsed: _vm.collapsed}},[_c('div',{staticClass:\"row\"},[_c('label',[_vm._v(\"Columns\")]),_c('multiselect',{staticClass:\"sqliteviz-select cols\",attrs:{\"options\":_vm.colsToSelect,\"disabled\":_vm.colsToSelect.length === 0,\"multiple\":true,\"hideSelected\":true,\"close-on-select\":true,\"show-labels\":false,\"max\":_vm.colsToSelect.length,\"open-direction\":\"bottom\",\"placeholder\":\"\"},model:{value:(_vm.cols),callback:function ($$v) {_vm.cols=$$v},expression:\"cols\"}},[_c('template',{slot:\"maxElements\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])]),_c('template',{slot:\"placeholder\"},[_vm._v(\"Choose columns\")]),_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2),_c('pivot-sort-btn',{staticClass:\"sort-btn\",attrs:{\"direction\":\"col\"},model:{value:(_vm.colOrder),callback:function ($$v) {_vm.colOrder=$$v},expression:\"colOrder\"}})],1),_c('div',{staticClass:\"row\"},[_c('label',[_vm._v(\"Rows\")]),_c('multiselect',{staticClass:\"sqliteviz-select rows\",attrs:{\"options\":_vm.rowsToSelect,\"disabled\":_vm.rowsToSelect.length === 0,\"multiple\":true,\"hideSelected\":true,\"close-on-select\":true,\"show-labels\":false,\"max\":_vm.rowsToSelect.length,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"\"},model:{value:(_vm.rows),callback:function ($$v) {_vm.rows=$$v},expression:\"rows\"}},[_c('template',{slot:\"maxElements\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])]),_c('template',{slot:\"placeholder\"},[_vm._v(\"Choose rows\")]),_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2),_c('pivot-sort-btn',{staticClass:\"sort-btn\",attrs:{\"direction\":\"row\"},model:{value:(_vm.rowOrder),callback:function ($$v) {_vm.rowOrder=$$v},expression:\"rowOrder\"}})],1),_c('div',{staticClass:\"row aggregator\"},[_c('label',[_vm._v(\"Aggregator\")]),_c('multiselect',{staticClass:\"sqliteviz-select short aggregator\",attrs:{\"options\":_vm.aggregators,\"label\":\"name\",\"track-by\":\"name\",\"close-on-select\":true,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose a function\"},model:{value:(_vm.aggregator),callback:function ($$v) {_vm.aggregator=$$v},expression:\"aggregator\"}},[_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2),_c('multiselect',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.valCount > 0),expression:\"valCount > 0\"}],staticClass:\"sqliteviz-select aggr-arg\",attrs:{\"options\":_vm.keyNames,\"disabled\":_vm.keyNames.length === 0,\"close-on-select\":true,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose an argument\"},model:{value:(_vm.val1),callback:function ($$v) {_vm.val1=$$v},expression:\"val1\"}}),_c('multiselect',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.valCount > 1),expression:\"valCount > 1\"}],staticClass:\"sqliteviz-select aggr-arg\",attrs:{\"options\":_vm.keyNames,\"disabled\":_vm.keyNames.length === 0,\"close-on-select\":true,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose a second argument\"},model:{value:(_vm.val2),callback:function ($$v) {_vm.val2=$$v},expression:\"val2\"}})],1),_c('div',{staticClass:\"row\"},[_c('label',[_vm._v(\"View\")]),_c('multiselect',{staticClass:\"sqliteviz-select short renderer\",attrs:{\"options\":_vm.renderers,\"label\":\"name\",\"track-by\":\"name\",\"close-on-select\":true,\"allow-empty\":false,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose a view\"},model:{value:(_vm.renderer),callback:function ($$v) {_vm.renderer=$$v},expression:\"renderer\"}},[_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2)],1)]),_c('span',{staticClass:\"switcher\",on:{\"click\":function($event){_vm.collapsed = !_vm.collapsed}}},[_vm._v(\" \"+_vm._s(_vm.collapsed ? 'Show pivot settings' : 'Hide pivot settings')+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['pivot-sort-btn', _vm.direction],on:{\"click\":_vm.changeSorting}},[_vm._v(\" \"+_vm._s(_vm.value.includes('key') ? 'key' : 'value')+\" \"),_c('sort-icon',{staticClass:\"sort-icon\",attrs:{\"horizontal\":_vm.direction === 'col',\"asc\":_vm.value.includes('a_to_z')}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['sort-icon', { horizontal: _vm.horizontal }, { asc: _vm.asc }],attrs:{\"width\":\"6\",\"height\":\"12\",\"viewBox\":\"0 0 6 12\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M2.99932 -3.63032e-05C2.75092 -3.63032e-05 2.54932 0.201563 2.54932 0.449964L2.54932 11.55C2.54932 11.7984 2.75092 12 2.99932 12C3.24772 12 3.44932 11.7984 3.44932 11.55L3.44932 0.449964C3.44932 0.201563 3.24772 -3.63032e-05 2.99932 -3.63032e-05Z\",\"fill\":\"#506784\"}}),_c('path',{attrs:{\"d\":\"M2.99915 1.80492e-05C2.8839 1.80492e-05 2.76865 0.0438534 2.68109 0.132073L0.581055 2.232C0.405273 2.40789 0.405273 2.69287 0.581055 2.86865C0.756946 3.04443 1.04193 3.04443 1.21771 2.86865L2.99969 1.08667L4.78168 2.86865C4.95746 3.04443 5.24255 3.04443 5.41833 2.86865C5.59412 2.69287 5.59412 2.40789 5.41833 2.232L3.3183 0.132073C3.22953 0.0438534 3.11428 1.80492e-05 2.99915 1.80492e-05V1.80492e-05Z\",\"fill\":\"#506784\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./sort.vue?vue&type=template&id=28a29e7a&scoped=true&\"\nimport script from \"./sort.vue?vue&type=script&lang=js&\"\nexport * from \"./sort.vue?vue&type=script&lang=js&\"\nimport style0 from \"./sort.vue?vue&type=style&index=0&id=28a29e7a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28a29e7a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PivotSortBtn.vue?vue&type=template&id=e3801f08&scoped=true&\"\nimport script from \"./PivotSortBtn.vue?vue&type=script&lang=js&\"\nexport * from \"./PivotSortBtn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PivotSortBtn.vue?vue&type=style&index=0&id=e3801f08&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e3801f08\",\n null\n \n)\n\nexport default component.exports","import $ from 'jquery'\nimport 'pivottable'\nimport 'pivottable/dist/export_renderers.js'\nimport 'pivottable/dist/plotly_renderers.js'\n\nexport const zeroValAggregators = [\n 'Count',\n 'Count as Fraction of Total',\n 'Count as Fraction of Rows',\n 'Count as Fraction of Columns'\n]\n\nexport const twoValAggregators = [\n 'Sum over Sum',\n '80% Upper Bound',\n '80% Lower Bound'\n]\n\nexport function _getDataSources (pivotData) {\n const rowKeys = pivotData.getRowKeys()\n const colKeys = pivotData.getColKeys()\n\n const dataSources = {\n 'Column keys': colKeys.map(colKey => colKey.join('-')),\n 'Row keys': rowKeys.map(rowKey => rowKey.join('-'))\n }\n\n const dataSourcesByRows = {}\n const dataSourcesByCols = {}\n\n const rowAttrs = pivotData.rowAttrs.join('-')\n const colAttrs = pivotData.colAttrs.join('-')\n\n colKeys.forEach(colKey => {\n const sourceColKey = colAttrs + ':' + colKey.join('-')\n dataSourcesByCols[sourceColKey] = []\n rowKeys.forEach(rowKey => {\n const value = pivotData.getAggregator(rowKey, colKey).value()\n dataSourcesByCols[sourceColKey].push(value)\n const sourceRowKey = rowAttrs + ':' + rowKey.join('-')\n if (!dataSourcesByRows[sourceRowKey]) {\n dataSourcesByRows[sourceRowKey] = []\n }\n dataSourcesByRows[sourceRowKey].push(value)\n })\n })\n\n return Object.assign(dataSources, dataSourcesByCols, dataSourcesByRows)\n}\n\nfunction customChartRenderer (data, options) {\n options.customChartComponent.dataSources = _getDataSources(data)\n options.customChartComponent.$mount()\n\n return $(options.customChartComponent.$el)\n}\n\n$.extend(\n $.pivotUtilities.renderers,\n $.pivotUtilities.export_renderers,\n $.pivotUtilities.plotly_renderers,\n { 'Custom chart': customChartRenderer }\n)\n\nexport const renderers = Object.keys($.pivotUtilities.renderers).map(key => {\n return {\n name: key,\n fun: $.pivotUtilities.renderers[key]\n }\n})\n\nexport const aggregators = Object.keys($.pivotUtilities.aggregators).map(key => {\n return {\n name: key,\n fun: $.pivotUtilities.aggregators[key]\n }\n})\n","\n\n\n\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6d818ae0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6d818ae0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d818ae0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ca17e020&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ca17e020&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ca17e020\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M8.41943 16V10H10.4194V16H8.41943Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M2.41943 16L2.41943 10H4.41943V16H2.41943Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M11.4194 16V7H13.4194V16H11.4194Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M14.4194 16V8H16.4194V16H14.4194Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M7.41943 12V16H5.41943V12H7.41943Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M12.4332 1.80676L16.6265 6.00001L15.9194 6.70712L12.4055 3.19326L5.93169 9.1691L1.71436 5.55424L2.36515 4.79499L5.90707 7.83092L12.4332 1.80676Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./chart.vue?vue&type=template&id=16c3eaec&\"\nimport script from \"./chart.vue?vue&type=script&lang=js&\"\nexport * from \"./chart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M15.7661 5.13901L18.3407 9.43008H16.5161V12.8467C16.5161 13.7957 16.2783 14.6451 15.6714 15.2521C15.0645 15.859 14.215 16.0967 13.2661 16.0967H9.84942V17.9214L5.55835 15.3467L9.84942 12.7721V14.5967H13.2661C13.9838 14.5967 14.3844 14.4178 14.6108 14.1914C14.8372 13.965 15.0161 13.5645 15.0161 12.8467V9.43008H13.1914L15.7661 5.13901Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M6.41943 0H18.4194V4H6.41943V0Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M0.419434 6H4.41943V18H0.419434V6Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M0.419434 0H4.41943V4H0.419434V0Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pivot.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pivot.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./pivot.vue?vue&type=template&id=87050fe2&\"\nimport script from \"./pivot.vue?vue&type=script&lang=js&\"\nexport * from \"./pivot.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M9 5.51953C6.57686 5.51953 4.60547 7.49092 4.60547 9.91406C4.60547 12.3372 6.57686 14.3086 9 14.3086C11.4231 14.3086 13.3945 12.3372 13.3945 9.91406C13.3945 7.49092 11.4231 5.51953 9 5.51953ZM9 12.9023C7.35226 12.9023 6.01172 11.5618 6.01172 9.91406C6.01172 8.26632 7.35226 6.92578 9 6.92578C10.6477 6.92578 11.9883 8.26632 11.9883 9.91406C11.9883 11.5618 10.6477 12.9023 9 12.9023Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M15.8906 3.41016H13.304C13.2221 3.41016 13.1483 3.36547 13.1104 3.29319L12.3948 1.78945C12.3928 1.78534 12.3908 1.78126 12.3887 1.77718C12.1117 1.22312 11.5548 0.878906 10.9353 0.878906H7.11478C6.49529 0.878906 5.93835 1.22312 5.66135 1.77722C5.65928 1.7813 5.65731 1.78538 5.65534 1.78949L4.9397 3.2933C4.90173 3.36547 4.82797 3.41016 4.74609 3.41016H2.10938C0.946266 3.41016 0 4.35642 0 5.51953V15.0117C0 16.1748 0.946266 17.1211 2.10938 17.1211H15.8906C17.0537 17.1211 18 16.1748 18 15.0117V5.51953C18 4.35642 17.0537 3.41016 15.8906 3.41016ZM16.5938 15.0117C16.5938 15.3994 16.2783 15.7148 15.8906 15.7148H2.10938C1.72167 15.7148 1.40625 15.3994 1.40625 15.0117V5.51953C1.40625 5.13183 1.72167 4.81641 2.10938 4.81641H4.74609C5.36555 4.81641 5.92249 4.47223 6.19952 3.91816C6.2016 3.91409 6.20357 3.90997 6.20557 3.90586L6.92121 2.40205C6.95914 2.32984 7.0329 2.28516 7.11478 2.28516H10.9353C11.0172 2.28516 11.091 2.32984 11.1289 2.40202L11.8445 3.90582C11.8465 3.90994 11.8485 3.91405 11.8506 3.91813C12.1276 4.47219 12.6846 4.81637 13.304 4.81637H15.8906C16.2783 4.81637 16.5938 5.13179 16.5938 5.5195V15.0117Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M15.1875 6.22266H13.7812V7.62891H15.1875V6.22266Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./png.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./png.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./png.vue?vue&type=template&id=e31e3054&\"\nimport script from \"./png.vue?vue&type=script&lang=js&\"\nexport * from \"./png.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=513fdbc5&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=513fdbc5&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"513fdbc5\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"runResultPanel\",staticClass:\"run-result-panel\"},[_c('div',{staticClass:\"run-result-panel-content\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.result === null && !_vm.isGettingResults && !_vm.error),expression:\"result === null && !isGettingResults && !error\"}],staticClass:\"table-preview result-before\"},[_vm._v(\" Run your query and get results here \")]),(_vm.isGettingResults)?_c('div',{staticClass:\"table-preview result-in-progress\"},[_c('loading-indicator',{attrs:{\"size\":30}}),_vm._v(\" Fetching results... \")],1):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.result === undefined && !_vm.isGettingResults && !_vm.error),expression:\"result === undefined && !isGettingResults && !error\"}],staticClass:\"table-preview result-empty\"},[_vm._v(\" No rows retrieved according to your query \")]),(_vm.error)?_c('logs',{attrs:{\"messages\":[_vm.error]}}):_vm._e(),(_vm.result)?_c('sql-table',{staticClass:\"straight\",attrs:{\"data-set\":_vm.result,\"time\":_vm.time,\"pageSize\":_vm.pageSize}}):_vm._e()],1),_c('side-tool-bar',{attrs:{\"panel\":\"table\"},on:{\"switchTo\":function($event){return _vm.$emit('switchTo', $event)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RunResult.vue?vue&type=template&id=73e5054b&scoped=true&\"\nimport script from \"./RunResult.vue?vue&type=script&lang=js&\"\nexport * from \"./RunResult.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RunResult.vue?vue&type=style&index=0&id=73e5054b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"73e5054b\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=24244834&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=24244834&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24244834\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=75c85da5&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=de063d86&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=de063d86&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"de063d86\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showedInquiries.length === 0)?_c('div',{attrs:{\"id\":\"start-guide\"}},[_vm._v(\" You don't have saved inquiries so far. \"),_c('span',{staticClass:\"link\",on:{\"click\":function($event){return _vm.$root.$emit('createNewInquiry')}}},[_vm._v(\"Create\")]),_vm._v(\" the one from scratch or \"),_c('span',{staticClass:\"link\",on:{\"click\":_vm.importInquiries}},[_vm._v(\"import\")]),_vm._v(\" from a file. \")]):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showedInquiries.length > 0),expression:\"showedInquiries.length > 0\"}],ref:\"my-inquiries-content\",attrs:{\"id\":\"my-inquiries-content\"}},[_c('div',{attrs:{\"id\":\"my-inquiries-toolbar\"}},[_c('div',{attrs:{\"id\":\"toolbar-buttons\"}},[_c('button',{staticClass:\"toolbar\",attrs:{\"id\":\"toolbar-btns-import\"},on:{\"click\":_vm.importInquiries}},[_vm._v(\" Import \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedInquiriesCount > 0),expression:\"selectedInquiriesCount > 0\"}],staticClass:\"toolbar\",attrs:{\"id\":\"toolbar-btns-export\"},on:{\"click\":function($event){return _vm.exportSelectedInquiries()}}},[_vm._v(\" Export \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedNotPredefinedCount > 0),expression:\"selectedNotPredefinedCount > 0\"}],staticClass:\"toolbar\",attrs:{\"id\":\"toolbar-btns-delete\"},on:{\"click\":function($event){return _vm.showDeleteDialog(_vm.selectedInquiriesIds)}}},[_vm._v(\" Delete \")])]),_c('div',{attrs:{\"id\":\"toolbar-search\"}},[_c('text-field',{attrs:{\"placeholder\":\"Search inquiry by name\",\"width\":\"300px\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1)]),_c('div',{staticClass:\"rounded-bg\"},[_c('div',{staticClass:\"header-container\"},[_c('div',[_c('div',{ref:\"name-th\",staticClass:\"fixed-header\"},[_c('check-box',{ref:\"mainCheckBox\",attrs:{\"theme\":\"light\"},on:{\"click\":_vm.toggleSelectAll}}),_c('div',{staticClass:\"name-th\"},[_vm._v(\"Name\")])],1),_c('div',{staticClass:\"fixed-header\"},[_vm._v(\" Created at \")])])]),_c('div',{staticClass:\"table-container\",style:({ 'max-height': (_vm.maxTableHeight + \"px\") })},[_c('table',{ref:\"table\",staticClass:\"sqliteviz-table\"},[_c('tbody',_vm._l((_vm.showedInquiries),function(inquiry,index){return _c('tr',{key:inquiry.id,on:{\"click\":function($event){return _vm.openInquiry(index)}}},[_c('td',{ref:\"name-td\",refInFor:true},[_c('div',{staticClass:\"cell-data\"},[_c('check-box',{ref:\"rowCheckBox\",refInFor:true,attrs:{\"init\":_vm.selectAll || _vm.selectedInquiriesIds.has(inquiry.id)},on:{\"click\":function($event){return _vm.toggleRow($event, inquiry.id)}}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(inquiry.name))]),(inquiry.isPredefined)?_c('div',{staticClass:\"badge\",on:{\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_vm._v(\" Predefined \"),_c('span',{ref:\"tooltip\",refInFor:true,staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Predefined inquiries come from the server. These inquiries can’t be deleted or renamed. \")])]):_vm._e()],1)]),_c('td',[_c('div',{staticClass:\"second-column\"},[_c('div',{staticClass:\"date-container\"},[_vm._v(_vm._s(_vm._f(\"date\")(inquiry.createdAt)))]),_c('div',{staticClass:\"icons-container\"},[(!inquiry.isPredefined)?_c('rename-icon',{on:{\"click\":function($event){return _vm.showRenameDialog(inquiry.id)}}}):_vm._e(),_c('copy-icon',{on:{\"click\":function($event){return _vm.duplicateInquiry(index)}}}),_c('export-icon',{attrs:{\"tooltip\":\"Export inquiry to file\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){return _vm.exportToFile([inquiry], ((inquiry.name) + \".json\"))}}}),(!inquiry.isPredefined)?_c('delete-icon',{on:{\"click\":function($event){_vm.showDeleteDialog((new Set()).add(inquiry.id))}}}):_vm._e()],1)])])])}),0)])])])]),_c('modal',{attrs:{\"name\":\"rename\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Rename inquiry \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('rename')}}})],1),_c('div',{staticClass:\"dialog-body\"},[_c('text-field',{attrs:{\"label\":\"New inquiry name\",\"error-msg\":_vm.errorMsg,\"width\":\"100%\"},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.$modal.hide('rename')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":_vm.renameInquiry}},[_vm._v(\"Rename\")])])]),_c('modal',{attrs:{\"name\":\"delete\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Delete \"+_vm._s(_vm.deleteGroup ? 'inquiries' : 'inquiry')+\" \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('delete')}}})],1),_c('div',{staticClass:\"dialog-body\"},[_vm._v(\" \"+_vm._s(_vm.deleteDialogMsg)+\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedInquiriesCount > _vm.selectedNotPredefinedCount),expression:\"selectedInquiriesCount > selectedNotPredefinedCount\"}],attrs:{\"id\":\"note\"}},[_c('img',{attrs:{\"src\":require('@/assets/images/info.svg')}}),_vm._v(\" Note: Predefined inquiries you've selected won't be deleted \")])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.$modal.hide('delete')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":_vm.deleteInquiry}},[_vm._v(\"Delete\")])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M10.545 6.75L11.25 7.455L4.44 14.25H3.75V13.56L10.545 6.75ZM13.245 2.25C13.0575 2.25 12.8625 2.325 12.72 2.4675L11.3475 3.84L14.16 6.6525L15.5325 5.28C15.825 4.9875 15.825 4.5 15.5325 4.2225L13.7775 2.4675C13.6275 2.3175 13.44 2.25 13.245 2.25ZM10.545 4.6425L2.25 12.9375V15.75H5.0625L13.3575 7.455L10.545 4.6425Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Rename inquiry \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./rename.vue?vue&type=template&id=075cb800&scoped=true&\"\nimport script from \"./rename.vue?vue&type=script&lang=js&\"\nexport * from \"./rename.vue?vue&type=script&lang=js&\"\nimport style0 from \"./rename.vue?vue&type=style&index=0&id=075cb800&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"075cb800\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M14.25 15.75H6V5.25H14.25V15.75ZM14.25 3.75H6C5.60218 3.75 5.22064 3.90804 4.93934 4.18934C4.65804 4.47064 4.5 4.85218 4.5 5.25V15.75C4.5 16.1478 4.65804 16.5294 4.93934 16.8107C5.22064 17.092 5.60218 17.25 6 17.25H14.25C14.6478 17.25 15.0294 17.092 15.3107 16.8107C15.592 16.5294 15.75 16.1478 15.75 15.75V5.25C15.75 4.85218 15.592 4.47064 15.3107 4.18934C15.0294 3.90804 14.6478 3.75 14.25 3.75ZM12 0.75H3C2.60218 0.75 2.22064 0.908035 1.93934 1.18934C1.65804 1.47064 1.5 1.85218 1.5 2.25V12.75H3V2.25H12V0.75Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Duplicate inquiry \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./copy.vue?vue&type=template&id=3a61cb73&scoped=true&\"\nimport script from \"./copy.vue?vue&type=script&lang=js&\"\nexport * from \"./copy.vue?vue&type=script&lang=js&\"\nimport style0 from \"./copy.vue?vue&type=style&index=0&id=3a61cb73&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a61cb73\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":function($event){return _vm.showTooltip($event, 'top-left')},\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M6.75 2.25V3H3V4.5H3.75V14.25C3.75 14.6478 3.90804 15.0294 4.18934 15.3107C4.47064 15.592 4.85218 15.75 5.25 15.75H12.75C13.1478 15.75 13.5294 15.592 13.8107 15.3107C14.092 15.0294 14.25 14.6478 14.25 14.25V4.5H15V3H11.25V2.25H6.75ZM5.25 4.5H12.75V14.25H5.25V4.5ZM6.75 6V12.75H8.25V6H6.75ZM9.75 6V12.75H11.25V6H9.75Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Delete inquiry \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./delete.vue?vue&type=template&id=581e8819&scoped=true&\"\nimport script from \"./delete.vue?vue&type=script&lang=js&\"\nexport * from \"./delete.vue?vue&type=script&lang=js&\"\nimport style0 from \"./delete.vue?vue&type=style&index=0&id=581e8819&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"581e8819\",\n null\n \n)\n\nexport default component.exports","export default {\n _migrate (installedVersion, inquiries) {\n if (installedVersion === 1) {\n inquiries.forEach(inquire => {\n inquire.viewType = 'chart'\n inquire.viewOptions = inquire.chart\n delete inquire.chart\n })\n return inquiries\n }\n }\n}\n","import { nanoid } from 'nanoid'\nimport fu from '@/lib/utils/fileIo'\nimport migration from './_migrations'\n\nconst migrate = migration._migrate\n\nexport default {\n version: 2,\n getStoredInquiries () {\n let myInquiries = JSON.parse(localStorage.getItem('myInquiries'))\n if (!myInquiries) {\n const oldInquiries = localStorage.getItem('myQueries')\n if (oldInquiries) {\n myInquiries = migrate(1, JSON.parse(oldInquiries))\n this.updateStorage(myInquiries)\n return myInquiries\n }\n return []\n }\n\n return (myInquiries && myInquiries.inquiries) || []\n },\n\n duplicateInquiry (baseInquiry) {\n const newInquiry = JSON.parse(JSON.stringify(baseInquiry))\n newInquiry.name = newInquiry.name + ' Copy'\n newInquiry.id = nanoid()\n newInquiry.createdAt = new Date()\n delete newInquiry.isPredefined\n\n return newInquiry\n },\n\n isTabNeedName (inquiryTab) {\n const isFromScratch = !inquiryTab.initName\n return inquiryTab.isPredefined || isFromScratch\n },\n\n save (inquiryTab, newName) {\n const value = {\n id: inquiryTab.isPredefined ? nanoid() : inquiryTab.id,\n query: inquiryTab.query,\n viewType: inquiryTab.$refs.dataView.mode,\n viewOptions: inquiryTab.$refs.dataView.getOptionsForSave(),\n name: newName || inquiryTab.initName\n }\n\n // Get inquiries from local storage\n const myInquiries = this.getStoredInquiries()\n\n // Set createdAt\n if (newName) {\n value.createdAt = new Date()\n } else {\n var inquiryIndex = myInquiries.findIndex(oldInquiry => oldInquiry.id === inquiryTab.id)\n value.createdAt = myInquiries[inquiryIndex].createdAt\n }\n\n // Insert in inquiries list\n if (newName) {\n myInquiries.push(value)\n } else {\n myInquiries[inquiryIndex] = value\n }\n\n // Save to local storage\n this.updateStorage(myInquiries)\n return value\n },\n\n updateStorage (inquiries) {\n localStorage.setItem('myInquiries', JSON.stringify({ version: this.version, inquiries }))\n },\n\n serialiseInquiries (inquiryList) {\n const preparedData = JSON.parse(JSON.stringify(inquiryList))\n preparedData.forEach(inquiry => delete inquiry.isPredefined)\n return JSON.stringify({ version: this.version, inquiries: preparedData }, null, 4)\n },\n\n deserialiseInquiries (str) {\n const inquiries = JSON.parse(str)\n let inquiryList = []\n if (!inquiries.version) {\n // Turn data into array if they are not\n inquiryList = !Array.isArray(inquiries) ? [inquiries] : inquiries\n inquiryList = migrate(1, inquiryList)\n } else {\n inquiryList = inquiries.inquiries || []\n }\n\n // Generate new ids if they are the same as existing inquiries\n inquiryList.forEach(inquiry => {\n const allInquiriesIds = this.getStoredInquiries().map(inquiry => inquiry.id)\n if (allInquiriesIds.includes(inquiry.id)) {\n inquiry.id = nanoid()\n }\n })\n\n return inquiryList\n },\n\n importInquiries () {\n return fu.importFile()\n .then(str => {\n return this.deserialiseInquiries(str)\n })\n },\n\n async readPredefinedInquiries () {\n const res = await fu.readFile('./inquiries.json')\n const data = await res.json()\n\n if (!data.version) {\n return data.length > 0 ? migrate(1, data) : []\n } else {\n return data.inquiries\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2b039cec&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2b039cec&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b039cec\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"dbloader-container\"}},[_c('db-uploader',{attrs:{\"type\":\"illustrated\"}}),_c('div',{attrs:{\"id\":\"note\"}},[_vm._v(\" Sqliteviz is fully client-side. Your database never leaves your computer. \")]),_c('button',{staticClass:\"secondary\",attrs:{\"id\":\"skip\"},on:{\"click\":function($event){return _vm.$router.push('/workspace')}}},[_vm._v(\" Create empty database \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Welcome.vue?vue&type=template&id=0da5ae79&scoped=true&\"\nimport script from \"./Welcome.vue?vue&type=script&lang=js&\"\nexport * from \"./Welcome.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Welcome.vue?vue&type=style&index=0&id=0da5ae79&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0da5ae79\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('main-menu'),_c('keep-alive',{attrs:{\"include\":\"Workspace\"}},[_c('router-view',{attrs:{\"id\":\"main-view\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',[_c('div',[_c('router-link',{attrs:{\"to\":\"/workspace\"}},[_vm._v(\"Workspace\")]),_c('router-link',{attrs:{\"to\":\"/inquiries\"}},[_vm._v(\"Inquiries\")]),_c('a',{attrs:{\"href\":\"https://github.com/lana-k/sqliteviz/wiki\",\"target\":\"_blank\"}},[_vm._v(\"Help\")])],1),_c('div',{attrs:{\"id\":\"nav-buttons\"}},[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentInquiry && _vm.$route.path === '/workspace'),expression:\"currentInquiry && $route.path === '/workspace'\"}],staticClass:\"primary\",attrs:{\"id\":\"save-btn\",\"disabled\":_vm.isSaved},on:{\"click\":_vm.checkInquiryBeforeSave}},[_vm._v(\" Save \")]),_c('button',{staticClass:\"primary\",attrs:{\"id\":\"create-btn\"},on:{\"click\":_vm.createNewInquiry}},[_vm._v(\" Create \")]),_c('app-diagnostic-info')],1),_c('modal',{attrs:{\"name\":\"save\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Save inquiry \"),_c('close-icon',{on:{\"click\":_vm.cancelSave}})],1),_c('div',{staticClass:\"dialog-body\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isPredefined),expression:\"isPredefined\"}],attrs:{\"id\":\"save-note\"}},[_c('img',{attrs:{\"src\":require('@/assets/images/info.svg')}}),_vm._v(\" Note: Predefined inquiries can't be edited. That's why your modifications will be saved as a new inquiry. Enter the name for it. \")]),_c('text-field',{attrs:{\"label\":\"Inquiry name\",\"error-msg\":_vm.errorMsg,\"width\":\"100%\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":_vm.cancelSave}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":_vm.saveInquiry}},[_vm._v(\"Save\")])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app-info-container\"}},[_c('img',{attrs:{\"id\":\"app-info-icon\",\"src\":require('@/assets/images/info.svg')},on:{\"click\":function($event){return _vm.$modal.show('app-info')}}}),_c('modal',{attrs:{\"name\":\"app-info\",\"classes\":\"dialog\",\"height\":\"auto\",\"width\":\"400px\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" App info \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('app-info')}}})],1),_c('div',{staticClass:\"dialog-body\"},_vm._l((_vm.info),function(item,index){return _c('div',{key:index,staticClass:\"info-item\"},[_vm._v(\" \"+_vm._s(item.name)+\" \"),_c('div',{staticClass:\"divider\"}),_c('div',{staticClass:\"options\"},_vm._l((item.info),function(opt,index){return _c('div',{key:index},[_vm._v(\" \"+_vm._s(opt)+\" \")])}),0)])}),0)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppDiagnosticInfo.vue?vue&type=template&id=a80fbe8a&scoped=true&\"\nimport script from \"./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppDiagnosticInfo.vue?vue&type=style&index=0&id=a80fbe8a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a80fbe8a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainMenu.vue?vue&type=template&id=707ebea6&scoped=true&\"\nimport script from \"./MainMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./MainMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MainMenu.vue?vue&type=style&index=0&id=707ebea6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"707ebea6\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=25aa04f9&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=25aa04f9&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25aa04f9\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport Workspace from '@/views/Main/Workspace'\nimport Inquiries from '@/views/Main/Inquiries'\nimport Welcome from '@/views/Welcome'\nimport Main from '@/views/Main'\nimport store from '@/store'\nimport database from '@/lib/database'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Welcome',\n component: Welcome\n },\n {\n path: '/',\n name: 'Main',\n component: Main,\n children: [\n {\n path: '/workspace',\n name: 'Workspace',\n component: Workspace\n },\n {\n path: '/inquiries',\n name: 'Inquiries',\n component: Inquiries\n }\n ]\n }\n]\n\nconst router = new VueRouter({\n routes\n})\n\nrouter.beforeEach(async (to, from, next) => {\n if (!store.state.db) {\n const newDb = database.getNewDatabase()\n await newDb.loadDb()\n store.commit('setDb', newDb)\n }\n next()\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from '@/App.vue'\nimport router from '@/router'\nimport store from '@/store'\nimport { VuePlugin } from 'vuera'\nimport VModal from 'vue-js-modal'\n\nimport '@/assets/styles/variables.css'\nimport '@/assets/styles/buttons.css'\nimport '@/assets/styles/tables.css'\nimport '@/assets/styles/dialogs.css'\nimport '@/assets/styles/tooltips.css'\nimport '@/assets/styles/messages.css'\nimport 'vue-multiselect/dist/vue-multiselect.min.css'\nimport '@/assets/styles/multiselect.css'\n\nif (!['localhost', '127.0.0.1'].includes(location.hostname)) {\n import('./registerServiceWorker') // eslint-disable-line no-unused-expressions\n}\n\nVue.use(VuePlugin)\nVue.use(VModal)\n\nVue.config.productionTip = false\n\nnew Vue({\n router,\n store,\n render: h => h(App)\n}).$mount('#app')\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=style&index=0&id=2c7f445c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=style&index=0&id=2c7f445c&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iI0YzRjZGQSIgc3Ryb2tlPSIjQzhENEUzIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjQ5ODhMNi43NSAxNC4yNDk5TDIuNjI1IDEwLjEyNDlMMy42ODI1IDkuMDY3MzhMNi43NSAxMi4xMjc0TDE0LjY5MjUgNC4xOTIzOEwxNS43NSA1LjI0OTg4WiIgZmlsbD0iIzExOURGRiIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2QiIHg9IjAuNjI1IiB5PSIzLjE5MjM4IiB3aWR0aD0iMTcuMTI1IiBoZWlnaHQ9IjE0LjA1NzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiLz4KPGZlT2Zmc2V0IGR5PSIxIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMC4xNjQ3MDYgMCAwIDAgMCAwLjI0NzA1OSAwIDAgMCAwIDAuMzcyNTQ5IDAgMCAwIDAuNDUgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgdmlld0JveD0iMCAwIDQ1MCAxNjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ1MCIgaGVpZ2h0PSIxNjciPgo8cmVjdCB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTEyOC4yMDcgLTE2OS4wMDdDNzAuMTk3MiAtMTgwLjg0OSAxOC43NDUgLTE0MC4xMSA0LjMxOTg1IC03OC4zMzIyQy0xMC4xMDU0IC0xNi41NTM5IDE0LjMzMzcgMTUuMzMxOCAzNy4zMjE4IDU1LjE4OTFDNzIuMzc4NCAxMTUuOTcxIDE4MS41NTEgMTcwLjIzNyAyNjUuMDgzIDE2Ni43ODlDMzM3LjUxNyAxNjMuOCAzODkuMDI4IDE0NS41MTQgNDI1LjkzNiA3Ny4xMTA3QzQ4OS4zNzggLTQwLjQ2NzkgNDE3LjQ0NCAtMTE3LjA5MyAzMjUuNTI3IC0xMDIuNzQ1QzIxNC41NzEgLTg1LjQyNCAyMTMuNjI5IC0xNTEuNTcgMTI4LjIwNyAtMTY5LjAwN1oiIGZpbGw9IiNERkU4RjMiLz4KPHBhdGggZD0iTTE0Ny4yMjIgOS40ODcxNkMxNDcuMjIyIDYuNzI4MjQgMTQ5LjQ1OCA0LjQ5MTcgMTUyLjIxNyA0LjQ5MTdIMzQzLjA0NEMzNDUuODAyIDQuNDkxNyAzNDguMDM5IDYuNzI4MjQgMzQ4LjAzOSA5LjQ4NzE1VjEyMi4zODRDMzQ4LjAzOSAxMjUuMTQzIDM0NS44MDIgMTI3LjM4IDM0My4wNDQgMTI3LjM4SDE1Mi4yMTdDMTQ5LjQ1OCAxMjcuMzggMTQ3LjIyMiAxMjUuMTQzIDE0Ny4yMjIgMTIyLjM4NFY5LjQ4NzE2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE1Ni4yODQgLTEuNTczNzNDMTU4LjE1OCAtMy40NDczOSAxNjAuNjk5IC00LjUgMTYzLjM0OSAtNC41SDMzMS45MTFDMzM0LjU2MSAtNC41IDMzNy4xMDIgLTMuNDQ3MzkgMzM4Ljk3NiAtMS41NzM3M0wzNDYuMDQxIDUuNDkwOTFIMTQ5LjIyTDE1Ni4yODQgLTEuNTczNzNaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNDcuMjIyIDkuNDg3MTVDMTQ3LjIyMiA2LjcyODI0IDE0OS40NTggNC40OTE3IDE1Mi4yMTcgNC40OTE3SDM0My4wNDRDMzQ1LjgwMiA0LjQ5MTcgMzQ4LjAzOSA2LjcyODI0IDM0OC4wMzkgOS40ODcxNVYyNy40NzA4SDE0Ny4yMjJWOS40ODcxNVoiIGZpbGw9IiNBMkIxQzYiLz4KPHBhdGggZD0iTTI1NC45MzkgNjcuOTU3MUMyNTQuMjUgNjcuNTMzNSAyNTMuNTk3IDY3LjA1MTkgMjUyLjk4OCA2Ni41MTc0VjU3LjY5MzVIMjU2LjgzMlY2OS4wMThDMjU2LjE5NSA2OC42ODY5IDI1NS41NjQgNjguMzMzMiAyNTQuOTM5IDY3Ljk1NzFaTTI2Mi4zNDEgNjMuNTAzMUgyNTguNDk4VjY5LjcyNTNDMjU5Ljc1MiA3MC4zMDkgMjYxLjAzNSA3MC44Mjg4IDI2Mi4zNDEgNzEuMjgyOVY2My41MDMxWk0yNTIuOTg4IDY4LjI4NTVMMjUyLjczNyA2OC4wODM0QzI1Mi4zNTIgNjcuNzYzNSAyNTEuOTkyIDY3LjQzNTEgMjUxLjY0OCA2Ny4xMDY4TDI0Mi41MyA2Ni4wNDU5TDI0NC4yMDUgNjkuMjk1OUwyNTUuOTI3IDcwLjI1NTdDMjU0Ljg5OSA2OS42NzU4IDI1My45MTYgNjkuMDE3MiAyNTIuOTg4IDY4LjI4NTVWNjguMjg1NVpNMjYyLjE0IDczLjAwOUMyNjAuODMyIDcyLjU3OTMgMjU5LjU0OSA3Mi4wNzYyIDI1OC4yOTcgNzEuNTAxOEwyNTcuODI4IDcxLjI2NjFMMjUwLjA5OSA3MC43NTI1TDI1MS40MDYgNzMuNDg4OUwyNjQuODg3IDczLjgwMDRDMjYzLjk2NiA3My41ODE1IDI2My4wMzYgNzMuMzEyMSAyNjIuMTQgNzMuMDA5Wk0yNDYuMDk3IDU3LjY5MzVDMjQ3LjU3MiA2MC4yODc1IDI0OS4zMjcgNjIuNzEwMSAyNTEuMzMgNjQuOTE3NlY1Ni4xMjc1TDI0Mi44ODIgNTEuOTQyOUwyNDIuMTI4IDYxLjc1MThMMjUwLjgyOCA2Ni4yMzk1QzI0OC41NDcgNjMuODQ2OSAyNDYuOTE4IDYwLjkwMzYgMjQ2LjA5NyA1Ny42OTM1VjU3LjY5MzVaIiBmaWxsPSIjMTE5REZGIi8+CjxwYXRoIGQ9Ik0yMTAuNzM4IDg0LjI4NThDMjExLjc5NSA4NC44NzYzIDIxMi44NTggODUuMTcxNSAyMTMuOTI2IDg1LjE3MTVDMjE0LjgxNSA4NS4xNzE1IDIxNS4zMzYgODQuODU1NyAyMTUuNDkgODQuMjI0MkMyMTUuNTQxIDg0LjAwODUgMjE1LjU2NyA4My43NDY3IDIxNS41NjcgODMuNDM4NkMyMTUuNTY3IDgzLjEyNTQgMjE1LjUzMSA4Mi44ODQgMjE1LjQ1OSA4Mi43MTQ2QzIxNS4zODcgODIuNTQgMjE1LjI2NiA4Mi40MTE3IDIxNS4wOTcgODIuMzI5NUMyMTQuOTI3IDgyLjI0MjIgMjE0LjcwMiA4Mi4xNzggMjE0LjQxOSA4Mi4xMzdDMjE0LjE0MiA4Mi4wOTU5IDIxMy43ODggODIuMDM5NCAyMTMuMzU2IDgxLjk2NzVDMjEyLjkyNSA4MS44OTA1IDIxMi41MyA4MS44MDU4IDIxMi4xNyA4MS43MTM0QzIxMS44MTEgODEuNjIwOSAyMTEuNTA1IDgxLjQ4NzQgMjExLjI1NCA4MS4zMTI5QzIxMC43MiA4MC45MzggMjEwLjQ2MyA4MC4zMDY1IDIxMC40ODMgNzkuNDE4MlY3OS4yMjU2QzIxMC40ODMgNzguMjkxMiAyMTAuNzkyIDc3LjYyNjIgMjExLjQwOCA3Ny4yMzA5QzIxMi4wMDMgNzYuODQwNiAyMTIuOTg3IDc2LjcwNzEgMjE0LjM1OCA3Ni44MzA0QzIxNS4yOTIgNzYuOTE3NiAyMTYuMDM3IDc3LjA3OTQgMjE2LjU5MSA3Ny4zMTU2TDIxNi4yMjkgNzguNDc4NkMyMTUuNjEzIDc4LjIxNjcgMjE0Ljg3NCA3OC4wMjY3IDIxNC4wMTEgNzcuOTA4NkMyMTMuNzQ0IDc3Ljg3MjcgMjEzLjQ5MiA3Ny44NTQ3IDIxMy4yNTYgNzcuODU0N0MyMTMuMDI1IDc3Ljg1NDcgMjEyLjgxNSA3Ny44NzI3IDIxMi42MjUgNzcuOTA4NkMyMTIuNDM1IDc3Ljk0NDYgMjEyLjI3NSA3OC4wMTEzIDIxMi4xNDcgNzguMTA4OUMyMTEuOTAxIDc4LjMwOTEgMjExLjc3MiA3OC42ODE0IDIxMS43NjIgNzkuMjI1NkMyMTEuNzQ3IDc5Ljg2NzUgMjExLjkyNiA4MC4yNzU3IDIxMi4zMDEgODAuNDUwM0MyMTIuNjYxIDgwLjYxOTcgMjEzLjA4NyA4MC43Mzc4IDIxMy41OCA4MC44MDQ1QzIxNC4wNzMgODAuODY2MiAyMTQuNDc2IDgwLjkyMjYgMjE0Ljc4OSA4MC45NzRDMjE1LjEwMiA4MS4wMjAyIDIxNS4zODcgODEuMDg0NCAyMTUuNjQ0IDgxLjE2NjVDMjE1LjkgODEuMjQ4NyAyMTYuMTIxIDgxLjM3OTYgMjE2LjMwNiA4MS41NTkzQzIxNi42OTEgODEuOTIzOSAyMTYuODc5IDgyLjU1OCAyMTYuODY4IDgzLjQ2MTdDMjE2Ljg0MyA4NS4wMzggMjE2LjE4NSA4NS45MzY2IDIxNC44OTcgODYuMTU3NEMyMTQuNTA2IDg2LjIyNDEgMjE0LjExNiA4Ni4yNTc1IDIxMy43MjYgODYuMjU3NUMyMTMuMzM2IDg2LjI1NzUgMjEyLjk3NiA4Ni4yMzE4IDIxMi42NDggODYuMTgwNUMyMTIuMzI0IDg2LjEzNDMgMjEyLjAxNCA4Ni4wNjc1IDIxMS43MTYgODUuOTgwMkMyMTEuMTUxIDg1LjgyMSAyMTAuNjQgODUuNjEwNSAyMTAuMTgzIDg1LjM0ODdMMjEwLjczOCA4NC4yODU4WiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjI1Ljc3OSA4NS4yMjU0QzIyNC43OTkgODUuOTEzNSAyMjMuNzYyIDg2LjI1NzUgMjIyLjY2OCA4Ni4yNTc1QzIyMS4zODkgODYuMjU3NSAyMjAuNTM3IDg1LjgwMzEgMjIwLjExMSA4NC44OTQyQzIxOS44NjQgODQuMzgwOCAyMTkuNzIxIDgzLjczMTMgMjE5LjY4IDgyLjk0NTdDMjE5LjY2NCA4Mi41ODYyIDIxOS42NTYgODIuMTkwOSAyMTkuNjU2IDgxLjc1OTZDMjE5LjY1NiA4MS4zMjMxIDIxOS42NTkgODAuODg0MSAyMTkuNjY0IDgwLjQ0MjVDMjE5LjY3NCA4MC4wMDEgMjE5LjcwOCA3OS41OTI4IDIxOS43NjQgNzkuMjE3OUMyMTkuODIxIDc4Ljg0MzEgMjE5LjkwOCA3OC41MDY4IDIyMC4wMjYgNzguMjA5QzIyMC4xNDkgNzcuOTA2MSAyMjAuMzI0IDc3LjY0OTMgMjIwLjU1IDc3LjQzODhDMjIxLjAxNyA3Ny4wMDI0IDIyMS43MzYgNzYuNzg0MSAyMjIuNzA2IDc2Ljc4NDFDMjIzLjY4MiA3Ni43ODQxIDIyNC43MTkgNzcuMDQ2IDIyNS44MTggNzcuNTY5N0wyMjUuOTQxIDc2LjkzODJIMjI3LjA1TDIyNy4wNTggODkuNjA3OEgyMjUuNzc5Vjg1LjIyNTRaTTIyNS43NzkgNzguNjMyNkMyMjQuODU1IDc4LjE3MDUgMjIzLjk2MiA3Ny45Mzk0IDIyMy4wOTkgNzcuOTM5NEMyMjIuNDczIDc3LjkzOTQgMjIyLjA1OSA3Ny45OTA4IDIyMS44NTkgNzguMDkzNUMyMjEuNjU5IDc4LjE5NjIgMjIxLjUwNSA3OC4zMjk3IDIyMS4zOTcgNzguNDk0QzIyMS4yOTQgNzguNjU4MyAyMjEuMjEgNzguODg0MiAyMjEuMTQzIDc5LjE3MTdDMjIxLjAyNSA3OS43MTA5IDIyMC45NjYgODAuNTk5MiAyMjAuOTY2IDgxLjgzNjZWODIuMDA2QzIyMC45NjYgODMuMTQ1OSAyMjEuMTA3IDgzLjk0NDMgMjIxLjM4OSA4NC40MDEzQzIyMS42NzIgODQuODY4NiAyMjIuMTg4IDg1LjEwMjIgMjIyLjkzNyA4NS4xMDIySDIyMy4wNTNDMjIzLjc2MiA4NS4xMDIyIDIyNC40ODYgODQuOTA3MSAyMjUuMjI1IDg0LjUxNjlDMjI1LjQzNSA4NC40MDkgMjI1LjYyIDg0LjI5ODYgMjI1Ljc3OSA4NC4xODU3Vjc4LjYzMjZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzAuNzAxIDczLjAxMDJMMjMxLjk3MiA3Mi45MDI0Vjg2LjEwMzRIMjMwLjcxNkwyMzAuNzAxIDczLjAxMDJaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzYuNjA4IDc0Ljc0MzFDMjM2LjI2NCA3NC43NDMxIDIzNi4wNDQgNzQuNjk0NCAyMzUuOTQ2IDc0LjU5NjhDMjM1Ljc5MiA3NC40Mzc2IDIzNS43MTUgNzQuMjE5NCAyMzUuNzE1IDczLjk0MjFDMjM1LjcxNSA3My42NTk3IDIzNS43MyA3My40NTk1IDIzNS43NjEgNzMuMzQxNEMyMzUuNzk3IDczLjIxODIgMjM1Ljg0OCA3My4xMjMyIDIzNS45MTUgNzMuMDU2NEMyMzYuMDM4IDcyLjkzMzIgMjM2LjIyNiA3Mi44NzE2IDIzNi40NzcgNzIuODcxNkMyMzYuNzM0IDcyLjg3MTYgMjM2LjkxNiA3Mi44ODQ0IDIzNy4wMjQgNzIuOTEwMUMyMzcuMTM3IDcyLjkzNTggMjM3LjIzIDcyLjk4NDUgMjM3LjMwMSA3My4wNTY0QzIzNy40MjUgNzMuMTc5NyAyMzcuNDg2IDczLjM4MjUgMjM3LjQ4NiA3My42NjQ5QzIzNy40ODYgNzMuOTQyMSAyMzcuNDcxIDc0LjE0MjQgMjM3LjQ0IDc0LjI2NTZDMjM3LjQxNCA3NC4zODM3IDIzNy4zNjggNzQuNDc4NyAyMzcuMzAxIDc0LjU1MDZDMjM3LjE3MyA3NC42NzkgMjM2Ljk0MiA3NC43NDMxIDIzNi42MDggNzQuNzQzMVpNMjM1Ljk4NCA3Ni45MzgySDIzNy4yNDhWODYuMTAzNEgyMzZMMjM1Ljk4NCA3Ni45MzgyWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjQ1LjQ3MyA4NS42NjQ0QzI0NC42MzYgODYuMDU5OCAyNDMuODY0IDg2LjI1NzUgMjQzLjE1NSA4Ni4yNTc1QzI0MS44NzEgODYuMjU3NSAyNDEuMTQyIDg1LjcwODEgMjQwLjk2OCA4NC42MDkzQzI0MC45MjcgODQuMzQ3NCAyNDAuOTA2IDgzLjk2NzUgMjQwLjkwNiA4My40Njk0Vjc4LjAwODdIMjM5Ljc5N1Y3Ny4wNjE0TDI0MC45MDYgNzYuOTM4MkwyNDEuMTA2IDc0Ljg0MzNIMjQyLjE3N1Y3Ni45MzgySDI0NC44NDlWNzguMDA4N0gyNDIuMTc3VjgzLjQ0NjNDMjQyLjE3NyA4NC4wNzc4IDI0Mi4yMjMgODQuNDgwOSAyNDIuMzE1IDg0LjY1NTVDMjQyLjQ4NSA4NC45NzM4IDI0Mi44MjQgODUuMTMzIDI0My4zMzIgODUuMTMzQzI0My44NCA4NS4xMzMgMjQ0LjQwOCA4NC45NzY0IDI0NS4wMzQgODQuNjYzMkwyNDUuNDczIDg1LjY2NDRaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTQuNzE1IDg1LjYxODJDMjUzLjY1MyA4Ni4wNDQ0IDI1Mi40NzkgODYuMjU3NSAyNTEuMTk2IDg2LjI1NzVDMjUwLjQ1MSA4Ni4yNTc1IDI0OS44MiA4Ni4xODA1IDI0OS4zMDEgODYuMDI2NEMyNDguNDc0IDg1Ljc5MDIgMjQ3LjkyNSA4NS4zMDI0IDI0Ny42NTMgODQuNTYzMUMyNDcuNDAxIDgzLjg2OTkgMjQ3LjI3NSA4Mi44NDMgMjQ3LjI3NSA4MS40ODIzVjgxLjA4OTVDMjQ3LjI3NSA3OS40NjE4IDI0Ny42MTQgNzguMzE5NCAyNDguMjkyIDc3LjY2MjJDMjQ4LjkwMyA3Ny4wNzY4IDI0OS45MjIgNzYuNzg0MSAyNTEuMzUgNzYuNzg0MUMyNTIuNzQxIDc2Ljc4NDEgMjUzLjY5MSA3Ny4xMjgyIDI1NC4xOTkgNzcuODE2MkMyNTQuNDQ2IDc4LjE0OTkgMjU0LjYwOCA3OC41NTU2IDI1NC42ODUgNzkuMDMzMUMyNTQuNzY3IDc5LjUwNTUgMjU0LjgwOCA3OS45NTczIDI1NC44MDggODAuMzg4NkMyNTQuODA4IDgxLjA2MTMgMjU0Ljc5MyA4MS41ODI0IDI1NC43NjIgODEuOTUyMUMyNTQuMDM4IDgxLjk4MjkgMjUzLjM4OCA4MS45OTgzIDI1Mi44MTMgODEuOTk4M0MyNTIuODEzIDgxLjk5ODMgMjUyLjQgODEuOTk4MyAyNTEuNTczIDgxLjk5ODNDMjUwLjI3OSA4MS45OTgzIDI0OS4yODMgODEuOTQxOSAyNDguNTg1IDgxLjgyODlDMjQ4LjU4NSA4My4wMDk4IDI0OC43MzQgODMuODM0IDI0OS4wMzEgODQuMzAxMkMyNDkuMzk2IDg0Ljg3MTEgMjUwLjEyMyA4NS4xNTYxIDI1MS4yMTEgODUuMTU2MUMyNTIuMyA4NS4xNTYxIDI1My4zNDIgODQuOTQzIDI1NC4zMzggODQuNTE2OUwyNTQuNzE1IDg1LjYxODJaTTI1My41MDYgODAuOTI3OFY4MC4xODg0QzI1My41MDYgNzkuMzgyMyAyNTMuMzUgNzguODA3MiAyNTMuMDM2IDc4LjQ2MzJDMjUyLjY4NyA3OC4wNzgxIDI1Mi4wODQgNzcuODg1NSAyNTEuMjI3IDc3Ljg4NTVDMjUwLjIgNzcuODg1NSAyNDkuNDk5IDc4LjEwODkgMjQ5LjEyNCA3OC41NTU2QzI0OC43NjQgNzguOTgxOCAyNDguNTg1IDc5Ljc3MjUgMjQ4LjU4NSA4MC45Mjc4SDI1My41MDZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTYuOTU3IDc2LjkzODJIMjU4LjMzNUwyNjAuNzM4IDg0LjQxNjdMMjYwLjk2OSA4NS4xNzkyTDI2MS4xODUgODQuNDE2N0wyNjMuNDggNzYuOTM4MkgyNjQuODc0TDI2MS43NzggODYuMTAzNEgyNjAuMDk5TDI1Ni45NTcgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI2OC4xNTUgNzQuNzQzMUMyNjcuODExIDc0Ljc0MzEgMjY3LjU5IDc0LjY5NDQgMjY3LjQ5MyA3NC41OTY4QzI2Ny4zMzkgNzQuNDM3NiAyNjcuMjYyIDc0LjIxOTQgMjY3LjI2MiA3My45NDIxQzI2Ny4yNjIgNzMuNjU5NyAyNjcuMjc3IDczLjQ1OTUgMjY3LjMwOCA3My4zNDE0QzI2Ny4zNDQgNzMuMjE4MiAyNjcuMzk1IDczLjEyMzIgMjY3LjQ2MiA3My4wNTY0QzI2Ny41ODUgNzIuOTMzMiAyNjcuNzczIDcyLjg3MTYgMjY4LjAyNCA3Mi44NzE2QzI2OC4yODEgNzIuODcxNiAyNjguNDYzIDcyLjg4NDQgMjY4LjU3MSA3Mi45MTAxQzI2OC42ODQgNzIuOTM1OCAyNjguNzc3IDcyLjk4NDUgMjY4Ljg0OCA3My4wNTY0QzI2OC45NzIgNzMuMTc5NyAyNjkuMDMzIDczLjM4MjUgMjY5LjAzMyA3My42NjQ5QzI2OS4wMzMgNzMuOTQyMSAyNjkuMDE4IDc0LjE0MjQgMjY4Ljk4NyA3NC4yNjU2QzI2OC45NjEgNzQuMzgzNyAyNjguOTE1IDc0LjQ3ODcgMjY4Ljg0OCA3NC41NTA2QzI2OC43MiA3NC42NzkgMjY4LjQ4OSA3NC43NDMxIDI2OC4xNTUgNzQuNzQzMVpNMjY3LjUzMSA3Ni45MzgySDI2OC43OTVWODYuMTAzNEgyNjcuNTQ3TDI2Ny41MzEgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI3MS42MDYgODUuMjMzMUwyNzYuMjk2IDc4LjAwMUgyNzEuNTA2Vjc2LjkzODJIMjc3Ljg1MlY3Ny44MDg1TDI3My4xNzcgODUuMDMyOUgyNzguMDQ1Vjg2LjEwMzRIMjcxLjYwNlY4NS4yMzMxWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjA0LjE3IDE2LjQ4MUMyMDQuMTcgMTQuMjczOSAyMDUuOTU5IDEyLjQ4NDYgMjA4LjE2NiAxMi40ODQ2SDMzNi4wNUMzMzguMjU3IDEyLjQ4NDYgMzQwLjA0NiAxNC4yNzM5IDM0MC4wNDYgMTYuNDgxVjE2LjQ4MUMzNDAuMDQ2IDE4LjY4ODEgMzM4LjI1NyAyMC40NzczIDMzNi4wNSAyMC40NzczSDIwOC4xNjZDMjA1Ljk1OSAyMC40NzczIDIwNC4xNyAxOC42ODgxIDIwNC4xNyAxNi40ODFWMTYuNDgxWiIgZmlsbD0iI0YzRjZGQSIvPgo8cGF0aCBkPSJNMTY1LjIwNSAxNi40ODA4QzE2NS4yMDUgMTkuMjM5NyAxNjIuOTY5IDIxLjQ3NjMgMTYwLjIxIDIxLjQ3NjNDMTU3LjQ1MSAyMS40NzYzIDE1NS4yMTQgMTkuMjM5NyAxNTUuMjE0IDE2LjQ4MDhDMTU1LjIxNCAxMy43MjE5IDE1Ny40NTEgMTEuNDg1NCAxNjAuMjEgMTEuNDg1NEMxNjIuOTY5IDExLjQ4NTQgMTY1LjIwNSAxMy43MjE5IDE2NS4yMDUgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE4MS4xOTEgMTYuNDgwOEMxODEuMTkxIDE5LjIzOTcgMTc4Ljk1NCAyMS40NzYzIDE3Ni4xOTUgMjEuNDc2M0MxNzMuNDM2IDIxLjQ3NjMgMTcxLjIgMTkuMjM5NyAxNzEuMiAxNi40ODA4QzE3MS4yIDEzLjcyMTkgMTczLjQzNiAxMS40ODU0IDE3Ni4xOTUgMTEuNDg1NEMxNzguOTU0IDExLjQ4NTQgMTgxLjE5MSAxMy43MjE5IDE4MS4xOTEgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE5Ny4xNzYgMTYuNDgwOEMxOTcuMTc2IDE5LjIzOTcgMTk0Ljk0IDIxLjQ3NjMgMTkyLjE4MSAyMS40NzYzQzE4OS40MjIgMjEuNDc2MyAxODcuMTg2IDE5LjIzOTcgMTg3LjE4NiAxNi40ODA4QzE4Ny4xODYgMTMuNzIxOSAxODkuNDIyIDExLjQ4NTQgMTkyLjE4MSAxMS40ODU0QzE5NC45NCAxMS40ODU0IDE5Ny4xNzYgMTMuNzIxOSAxOTcuMTc2IDE2LjQ4MDhaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNzQuMDk5IC0wLjc0MTUzNUMxNzQuMjgzIC0wLjkwOTg0MyAxNzQuNTI0IC0xLjAwMzE3IDE3NC43NzMgLTEuMDAzMTdIMzE4LjQ5QzMxOC43MzkgLTEuMDAzMTcgMzE4Ljk4IC0wLjkwOTg0MyAzMTkuMTY0IC0wLjc0MTUzM1YtMC43NDE1MzNDMzE5LjgzNyAtMC4xMjYzMTYgMzE5LjQwMiAwLjk5NTAwOCAzMTguNDkgMC45OTUwMDhIMTc0Ljc3M0MxNzMuODYxIDAuOTk1MDA4IDE3My40MjYgLTAuMTI2MzE5IDE3NC4wOTkgLTAuNzQxNTM1Vi0wLjc0MTUzNVoiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTM0Ljg3NSAxMTkuNzM1TDQyLjU0NjUgMTI2LjEzNkwzMC4zODU1IDE0MC43MTJMMjIuNzE0IDEzNC4zMTFMMzQuODc1IDExOS43MzVaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik0yNy4wOTcyIDEyOS4yNTdMMzQuNzY4NyAxMzUuNjU3QzM0Ljc2ODcgMTM1LjY1NyAzOC44MDggMTQxLjExMiAzOS4zMDM0IDE0Ni41OTdDMzkuNDk0MSAxNDguNzA4IDM3LjA2MzMgMTQ5LjI4MiAzNy4wNjMzIDE0OS4yODJMMjEuMzM2NyAxMzYuMTYxTDI3LjA5NzIgMTI5LjI1N1oiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTUyLjg5MjEgMzIuODE0NUw5Mi4yNzE4IDY0LjI4NThDMTA0Ljg3NCA5Ni4yOTIzIDM4LjMyMDkgMTMzLjcyMyAzOC4zMjA5IDEzMy43MjNMMjcuODU1NiAxMjYuMDU4QzI3Ljg1NTYgMTI2LjA1OCAzOS42ODg4IDEwOC41MjYgNTAuODA5NSA4MS43Njk5QzU2LjgzMDEgNjcuMjg0MyA1NC41NzMxIDQ4LjE0ODggNTIuODkyMSAzMi44MTQ1WiIgZmlsbD0iIzBENzZCRiIvPgo8cGF0aCBkPSJNMTAzLjI2MiAxMzAuNzI2SDExMy4yNTNWMTQ5LjcwOEgxMDMuMjYyVjEzMC43MjZaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik01NC4zMDY3IDQyLjMwNTlDNTAuODEwMSAzNS44MTE4IDQ4LjgxMTcgMzEuMzE1OSA0OS43NzM5IDE3LjgyODFIMTE1LjAxMUMxMjEuMjQ2IDI4LjMxODYgMTI1LjI0MiA1NC4yOTQ5IDEyNS4yNDIgNzUuNzc1NEMxMjUuMjQyIDk3LjI1NTkgMTIyLjI0NSAxMTYuMjM5IDExNS4wMTEgMTQxLjIxNkgxMDAuNzY0QzEwMC43NjQgMTQxLjIxNiA5NC43NzAxIDEwMS4yNTIgOTIuMjcyMyA4Mi43NjlDOTAuOTY3OSA3My4xMTYgNTcuMDE5NyA0Ny4zNDQ1IDU0LjMwNjcgNDIuMzA1OVoiIGZpbGw9IiMxMTlERkYiLz4KPHBhdGggZD0iTTEwMy4yNjIgMTQ0LjQyNkgxMTMuMjUzQzExMy4yNTMgMTQ0LjQyNiAxMTkuODQ5IDE0Ni4wMjcgMTIzLjc0NCAxNDkuOTIxQzEyNS4yNDIgMTUxLjQyIDEyMy43NDQgMTUzLjQxOCAxMjMuNzQ0IDE1My40MThIMTAzLjI2MlYxNDQuNDI2WiIgZmlsbD0iIzUwNjc4NCIvPgo8L2c+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTkuOTk5ODQgMTYuNjY2N0M2LjMyNDg0IDE2LjY2NjcgMy4zMzMxNyAxMy42NzUgMy4zMzMxNyAxMEMzLjMzMzE3IDYuMzI1MDIgNi4zMjQ4NCAzLjMzMzM1IDkuOTk5ODQgMy4zMzMzNUMxMy42NzQ4IDMuMzMzMzUgMTYuNjY2NSA2LjMyNTAyIDE2LjY2NjUgMTBDMTYuNjY2NSAxMy42NzUgMTMuNjc0OCAxNi42NjY3IDkuOTk5ODQgMTYuNjY2N1pNOS45OTk4NCAxLjY2NjY5QzguOTA1NDkgMS42NjY2OSA3LjgyMTg2IDEuODgyMjQgNi44MTA4MSAyLjMwMTAyQzUuNzk5NzYgMi43MTk4MSA0Ljg4MTEgMy4zMzM2NCA0LjEwNzI4IDQuMTA3NDZDMi41NDQ0OCA1LjY3MDI3IDEuNjY2NSA3Ljc4OTg4IDEuNjY2NSAxMEMxLjY2NjUgMTIuMjEwMiAyLjU0NDQ4IDE0LjMyOTggNC4xMDcyOCAxNS44OTI2QzQuODgxMSAxNi42NjY0IDUuNzk5NzYgMTcuMjgwMiA2LjgxMDgxIDE3LjY5OUM3LjgyMTg2IDE4LjExNzggOC45MDU0OSAxOC4zMzM0IDkuOTk5ODQgMTguMzMzNEMxMi4yMSAxOC4zMzM0IDE0LjMyOTYgMTcuNDU1NCAxNS44OTI0IDE1Ljg5MjZDMTcuNDU1MiAxNC4zMjk4IDE4LjMzMzIgMTIuMjEwMiAxOC4zMzMyIDEwQzE4LjMzMzIgOC45MDU2NyAxOC4xMTc2IDcuODIyMDQgMTcuNjk4OCA2LjgxMDk5QzE3LjI4IDUuNzk5OTUgMTYuNjY2MiA0Ljg4MTI5IDE1Ljg5MjQgNC4xMDc0NkMxNS4xMTg2IDMuMzMzNjQgMTQuMTk5OSAyLjcxOTgxIDEzLjE4ODkgMi4zMDEwMkMxMi4xNzc4IDEuODgyMjQgMTEuMDk0MiAxLjY2NjY5IDkuOTk5ODQgMS42NjY2OVoiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iNi4zNjc2OCIgeT0iNy41NDg1NSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDYuMzY3NjggNy41NDg1NSkiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iMTIuNDUxNyIgeT0iNi4zNjc3MSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTIuNDUxNyA2LjM2NzcxKSIgZmlsbD0iI0VGNTUzQiIvPgo8L3N2Zz4K\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=style&index=0&id=581e8819&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=style&index=0&id=581e8819&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=31be4117&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=31be4117&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=style&index=0&id=30581f31&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=style&index=0&id=30581f31&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6d818ae0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6d818ae0&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/file.f5540c43.png\";","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iIzExOURGRiIgc3Ryb2tlPSIjMEQ3NkJGIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjVMNi43NSAxNC4yNUwyLjYyNSAxMC4xMjVMMy42ODI1IDkuMDY3NUw2Ljc1IDEyLjEyNzVMMTQuNjkyNSA0LjE5MjVMMTUuNzUgNS4yNVoiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZCIgeD0iMC42MjUiIHk9IjMuMTkyNSIgd2lkdGg9IjE3LjEyNSIgaGVpZ2h0PSIxNC4wNTc1IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+CjxmZU9mZnNldCBkeT0iMSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIi8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAuMTY0NzA2IDAgMCAwIDAgMC4yNDcwNTkgMCAwIDAgMCAwLjM3MjU0OSAwIDAgMCAwLjcgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE0IiBoZWlnaHQ9IjkwIiB2aWV3Qm94PSIwIDAgMTE0IDkwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNOTYuMzgyOCAxLjkzODk1QzkxLjQyNDQgMC4wOTI4MTQgODYuNjAyMiA1LjYyNTA1IDg1Ljg1OCAxMC42ODE2TDk3LjI4NTEgMTUuNTQ5QzEwMC4xOTQgMTAuNTg1NiAxMDEuMzQxIDMuNzg1MDggOTYuMzgyOCAxLjkzODk1WiIgZmlsbD0iI0YzQzZCRiIvPgo8cGF0aCBkPSJNODQuOTc3NSA5LjEyNDEzQzc1LjA2NTMgMzUuMjAzNSAzMC43MTc5IDQ2LjczNTkgMjEuNDEwNiAzNy43MjY1TDE0LjUzNTkgNzkuNDg1N0M2Ny43NjA3IDg2LjQ5MTIgOTEuOTI2NCA1NS40MTExIDk5LjA5NzMgMTQuNzEzOEw4NC45Nzc1IDkuMTI0MTNaIiBmaWxsPSIjQTJCMUM2Ii8+Cjwvc3ZnPgo=\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=0dd86013&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=0dd86013&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=style&index=0&id=075cb800&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=style&index=0&id=075cb800&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=513fdbc5&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=513fdbc5&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=68ef9d6c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=68ef9d6c&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=style&index=0&id=3a61cb73&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=style&index=0&id=3a61cb73&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=style&index=0&id=73e5054b&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=style&index=0&id=73e5054b&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=25aa04f9&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=25aa04f9&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ca17e020&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ca17e020&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=style&index=0&id=62096452&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=style&index=0&id=62096452&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=style&index=0&id=59fd41a8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=style&index=0&id=59fd41a8&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExIDlIMTNWN0gxMVY5Wk0xMiAyMEM3LjU5IDIwIDQgMTYuNDEgNCAxMkM0IDcuNTkgNy41OSA0IDEyIDRDMTYuNDEgNCAyMCA3LjU5IDIwIDEyQzIwIDE2LjQxIDE2LjQxIDIwIDEyIDIwWk0xMiAyQzEwLjY4NjggMiA5LjM4NjQyIDIuMjU4NjYgOC4xNzMxNyAyLjc2MTJDNi45NTk5MSAzLjI2Mzc1IDUuODU3NTIgNC4wMDAzNSA0LjkyODkzIDQuOTI4OTNDMy4wNTM1NyA2LjgwNDMgMiA5LjM0Nzg0IDIgMTJDMiAxNC42NTIyIDMuMDUzNTcgMTcuMTk1NyA0LjkyODkzIDE5LjA3MTFDNS44NTc1MiAxOS45OTk3IDYuOTU5OTEgMjAuNzM2MiA4LjE3MzE3IDIxLjIzODhDOS4zODY0MiAyMS43NDEzIDEwLjY4NjggMjIgMTIgMjJDMTQuNjUyMiAyMiAxNy4xOTU3IDIwLjk0NjQgMTkuMDcxMSAxOS4wNzExQzIwLjk0NjQgMTcuMTk1NyAyMiAxNC42NTIyIDIyIDEyQzIyIDEwLjY4NjggMjEuNzQxMyA5LjM4NjQyIDIxLjIzODggOC4xNzMxN0MyMC43MzYyIDYuOTU5OTEgMTkuOTk5NyA1Ljg1NzUyIDE5LjA3MTEgNC45Mjg5M0MxOC4xNDI1IDQuMDAwMzUgMTcuMDQwMSAzLjI2Mzc1IDE1LjgyNjggMi43NjEyQzE0LjYxMzYgMi4yNTg2NiAxMy4zMTMyIDIgMTIgMlYyWk0xMSAxN0gxM1YxMUgxMVYxN1oiIGZpbGw9IiNBMkIxQzYiLz4KPC9zdmc+Cg==\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=style&index=0&id=0c2b486e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=style&index=0&id=0c2b486e&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=style&index=0&id=060be7fb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=style&index=0&id=060be7fb&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=style&index=0&id=0da5ae79&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=style&index=0&id=0da5ae79&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=style&index=0&id=86f3a16c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=style&index=0&id=86f3a16c&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=style&index=0&id=3b6366bb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=style&index=0&id=3b6366bb&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=style&index=0&id=69060e4e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=style&index=0&id=69060e4e&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2b039cec&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2b039cec&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=style&index=0&id=658886c7&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=style&index=0&id=658886c7&scoped=true&lang=css&\""],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?9b05","webpack:///./src/components/Logs.vue?0fc7","webpack:///./src/assets/images/success.svg","webpack:///./src/assets/images/chevron.svg","webpack:///./src/components/svg/export.vue?1835","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue?f796","webpack:///./src/components/svg/addTable.vue?404b","webpack:///./src/assets/images/body.svg","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue?8a2b","webpack:///./src/views/Main/Workspace/Schema/index.vue?d772","webpack:///./src/assets/images/rightArm.svg","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue?99f2","webpack:///./src/views/Main/AppDiagnosticInfo.vue?eb56","webpack:///./src/views/Main/Workspace/index.vue?2f51","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue?e14b","webpack:///./src/views/Main/MainMenu.vue?58b4","webpack:///./src/components/svg/treeChevron.vue?b6ad","webpack:///./src/components/DbUploader.vue?2df9","webpack:///./src/assets/images/top.svg","webpack:///./src/assets/images/checkbox_checked_disabled.svg","webpack:///./src/components/svg/dropDownChevron.vue?d4f2","webpack:///./src/components/svg/sort.vue?a914","webpack:///./src/App.vue?6597","webpack:///./src/App.vue","webpack:///./src/views/Main/Workspace/index.vue?5f2c","webpack:///./src/components/Splitpanes/index.vue?5103","webpack:///./src/components/Splitpanes/splitter.js","webpack:///src/components/Splitpanes/index.vue","webpack:///./src/components/Splitpanes/index.vue?7002","webpack:///./src/components/Splitpanes/index.vue","webpack:///./src/views/Main/Workspace/Schema/index.vue?b274","webpack:///./src/lib/utils/fileIo.js","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue?ead1","webpack:///./src/components/svg/treeChevron.vue?5188","webpack:///src/components/svg/treeChevron.vue","webpack:///./src/components/svg/treeChevron.vue?1b38","webpack:///./src/components/svg/treeChevron.vue","webpack:///src/views/Main/Workspace/Schema/TableDescription.vue","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue?c905","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue","webpack:///./src/components/TextField.vue?5c99","webpack:///./src/components/svg/hint.vue?d640","webpack:///./src/tooltipMixin.js","webpack:///src/components/svg/hint.vue","webpack:///./src/components/svg/hint.vue?7e42","webpack:///./src/components/svg/hint.vue","webpack:///src/components/TextField.vue","webpack:///./src/components/TextField.vue?2591","webpack:///./src/components/TextField.vue","webpack:///./src/components/DbUploader.vue?ab99","webpack:///./src/components/svg/changeDb.vue?4d10","webpack:///src/components/svg/changeDb.vue","webpack:///./src/components/svg/changeDb.vue?8a76","webpack:///./src/components/svg/changeDb.vue","webpack:///./src/lib/database/_statements.js","webpack:///./src/lib/database/_worker.js","webpack:///./src/lib/database/index.js","webpack:///./src/components/CsvImport/index.vue?9f88","webpack:///./src/components/CsvImport/csv.js","webpack:///./src/components/svg/close.vue?b5aa","webpack:///src/components/svg/close.vue","webpack:///./src/components/svg/close.vue?e99c","webpack:///./src/components/svg/close.vue","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue?0e7d","webpack:///./src/components/CsvImport/DelimiterSelector/ascii.js","webpack:///./src/components/svg/dropDownChevron.vue?717a","webpack:///src/components/svg/dropDownChevron.vue","webpack:///./src/components/svg/dropDownChevron.vue?82eb","webpack:///./src/components/svg/dropDownChevron.vue","webpack:///./src/components/svg/clear.vue?ce36","webpack:///src/components/svg/clear.vue","webpack:///./src/components/svg/clear.vue?295f","webpack:///./src/components/svg/clear.vue","webpack:///src/components/CsvImport/DelimiterSelector/index.vue","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue?8465","webpack:///./src/components/CsvImport/DelimiterSelector/index.vue","webpack:///./src/components/CheckBox.vue?4353","webpack:///src/components/CheckBox.vue","webpack:///./src/components/CheckBox.vue?093c","webpack:///./src/components/CheckBox.vue","webpack:///./src/components/SqlTable/index.vue?ca2f","webpack:///./src/components/SqlTable/Pager.vue?fb09","webpack:///src/components/SqlTable/Pager.vue","webpack:///./src/components/SqlTable/Pager.vue?7612","webpack:///./src/components/SqlTable/Pager.vue","webpack:///src/components/SqlTable/index.vue","webpack:///./src/components/SqlTable/index.vue?c2e6","webpack:///./src/components/SqlTable/index.vue","webpack:///./src/components/Logs.vue?54e0","webpack:///./src/components/LoadingIndicator.vue?16dc","webpack:///src/components/LoadingIndicator.vue","webpack:///./src/components/LoadingIndicator.vue?19ce","webpack:///./src/components/LoadingIndicator.vue","webpack:///src/components/Logs.vue","webpack:///./src/components/Logs.vue?e94a","webpack:///./src/components/Logs.vue","webpack:///./src/lib/utils/time.js","webpack:///src/components/CsvImport/index.vue","webpack:///./src/components/CsvImport/index.vue?ee8f","webpack:///./src/components/CsvImport/index.vue","webpack:///src/components/DbUploader.vue","webpack:///./src/components/DbUploader.vue?1d2f","webpack:///./src/components/DbUploader.vue","webpack:///./src/components/svg/export.vue?8e9d","webpack:///src/components/svg/export.vue","webpack:///./src/components/svg/export.vue?fe2d","webpack:///./src/components/svg/export.vue","webpack:///./src/components/svg/addTable.vue?f835","webpack:///src/components/svg/addTable.vue","webpack:///./src/components/svg/addTable.vue?28ba","webpack:///./src/components/svg/addTable.vue","webpack:///src/views/Main/Workspace/Schema/index.vue","webpack:///./src/views/Main/Workspace/Schema/index.vue?a1f6","webpack:///./src/views/Main/Workspace/Schema/index.vue","webpack:///./src/views/Main/Workspace/Tabs/index.vue?1dbc","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue?7b3d","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue?9c7a","webpack:///./src/store/state.js","webpack:///./src/store/mutations.js","webpack:///./src/store/actions.js","webpack:///./src/store/index.js","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/hint.js","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue?de37","webpack:///./src/components/IconButton.vue?0220","webpack:///src/components/IconButton.vue","webpack:///./src/components/IconButton.vue?8571","webpack:///./src/components/IconButton.vue","webpack:///./src/components/svg/table.vue?33cf","webpack:///src/components/svg/table.vue","webpack:///./src/components/svg/table.vue?491d","webpack:///./src/components/svg/table.vue","webpack:///./src/components/svg/sqlEditor.vue?03d5","webpack:///src/components/svg/sqlEditor.vue","webpack:///./src/components/svg/sqlEditor.vue?26e3","webpack:///./src/components/svg/sqlEditor.vue","webpack:///./src/components/svg/dataView.vue?9721","webpack:///src/components/svg/dataView.vue","webpack:///./src/components/svg/dataView.vue?ea7d","webpack:///./src/components/svg/dataView.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue?24a6","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue","webpack:///./src/components/svg/run.vue?9a00","webpack:///src/components/svg/run.vue","webpack:///./src/components/svg/run.vue?2175","webpack:///./src/components/svg/run.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue?dba8","webpack:///./src/views/Main/Workspace/Tabs/Tab/SqlEditor/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue?6d9d","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue?c01b","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/chartHelper.js","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue?81fb","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue?2f65","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue?25e9","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue?a241","webpack:///./src/components/svg/sort.vue?4e5d","webpack:///src/components/svg/sort.vue","webpack:///./src/components/svg/sort.vue?8d22","webpack:///./src/components/svg/sort.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue?e25c","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/PivotSortBtn.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/pivotHelper.js","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue?0f10","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue?9f12","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue","webpack:///./src/components/svg/chart.vue?4981","webpack:///src/components/svg/chart.vue","webpack:///./src/components/svg/chart.vue?3a5e","webpack:///./src/components/svg/chart.vue","webpack:///./src/components/svg/pivot.vue?6502","webpack:///src/components/svg/pivot.vue","webpack:///./src/components/svg/pivot.vue?5db1","webpack:///./src/components/svg/pivot.vue","webpack:///./src/components/svg/png.vue?479f","webpack:///src/components/svg/png.vue","webpack:///./src/components/svg/png.vue?870d","webpack:///./src/components/svg/png.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/DataView/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue?90d3","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue?b0af","webpack:///src/views/Main/Workspace/Tabs/Tab/RunResult.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue?05ce","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue","webpack:///src/views/Main/Workspace/Tabs/Tab/index.vue","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue?c6f1","webpack:///./src/views/Main/Workspace/Tabs/Tab/index.vue","webpack:///src/views/Main/Workspace/Tabs/index.vue","webpack:///./src/views/Main/Workspace/Tabs/index.vue?8b02","webpack:///./src/views/Main/Workspace/Tabs/index.vue","webpack:///src/views/Main/Workspace/index.vue","webpack:///./src/views/Main/Workspace/index.vue?1a44","webpack:///./src/views/Main/Workspace/index.vue","webpack:///./src/views/Main/Inquiries/index.vue?9e69","webpack:///./src/views/Main/Inquiries/svg/rename.vue?a6c8","webpack:///src/views/Main/Inquiries/svg/rename.vue","webpack:///./src/views/Main/Inquiries/svg/rename.vue?5205","webpack:///./src/views/Main/Inquiries/svg/rename.vue","webpack:///./src/views/Main/Inquiries/svg/copy.vue?8244","webpack:///src/views/Main/Inquiries/svg/copy.vue","webpack:///./src/views/Main/Inquiries/svg/copy.vue?f41f","webpack:///./src/views/Main/Inquiries/svg/copy.vue","webpack:///./src/views/Main/Inquiries/svg/delete.vue?f91c","webpack:///src/views/Main/Inquiries/svg/delete.vue","webpack:///./src/views/Main/Inquiries/svg/delete.vue?009b","webpack:///./src/views/Main/Inquiries/svg/delete.vue","webpack:///./src/lib/storedInquiries/_migrations.js","webpack:///./src/lib/storedInquiries/index.js","webpack:///src/views/Main/Inquiries/index.vue","webpack:///./src/views/Main/Inquiries/index.vue?33c1","webpack:///./src/views/Main/Inquiries/index.vue","webpack:///./src/views/Welcome.vue?511a","webpack:///src/views/Welcome.vue","webpack:///./src/views/Welcome.vue?253e","webpack:///./src/views/Welcome.vue","webpack:///./src/views/Main/index.vue?dd29","webpack:///./src/views/Main/MainMenu.vue?4d18","webpack:///./src/views/Main/AppDiagnosticInfo.vue?7da0","webpack:///src/views/Main/AppDiagnosticInfo.vue","webpack:///./src/views/Main/AppDiagnosticInfo.vue?4caa","webpack:///./src/views/Main/AppDiagnosticInfo.vue","webpack:///src/views/Main/MainMenu.vue","webpack:///./src/views/Main/MainMenu.vue?76b3","webpack:///./src/views/Main/MainMenu.vue","webpack:///src/views/Main/index.vue","webpack:///./src/views/Main/index.vue?5975","webpack:///./src/views/Main/index.vue","webpack:///./src/router.js","webpack:///./src/main.js","webpack:///./src/components/svg/changeDb.vue?8a94","webpack:///./src/views/Main/Workspace/Tabs/index.vue?243c","webpack:///./src/assets/images/checkbox_checked_light.svg","webpack:///./src/assets/images/bottom.svg","webpack:///./src/assets/images/error.svg","webpack:///./src/views/Main/Inquiries/svg/delete.vue?1927","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue?07b5","webpack:///./src/components/svg/hint.vue?b071","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/PivotUi/index.vue?df15","webpack:///./src/assets/images/file.png","webpack:///./src/assets/images/checkbox_checked.svg","webpack:///./src/assets/images/leftArm.svg","webpack:///./src/components/Splitpanes/index.vue?b0be","webpack:///./src/components/CheckBox.vue?8ce8","webpack:///./src/views/Main/Inquiries/svg/rename.vue?6a9c","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/index.vue?3c1f","webpack:///./src/components/CsvImport/index.vue?7e36","webpack:///./src/views/Main/Inquiries/svg/copy.vue?7022","webpack:///./src/views/Main/Workspace/Tabs/Tab/RunResult.vue?ea72","webpack:///./src/views/Main/index.vue?b83e","webpack:///./src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue?b2a2","webpack:///./src/components/LoadingIndicator.vue?d890","webpack:///./src/components/TextField.vue?c2e5","webpack:///./src/assets/images/info.svg","webpack:///./src/components/IconButton.vue?674f","webpack:///./src/views/Main/Workspace/Schema/TableDescription.vue?8581","webpack:///./src/views/Welcome.vue?1e1a","webpack:///./src/components/svg/close.vue?17e8","webpack:///./src/views/Main/Workspace/Tabs/Tab/SideToolBar.vue?dffd","webpack:///./src/components/svg/clear.vue?d1b6","webpack:///./src/views/Main/Inquiries/index.vue?f0fe","webpack:///./src/components/SqlTable/Pager.vue?b07e"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","attrs","staticRenderFns","component","staticClass","size","max","scopedSlots","_u","fn","proxy","ref","class","horizontal","dragging","style","styles","paneBefore","_t","on","bindEvents","after","before","paneAfter","$event","togglePane","_e","getCurrentMouseDrag","container","rect","getBoundingClientRect","touches","clientX","clientY","x","left","y","top","getCurrentDragPercentage","isHorisontal","drag","containerSize","calculateOffset","paneBeforeMax","paneAfterMax","dragPercentage","paneBeforeMaxReached","paneAfterMaxReached","Math","min","props","beforeMinimising","movableSplitter","visibility","computed","movableSplitterStyle","directionBeforeIconStyle","rotation","expanded","transform","translation","directionAfterIconStyle","methods","addEventListener","onMouseMove","onMouseUp","unbindEvents","removeEventListener","preventDefault","moveSplitter","dir","offset","pane","otherPane","mounted","$refs","model","callback","$$v","filter","expression","schemaVisible","directives","rawName","schema","_v","_s","dbName","exportToFile","addCsv","_l","table","columns","file","$store","state","db","isDatabase","dbTypes","includes","test","getFileName","replace","downloadFromUrl","url","fileName","downloader","href","download","click","URL","revokeObjectURL","str","blob","Blob","createObjectURL","getFileFromUser","uploader","accept","files","importFile","reader","FileReader","then","readAsText","readFile","path","fetch","readAsArrayBuffer","fileReader","abort","colVisible","col","index","Boolean","required","components","errorMsg","disabled","label","hint","maxHintWidth","width","placeholder","domProps","$emit","stopPropagation","onClick","showTooltip","hideTooltip","assign","tooltipStyle","maxWidth","tooltipElement","tooltip","tooltipPosition","position","split","offsetWidth","mixins","tooltipMixin","browse","drop","newDb","cancelCsvImport","finish","generateChunks","matrix","keys","map","row","transposedMatrix","column","count","ceil","start","end","getInsertStmt","tabName","colList","join","params","getCreateStatement","getAst","sql","fixedSql","sqliteParser","getColumns","ast","columnDefinition","statement","format","definition","args","forEach","item","variant","datatype","Worker_fn","Worker","getNewDatabase","worker","Database","progressCounterIds","pw","PromiseWorker","importProgresses","progress","id","dispatchEvent","CustomEvent","detail","terminate","EventTarget","progressCounterId","postMessage","action","refreshSchema","fu","fileContent","buffer","res","getSchemaSql","execute","parsedSchema","stms","commands","results","startsWith","dialogName","disableDialog","tableNameError","tableName","previewCsv","delimiter","quoteChar","escapeChar","header","previewData","rowCount","importCsvMessages","importCsvCompleted","loadFromCsv","hintsByCode","MissingQuotes","TooFewFields","TooManyFields","getResult","source","meta","fields","trim","Date","toISOString","parse","config","defaultConfig","newline","transformHeader","dynamicTyping","preview","encoding","comments","step","complete","hasErrors","messages","errors","msg","code","downloadRequestHeaders","downloadRequestBody","skipEmptyLines","chunkSize","fastMode","beforeFirstChunk","withCredentials","delimitersToGuess","Papa","RECORD_SEP","UNIT_SEP","Number","default","onContainerClick","filled","composing","inputValue","getSymbolName","nativeOn","clear","showOptions","option","chooseOption","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","124","125","126","127","options","watch","created","ascii","charCodeAt","toString","delimiterInput","focus","checked","theme","String","validator","init","th","onScrollTable","refInFor","currentPageData","rowIndex","colIndex","dataSet","time","pageCount","currentPage","chevron","page","pageSize","tableWidth","resizeObserver","cellStyle","calculateHeadersWidth","$nextTick","scrollLeft","ResizeObserver","observe","beforeDestroy","unobserve","serializeMessage","animationClass","strokeWidth","radius","strokeDasharray","circleProgress","strokeDashoffset","scrollToBottom","getPeriod","diff","getTime","seconds","toFixed","debounce","func","ms","arguments","CloseIcon","TextField","DelimiterSelector","CheckBox","SqlTable","Logs","addedTable","validateTableName","$modal","hide","reset","open","sanitizeTableName","show","ChangeDbIcon","CsvImport","animationPromise","animationName","shutDown","loadDb","checkFile","dataTransfer","TableDescription","TreeChevron","DbUploader","ExportIcon","AddTableIcon","export","tabs","tab","selectedIndex","selectTab","isSaved","tempName","beforeCloseTab","query","viewOptions","viewType","isPredefined","$root","closingTabIndex","closeTab","saveAndClose","tabIndex","layout","isGettingResults","onSwitchView","initViewOptions","initViewType","onDataViewUpdate","cmOptions","onChange","runDisabled","currentTab","currentTabId","untitledLastIndex","predefinedInquiries","setDb","updateTab","oldId","Vue","set","deleteTab","setCurrentTabId","setCurrentTab","updatePredefinedInquiries","inquiries","Array","isArray","addTab","JSON","stringify","nanoid","some","openedTab","use","Vuex","Store","mutations","actions","getHints","cm","token","getTokenAt","getCursor","string","toUpperCase","CM","list","text","hintOptions","tables","store","completeSingle","completeOnSingleClick","alignWithWord","showHintOnDemand","editor","showHint","ch","tokenType","panel","$slots","active","IconButton","SqlEditorIcon","DataViewIcon","TableIcon","codemirror","SideToolBar","RunIcon","tabSize","lineNumbers","line","autoRefresh","extraKeys","tag","initMode","initOptions","dataSource","importToPngEnabled","loadingImage","saveAsPng","dataSources","visible","height","frames","editable","displaylogo","modeBarButtonsToRemove","dataSourceOptions","plotly","update","onRender","getOptionsFromDataSources","getOptionsForSave","stateCopy","emptySources","dereference","PlotlyEditor","chartHelper","handleResize","chartContainer","pivotOptions","collapsed","colsToSelect","cols","slot","colOrder","rowsToSelect","rows","rowOrder","aggregators","aggregator","valCount","keyNames","val1","val2","renderers","renderer","direction","changeSorting","asc","SortIcon","zeroValAggregators","twoValAggregators","_getDataSources","pivotData","rowKeys","getRowKeys","colKeys","getColKeys","colKey","rowKey","dataSourcesByRows","dataSourcesByCols","rowAttrs","colAttrs","sourceColKey","getAggregator","sourceRowKey","customChartRenderer","customChartComponent","$mount","$","$el","extend","pivotUtilities","export_renderers","plotly_renderers","fun","Multiselect","PivotSortBtn","returnValue","$on","vals","aggregatorName","rendererName","rendererOptions","PivotUi","immediate","handler","pivotOutput","Event","autosize","plotlyConfig","responsive","customChartOptions","chartComponent","Chart","Pivot","ChartIcon","PivotIcon","PngIcon","viewComponent","LoadingIndicator","runResultPanel","calculatePageSize","floor","freeSpace","SqlEditor","DataView","RunResult","Splitpanes","Teleport","initQuery","sqlEditor","dataView","isActive","commit","from","to","fromPosition","Tab","leavingSqliteviz","Schema","Tabs","showedInquiries","importInquiries","selectedInquiriesCount","exportSelectedInquiries","selectedNotPredefinedCount","showDeleteDialog","selectedInquiriesIds","toggleSelectAll","maxTableHeight","inquiry","openInquiry","selectAll","has","toggleRow","_f","createdAt","showRenameDialog","duplicateInquiry","Set","add","newName","renameInquiry","deleteGroup","deleteDialogMsg","deleteInquiry","_migrate","installedVersion","inquire","chart","migrate","migration","version","getStoredInquiries","myInquiries","localStorage","getItem","oldInquiries","updateStorage","baseInquiry","newInquiry","isTabNeedName","inquiryTab","isFromScratch","initName","save","inquiryIndex","findIndex","oldInquiry","setItem","serialiseInquiries","inquiryList","preparedData","deserialiseInquiries","allInquiriesIds","readPredefinedInquiries","json","RenameIcon","CopyIcon","DeleteIcon","processedInquiryId","predefinedInquiriesIds","allInquiries","concat","processedInquiryIndex","storedInquiries","calcMaxTableHeight","tableResizeObserver","calcNameWidth","filters","date","hour12","hour","minute","toLocaleDateString","dateOptions","dispatch","processedInquiry","$set","idsSet","values","next","delete","findTabIndex","rowCheckBox","mainCheckBox","$router","currentInquiry","$route","checkInquiryBeforeSave","createNewInquiry","cancelSave","saveInquiry","opt","info","AppDiagnosticInfo","_keyListener","$off","isNeedName","ctrlKey","metaKey","VueRouter","routes","Welcome","Main","children","Workspace","Inquiries","router","beforeEach","database","location","hostname","VuePlugin","VModal","productionTip","render","h","App"],"mappings":"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","file":"js/app.e4131c1b.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-60cbf026\":\"37d9df6c\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=style&index=0&id=1c9f27dc&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=style&index=0&id=1c9f27dc&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMSAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwLjQ5OTggMTYuNjY2N0M2LjgyNDg0IDE2LjY2NjcgMy44MzMxNyAxMy42NzUgMy44MzMxNyAxMEMzLjgzMzE3IDYuMzI1MDIgNi44MjQ4NCAzLjMzMzM1IDEwLjQ5OTggMy4zMzMzNUMxNC4xNzQ4IDMuMzMzMzUgMTcuMTY2NSA2LjMyNTAyIDE3LjE2NjUgMTBDMTcuMTY2NSAxMy42NzUgMTQuMTc0OCAxNi42NjY3IDEwLjQ5OTggMTYuNjY2N1pNMTAuNDk5OCAxLjY2NjY5QzkuNDA1NDkgMS42NjY2OSA4LjMyMTg2IDEuODgyMjQgNy4zMTA4MSAyLjMwMTAyQzYuMjk5NzYgMi43MTk4MSA1LjM4MTEgMy4zMzM2NCA0LjYwNzI4IDQuMTA3NDZDMy4wNDQ0OCA1LjY3MDI3IDIuMTY2NSA3Ljc4OTg4IDIuMTY2NSAxMEMyLjE2NjUgMTIuMjEwMiAzLjA0NDQ4IDE0LjMyOTggNC42MDcyOCAxNS44OTI2QzUuMzgxMSAxNi42NjY0IDYuMjk5NzYgMTcuMjgwMiA3LjMxMDgxIDE3LjY5OUM4LjMyMTg2IDE4LjExNzggOS40MDU0OSAxOC4zMzM0IDEwLjQ5OTggMTguMzMzNEMxMi43MSAxOC4zMzM0IDE0LjgyOTYgMTcuNDU1NCAxNi4zOTI0IDE1Ljg5MjZDMTcuOTU1MiAxNC4zMjk4IDE4LjgzMzIgMTIuMjEwMiAxOC44MzMyIDEwQzE4LjgzMzIgOC45MDU2NyAxOC42MTc2IDcuODIyMDQgMTguMTk4OCA2LjgxMDk5QzE3Ljc4IDUuNzk5OTUgMTcuMTY2MiA0Ljg4MTI5IDE2LjM5MjQgNC4xMDc0NkMxNS42MTg2IDMuMzMzNjQgMTQuNjk5OSAyLjcxOTgxIDEzLjY4ODkgMi4zMDEwMkMxMi42Nzc4IDEuODgyMjQgMTEuNTk0MiAxLjY2NjY5IDEwLjQ5OTggMS42NjY2OVoiIGZpbGw9IiMwMENDOTYiLz4KPHJlY3QgeD0iNi4wOTcxNyIgeT0iMTAuMjc3MSIgd2lkdGg9IjEuNjciIGhlaWdodD0iNC4zNDUiIHRyYW5zZm9ybT0icm90YXRlKC00NSA2LjA5NzE3IDEwLjI3NzEpIiBmaWxsPSIjMDBDQzk2Ii8+CjxyZWN0IHg9IjEzLjc1MiIgeT0iNi45NzU4OSIgd2lkdGg9IjEuNjciIGhlaWdodD0iNy43NDM1OSIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTMuNzUyIDYuOTc1ODkpIiBmaWxsPSIjMDBDQzk2Ii8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI5IiB2aWV3Qm94PSIwIDAgNCA5IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNCAwLjk4MDU2VjQuNUw0LjAwMDA0IDcuNzE0MjhMNCA5TDEuMTA2OTRlLTA3IDQuNUw0IDBWMC45ODA1NloiIGZpbGw9IiM1MDY3ODQiLz4KPC9zdmc+Cg==\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=style&index=0&id=15bea4a0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=style&index=0&id=15bea4a0&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=style&index=0&id=e3801f08&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=style&index=0&id=e3801f08&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=style&index=0&id=0b825a18&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=style&index=0&id=0b825a18&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzQiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA3NCA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQyIDRMMjguODg1NyAwQzcuNDM3MjkgMTYuNDUxMiAxLjg0MzE4ZS0wNSA2MS43OTYxIDAgOTZINzRDNzEuNzQxNiA2Mi4xMDg1IDU3LjUgMjQgNDIgNFoiIGZpbGw9IiNDOEQ0RTMiLz4KPG1hc2sgaWQ9Im1hc2swIiBtYXNrLXR5cGU9ImFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iNzQiIGhlaWdodD0iOTYiPgo8cGF0aCBkPSJNNDIgNEwyOC44ODU3IDBDNy40MzcyOSAxNi40NTEyIDEuODQzMThlLTA1IDYxLjc5NjEgMCA5Nkg3NEM3MS43NDE2IDYyLjEwODUgNTcuNSAyNCA0MiA0WiIgZmlsbD0iI0M4RDRFMyIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTMyLjAwMDEgNjAuNUMzOC41MDAxIDczIDYzLjUwMDEgNzYuNDk5OSA3My40OTk5IDczQzczLjQ5OTkgNzMgNzUuNzk5MiA2MC43OTk0IDc1LjUgNjAuNTAwMkM2OS43MzM5IDU0LjczMzggNDMuMDAwMyA1Ny45OTk4IDMyLjAwMDEgNjAuNVoiIGZpbGw9IiNBMkIxQzYiLz4KPC9nPgo8L3N2Zz4K\"","import mod from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c84dd870&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c84dd870&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3fcc3d82&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3fcc3d82&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA2IiBoZWlnaHQ9IjU2IiB2aWV3Qm94PSIwIDAgMTA2IDU2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMTA0LjI1MiAxLjQwODU1QzEwMC4yNjIgLTIuMDQ5NCA5My43NzczIDEuNDA4NTQgOTEuMjgzMiA1Ljg1NDI2TDEwMC4yNjIgMTQuMzkzOUMxMDQuNzUxIDEwLjc5NDEgMTA4LjI0MyA0Ljg2NjQ2IDEwNC4yNTIgMS40MDg1NVoiIGZpbGw9IiNGM0M2QkYiLz4KPHBhdGggZD0iTTkxLjAxMjMgNC4zNzIwN0M3Mi40NTY4IDI1LjE3MDQgMzAuNDI3OSAyMi45MjYzIDE5Ljk1MjcgNC4zNzIwN0wwIDQ0LjY2MTVDMzguNDA5IDY5Ljg1NDcgODYuNzk0NCA1MC4wOTU0IDEwMi4yNTggMTQuNTI4Nkw5MS4wMTIzIDQuMzcyMDdaIiBmaWxsPSIjQzhENEUzIi8+Cjwvc3ZnPgo=\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=44b0b048&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=44b0b048&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=style&index=0&id=a80fbe8a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=style&index=0&id=a80fbe8a&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=de063d86&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=de063d86&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=24244834&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=24244834&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=style&index=0&id=707ebea6&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=style&index=0&id=707ebea6&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=style&index=0&id=bfc135e8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=style&index=0&id=bfc135e8&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=style&index=0&id=eefa30c0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=style&index=0&id=eefa30c0&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE3NSIgdmlld0JveD0iMCAwIDQ1MCAxNzUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ1MCIgaGVpZ2h0PSIxNzUiPgo8cmVjdCB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE3NSIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTEyOC4yMDcgMS45OTI3MkM3MC4xOTcyIC05Ljg0ODk3IDE4Ljc0NSAzMC44ODk1IDQuMzE5ODUgOTIuNjY3OEMtMTAuMTA1NCAxNTQuNDQ2IDE0LjMzMzcgMTg2LjMzMiAzNy4zMjE4IDIyNi4xODlDNzIuMzc4NCAyODYuOTcxIDE4MS41NTEgMzQxLjIzNyAyNjUuMDgzIDMzNy43ODlDMzM3LjUxNyAzMzQuOCAzODkuMDI4IDMxNi41MTQgNDI1LjkzNiAyNDguMTExQzQ4OS4zNzggMTMwLjUzMiA0MTcuNDQ0IDUzLjkwNjUgMzI1LjUyNyA2OC4yNTUxQzIxNC41NzEgODUuNTc2IDIxMy42MjkgMTkuNDMwMiAxMjguMjA3IDEuOTkyNzJaIiBmaWxsPSIjREZFOEYzIi8+CjxwYXRoIGQ9Ik0xNTYuMjg0IDE2OS40MjZDMTU4LjE1OCAxNjcuNTUzIDE2MC42OTkgMTY2LjUgMTYzLjM0OSAxNjYuNUgzMzEuOTExQzMzNC41NjEgMTY2LjUgMzM3LjEwMiAxNjcuNTUzIDMzOC45NzYgMTY5LjQyNkwzNDYuMDQxIDE3Ni40OTFIMTQ5LjIyTDE1Ni4yODQgMTY5LjQyNloiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE3NC4wOTkgMTcwLjI1OEMxNzQuMjgzIDE3MC4wOSAxNzQuNTI0IDE2OS45OTcgMTc0Ljc3MyAxNjkuOTk3SDMxOC40OUMzMTguNzM5IDE2OS45OTcgMzE4Ljk4IDE3MC4wOSAzMTkuMTY0IDE3MC4yNThWMTcwLjI1OEMzMTkuODM3IDE3MC44NzQgMzE5LjQwMiAxNzEuOTk1IDMxOC40OSAxNzEuOTk1SDE3NC43NzNDMTczLjg2MSAxNzEuOTk1IDE3My40MjYgMTcwLjg3NCAxNzQuMDk5IDE3MC4yNThWMTcwLjI1OFoiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTk0LjIyNyA4Ny44ODFDOTQuMzk2MiA4MC4xOTg4IDkyLjUwNDggNjUuMDYwOCA4My41ODU3IDY1Ljk2NjRDODMuNTg1NyA2NS45NjY0IDcwLjU3NzYgNzYuMDg3NyA3NS42MzkxIDgzLjYxODhDODAuNzAwNSA5MS4xNDk4IDkzLjQ2NzcgOTQuNTA4MyA5NC4yMjcgODcuODgxWiIgZmlsbD0iI0YzQzZCRiIvPgo8cGF0aCBkPSJNODkuMjc1IDkxLjMxMDVMODggOThDODUuNTAyMyA5OS40OTg2IDc2LjU1MzEgOTkuMDE5NiA3NC41IDk1Qzc0LjUgOTUgNzYuODI5OCA4OS45MTM1IDc3Ljg0NDYgODQuOTIyNkw4OS4yNzUgOTEuMzEwNVoiIGZpbGw9IiNGM0M2QkYiLz4KPHBhdGggZD0iTTkyLjI3MTkgNjcuMTE2MUM5Mi4yNzE5IDcyLjc2ODkgODQuMjI0MiA2OC44ODcyIDgyLjM0MjMgNzIuOTEyNkM4MC40NjA1IDc2LjkzNzkgNzcuMzk1MiA4Ni45MjA4IDc3LjM5NTIgODYuOTIwOEM3Mi42MzIzIDg0Ljc0MTQgNjYuNzI3MyA2OS4zMyA3My4yOTM2IDY1LjEwMzRDNzkuMzUwNiA2MS4yMDQ3IDkyLjI3MTkgNjMuMDEwMiA5Mi4yNzE5IDY3LjExNjFaIiBmaWxsPSIjNTA2Nzg0Ii8+CjxwYXRoIGQ9Ik03OS43NjU0IDgzLjk2MjhDNzUuMTUyMiA4MC43MjY5IDc2LjM3MSA3NS4xMzQzIDc5Ljc1NjIgNzYuOTUzNEM4NS4xOTk0IDc5Ljg3ODUgODEuMjkzNCA4Mi45ODA4IDc5Ljc2NTQgODMuOTYyOFoiIGZpbGw9IiNGM0M2QkYiLz4KPC9nPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iI0RGRThGMyIgc3Ryb2tlPSIjQzhENEUzIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjVMNi43NSAxNC4yNUwyLjYyNSAxMC4xMjVMMy42ODI1IDkuMDY3NUw2Ljc1IDEyLjEyNzVMMTQuNjkyNSA0LjE5MjVMMTUuNzUgNS4yNVoiIGZpbGw9IiNBMkIxQzYiLz4KPC9nPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9kIiB4PSIwLjYyNSIgeT0iMy4xOTI1IiB3aWR0aD0iMTcuMTI1IiBoZWlnaHQ9IjE0LjA1NzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiLz4KPGZlT2Zmc2V0IGR5PSIxIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMC4xNjQ3MDYgMCAwIDAgMCAwLjI0NzA1OSAwIDAgMCAwIDAuMzcyNTQ5IDAgMCAwIDAuMiAwIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0iZWZmZWN0MV9kcm9wU2hhZG93Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9kcm9wU2hhZG93IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPgo=\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=style&index=0&id=29bdb7bf&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=style&index=0&id=29bdb7bf&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=style&index=0&id=28a29e7a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=style&index=0&id=28a29e7a&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=1fac0635&\"\nvar script = {}\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('splitpanes',{staticClass:\"schema-tabs-splitter\",attrs:{\"before\":{ size: 20, max: 30 },\"after\":{ size: 80, max: 100 }},scopedSlots:_vm._u([{key:\"left-pane\",fn:function(){return [_c('schema')]},proxy:true},{key:\"right-pane\",fn:function(){return [_c('tabs')]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"container\",class:[\n 'splitpanes',\n (\"splitpanes-\" + (_vm.horizontal ? 'horizontal' : 'vertical')),\n { 'splitpanes-dragging': _vm.dragging }\n ]},[_c('div',{ref:\"movableSplitter\",staticClass:\"movable-splitter\",style:(_vm.movableSplitterStyle)}),_c('div',{ref:\"left\",staticClass:\"splitpanes-pane\",style:(_vm.styles.before),attrs:{\"size\":_vm.paneBefore.size,\"max-size\":\"30\"}},[_vm._t(\"left-pane\")],2),_c('div',{staticClass:\"splitpanes-splitter\",on:{\"mousedown\":_vm.bindEvents,\"touchstart\":_vm.bindEvents}},[_c('div',{class:[\n 'toggle-btns',\n {'both': _vm.after.max === 100 && _vm.before.max === 100 && _vm.paneAfter.size > 0 && _vm.paneBefore.size > 0}\n ]},[(_vm.after.max === 100 && _vm.paneAfter.size > 0)?_c('div',{staticClass:\"toggle-btn\",on:{\"click\":function($event){return _vm.togglePane(_vm.paneBefore)}}},[_c('img',{staticClass:\"direction-icon\",style:(_vm.directionBeforeIconStyle),attrs:{\"src\":require('@/assets/images/chevron.svg')}})]):_vm._e(),(_vm.before.max === 100 && _vm.paneBefore.size > 0)?_c('div',{staticClass:\"toggle-btn\",on:{\"click\":function($event){return _vm.togglePane(_vm.paneAfter)}}},[_c('img',{staticClass:\"direction-icon\",style:(_vm.directionAfterIconStyle),attrs:{\"src\":require('@/assets/images/chevron.svg')}})]):_vm._e()])]),_c('div',{ref:\"right\",staticClass:\"splitpanes-pane\",style:(_vm.styles.after)},[_vm._t(\"right-pane\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n // Get the cursor position relative to the splitpane container.\n getCurrentMouseDrag (event, container) {\n const rect = container.getBoundingClientRect()\n const { clientX, clientY } = ('ontouchstart' in window && event.touches)\n ? event.touches[0]\n : event\n return {\n x: clientX - rect.left,\n y: clientY - rect.top\n }\n },\n\n // Returns the drag percentage of the splitter relative to the 2 panes it's inbetween.\n getCurrentDragPercentage (event, container, isHorisontal) {\n let drag = this.getCurrentMouseDrag(event, container)\n drag = drag[isHorisontal ? 'y' : 'x']\n const containerSize = container[isHorisontal ? 'clientHeight' : 'clientWidth']\n return drag * 100 / containerSize\n },\n\n // Returns the new position in percents.\n calculateOffset (event, { container, isHorisontal, paneBeforeMax, paneAfterMax }) {\n const dragPercentage = this.getCurrentDragPercentage(event, container, isHorisontal)\n\n const paneBeforeMaxReached = paneBeforeMax < 100 && (dragPercentage >= paneBeforeMax)\n const paneAfterMaxReached = paneAfterMax < 100 && (dragPercentage <= 100 - paneAfterMax)\n\n // Prevent dragging beyond pane max.\n if (paneBeforeMaxReached || paneAfterMaxReached) {\n return paneBeforeMaxReached ? paneBeforeMax : Math.max(100 - paneAfterMax, 0)\n } else {\n return Math.min(Math.max(dragPercentage, 0), paneBeforeMax)\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=82b9f68a&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"schema-container\"}},[_c('div',{attrs:{\"id\":\"schema-filter\"}},[_c('text-field',{attrs:{\"placeholder\":\"Search table\",\"width\":\"100%\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1),_c('div',{attrs:{\"id\":\"db\"}},[_c('div',{staticClass:\"db-name\",on:{\"click\":function($event){_vm.schemaVisible = !_vm.schemaVisible}}},[_c('tree-chevron',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.schema.length > 0),expression:\"schema.length > 0\"}],attrs:{\"expanded\":_vm.schemaVisible}}),_vm._v(\" \"+_vm._s(_vm.dbName)+\" \")],1),_c('db-uploader',{attrs:{\"id\":\"db-edit\",\"type\":\"small\"}}),_c('export-icon',{attrs:{\"tooltip\":\"Export database\"},on:{\"click\":_vm.exportToFile}}),_c('add-table-icon',{on:{\"click\":_vm.addCsv}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.schemaVisible),expression:\"schemaVisible\"}],staticClass:\"schema\"},_vm._l((_vm.schema),function(table){return _c('table-description',{key:table.name,attrs:{\"name\":table.name,\"columns\":table.columns}})}),1),_c('csv-import',{ref:\"addCsv\",attrs:{\"file\":_vm.file,\"db\":_vm.$store.state.db,\"dialog-name\":\"addCsv\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n isDatabase (file) {\n const dbTypes = ['application/vnd.sqlite3', 'application/x-sqlite3']\n return file.type\n ? dbTypes.includes(file.type)\n : /\\.(db|sqlite(3)?)+$/.test(file.name)\n },\n\n getFileName (file) {\n return file.name.replace(/\\.[^.]+$/, '')\n },\n\n downloadFromUrl (url, fileName) {\n // Create downloader\n const downloader = document.createElement('a')\n downloader.href = url\n downloader.download = fileName\n\n // Trigger click\n downloader.click()\n\n // Clean up\n URL.revokeObjectURL(url)\n },\n\n async exportToFile (str, fileName, type = 'octet/stream') {\n const blob = new Blob([str], { type })\n const url = URL.createObjectURL(blob)\n this.downloadFromUrl(url, fileName)\n },\n\n /**\n * Note: if user press Cancel in file choosing dialog\n * it will be an unsettled promise. But it's grabbed by\n * the garbage collector (tested with FinalizationRegistry).\n */\n getFileFromUser (type) {\n return new Promise(resolve => {\n const uploader = document.createElement('input')\n\n uploader.type = 'file'\n uploader.accept = type\n\n uploader.addEventListener('change', () => {\n const file = uploader.files[0]\n resolve(file)\n })\n\n uploader.click()\n })\n },\n\n importFile () {\n const reader = new FileReader()\n\n return this.getFileFromUser('.json')\n .then(file => {\n return new Promise((resolve, reject) => {\n reader.onload = e => {\n resolve(e.target.result)\n }\n reader.readAsText(file)\n })\n })\n },\n\n readFile (path) {\n return fetch(path)\n },\n\n readAsArrayBuffer (file) {\n const fileReader = new FileReader()\n\n return new Promise((resolve, reject) => {\n fileReader.onerror = () => {\n fileReader.abort()\n reject(new Error('Problem parsing input file.'))\n }\n\n fileReader.onload = () => {\n resolve(fileReader.result)\n }\n fileReader.readAsArrayBuffer(file)\n })\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"table-name\",on:{\"click\":function($event){_vm.colVisible = !_vm.colVisible}}},[_c('tree-chevron',{attrs:{\"expanded\":_vm.colVisible}}),_vm._v(\" \"+_vm._s(_vm.name)+\" \")],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.colVisible),expression:\"colVisible\"}],staticClass:\"columns\"},_vm._l((_vm.columns),function(col,index){return _c('div',{key:index,staticClass:\"column\"},[_vm._v(\" \"+_vm._s(col.name)+\" \"),_c('span',{staticClass:\"column-type\"},[_vm._v(_vm._s(col.type))])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"chevron-icon\",style:({ transform: _vm.expanded ? 'rotate(90deg)' : 'rotate(0)' }),attrs:{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 8 12\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M0.721924 9.93097L4.85292 5.79997L0.721924 1.66897L1.99992 0.399973L7.39992 5.79997L1.99992 11.2L0.721924 9.93097Z\",\"fill\":_vm.expanded ? '#506784' : 'rgba(80, 103, 132, 0.5)'}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./treeChevron.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./treeChevron.vue?vue&type=template&id=bfc135e8&scoped=true&\"\nimport script from \"./treeChevron.vue?vue&type=script&lang=js&\"\nexport * from \"./treeChevron.vue?vue&type=script&lang=js&\"\nimport style0 from \"./treeChevron.vue?vue&type=style&index=0&id=bfc135e8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bfc135e8\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TableDescription.vue?vue&type=template&id=060be7fb&scoped=true&\"\nimport script from \"./TableDescription.vue?vue&type=script&lang=js&\"\nexport * from \"./TableDescription.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TableDescription.vue?vue&type=style&index=0&id=060be7fb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"060be7fb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.label)?_c('div',{class:['text-field-label', { error: _vm.errorMsg }, {'disabled': _vm.disabled}]},[_vm._v(\" \"+_vm._s(_vm.label)+\" \"),(_vm.hint)?_c('hint-icon',{staticClass:\"hint\",attrs:{\"hint\":_vm.hint,\"max-width\":_vm.maxHintWidth || '149px'}}):_vm._e()],1):_vm._e(),_c('input',{class:{ error: _vm.errorMsg },style:({ width: _vm.width }),attrs:{\"type\":\"text\",\"placeholder\":_vm.placeholder,\"disabled\":_vm.disabled},domProps:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event.target.value)}}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errorMsg),expression:\"errorMsg\"}],staticClass:\"text-field-error\"},[_vm._v(_vm._s(_vm.errorMsg))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('svg',{staticClass:\"hint-icon\",attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M8.75 14.1666H10.4167V12.5H8.75V14.1666ZM9.58333 16.25C5.90833 16.25 2.91667 13.2583 2.91667 9.58333C2.91667 5.90833 5.90833 2.91667 9.58333 2.91667C13.2583 2.91667 16.25 5.90833 16.25 9.58333C16.25 13.2583 13.2583 16.25 9.58333 16.25ZM9.58333 1.25C8.48898 1.25 7.40535 1.46555 6.3943 1.88434C5.38326 2.30313 4.4646 2.91696 3.69078 3.69078C2.12797 5.25358 1.25 7.3732 1.25 9.58333C1.25 11.7935 2.12797 13.9131 3.69078 15.4759C4.4646 16.2497 5.38326 16.8635 6.3943 17.2823C7.40535 17.7011 8.48898 17.9167 9.58333 17.9167C11.7935 17.9167 13.9131 17.0387 15.4759 15.4759C17.0387 13.9131 17.9167 11.7935 17.9167 9.58333C17.9167 8.48898 17.7011 7.40535 17.2823 6.3943C16.8635 5.38326 16.2497 4.4646 15.4759 3.69078C14.7021 2.91696 13.7834 2.30313 12.7724 1.88434C11.7613 1.46555 10.6777 1.25 9.58333 1.25Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M9.91601 4.51787C8.98167 4.42606 8.05144 4.69097 7.36309 5.24472C6.68735 5.78828 6.2998 6.56661 6.2998 7.38012H7.92488C7.92488 6.97463 8.11059 6.60187 8.44779 6.33061C8.79784 6.049 9.25647 5.92005 9.73896 5.96755C10.4832 6.04076 11.0828 6.57277 11.1647 7.23265C11.2306 7.764 10.9661 8.28194 10.4744 8.58426C9.38676 9.25303 8.73742 10.343 8.73742 11.5H10.3625C10.3625 10.8243 10.7477 10.184 11.3929 9.78733C12.3808 9.17985 12.9122 8.13913 12.7798 7.07124C12.6144 5.73863 11.41 4.66476 9.91601 4.51787Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(Object.assign({}, _vm.tooltipStyle, {maxWidth: _vm.maxWidth}))},[_vm._v(\" \"+_vm._s(_vm.hint)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n data () {\n return {\n tooltipStyle: {\n visibility: 'hidden'\n }\n }\n },\n computed: {\n tooltipElement () {\n return this.$refs.tooltip\n }\n },\n methods: {\n showTooltip (e, tooltipPosition) {\n const position = tooltipPosition ? tooltipPosition.split('-') : ['top', 'right']\n const offset = 12\n\n if (position[0] === 'top') {\n this.tooltipStyle.top = e.clientY - offset + 'px'\n } else {\n this.tooltipStyle.top = e.clientY + offset + 'px'\n }\n\n if (position[1] === 'right') {\n this.tooltipStyle.left = e.clientX + offset + 'px'\n } else {\n this.tooltipStyle.left = e.clientX - offset - this.tooltipElement.offsetWidth + 'px'\n }\n\n this.tooltipStyle.visibility = 'visible'\n },\n hideTooltip () {\n this.tooltipStyle.visibility = 'hidden'\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./hint.vue?vue&type=template&id=30581f31&scoped=true&\"\nimport script from \"./hint.vue?vue&type=script&lang=js&\"\nexport * from \"./hint.vue?vue&type=script&lang=js&\"\nimport style0 from \"./hint.vue?vue&type=style&index=0&id=30581f31&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30581f31\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextField.vue?vue&type=template&id=59fd41a8&scoped=true&\"\nimport script from \"./TextField.vue?vue&type=script&lang=js&\"\nexport * from \"./TextField.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TextField.vue?vue&type=style&index=0&id=59fd41a8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59fd41a8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"db-uploader-container\",style:({ width: _vm.width })},[(_vm.type === 'small')?_c('change-db-icon',{on:{\"click\":_vm.browse}}):_vm._e(),(_vm.type === 'illustrated')?_c('div',{staticClass:\"drop-area-container\"},[_c('div',{staticClass:\"drop-area\",on:{\"dragover\":function($event){$event.preventDefault();_vm.state = 'dragover'},\"dragleave\":function($event){$event.preventDefault();_vm.state=''},\"drop\":function($event){$event.preventDefault();return _vm.drop($event)},\"click\":_vm.browse}},[_c('div',{staticClass:\"text\"},[_vm._v(\" Drop the database or CSV file here or click to choose a file from your computer. \")])])]):_vm._e(),(_vm.type === 'illustrated')?_c('div',{attrs:{\"id\":\"img-container\"}},[_c('img',{attrs:{\"id\":\"drop-file-top-img\",\"src\":require('@/assets/images/top.svg')}}),_c('img',{class:{'swing': _vm.state === 'dragover'},attrs:{\"id\":\"left-arm-img\",\"src\":require('@/assets/images/leftArm.svg')}}),_c('img',{ref:\"fileImg\",class:{\n 'swing': _vm.state === 'dragover',\n 'fly': _vm.state === 'dropping',\n 'hidden': _vm.state === 'dropped'\n },attrs:{\"id\":\"file-img\",\"src\":require('@/assets/images/file.png')}}),_c('img',{attrs:{\"id\":\"drop-file-bottom-img\",\"src\":require('@/assets/images/bottom.svg')}}),_c('img',{attrs:{\"id\":\"body-img\",\"src\":require('@/assets/images/body.svg')}}),_c('img',{class:{'swing': _vm.state === 'dragover'},attrs:{\"id\":\"right-arm-img\",\"src\":require('@/assets/images/rightArm.svg')}})]):_vm._e(),_c('div',{staticClass:\"error\",attrs:{\"id\":\"error\"}}),_c('csv-import',{ref:\"addCsv\",attrs:{\"file\":_vm.file,\"db\":_vm.newDb,\"dialog-name\":\"importFromCsv\"},on:{\"cancel\":_vm.cancelCsvImport,\"finish\":_vm.finish}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('svg',{staticClass:\"db-edit-icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M3 10.5V12.75C3 14.25 5.2875 15.54 8.25 15.75V13.5825L8.3475 13.5C5.34 13.32 3 12.045 3 10.5ZM9 9.75C5.685 9.75 3 8.4075 3 6.75V9C3 10.6575 5.685 12 9 12C9.2925 12 9.5775 12 9.87 12L12.75 9.09C11.55 9.54 10.2825 9.75 9 9.75ZM9 2.25C5.685 2.25 3 3.5925 3 5.25C3 6.9075 5.685 8.25 9 8.25C12.315 8.25 15 6.9075 15 5.25C15 3.5925 12.315 2.25 9 2.25ZM15.75 8.3475C15.6375 8.3475 15.5325 8.3925 15.4575 8.475L14.7075 9.225L16.245 10.725L16.995 9.975C17.1525 9.825 17.16 9.57 16.995 9.3975L16.065 8.475C15.99 8.3925 15.885 8.3475 15.78 8.3475H15.75ZM14.28 9.66L9.75 14.205V15.75H11.295L15.84 11.1975L14.28 9.66Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Load another database or CSV \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./changeDb.vue?vue&type=template&id=2c7f445c&scoped=true&\"\nimport script from \"./changeDb.vue?vue&type=script&lang=js&\"\nexport * from \"./changeDb.vue?vue&type=script&lang=js&\"\nimport style0 from \"./changeDb.vue?vue&type=style&index=0&id=2c7f445c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c7f445c\",\n null\n \n)\n\nexport default component.exports","import sqliteParser from 'sqlite-parser'\n\nexport default {\n * generateChunks (data, size) {\n const matrix = Object.keys(data).map(col => data[col])\n const [row] = matrix\n const transposedMatrix = row.map((value, column) => matrix.map(row => row[column]))\n\n const count = Math.ceil(transposedMatrix.length / size)\n\n for (let i = 0; i <= count - 1; i++) {\n const start = size * i\n const end = start + size\n yield transposedMatrix.slice(start, end)\n }\n },\n\n getInsertStmt (tabName, columns) {\n const colList = `\"${columns.join('\", \"')}\"`\n const params = columns.map(() => '?').join(', ')\n return `INSERT INTO \"${tabName}\" (${colList}) VALUES (${params});`\n },\n\n getCreateStatement (tabName, data) {\n let result = `CREATE table \"${tabName}\"(`\n for (const col in data) {\n // Get the first row of values to determine types\n const value = data[col][0]\n let type = ''\n switch (typeof value) {\n case 'number': {\n type = 'REAL'\n break\n }\n case 'boolean': {\n type = 'INTEGER'\n break\n }\n case 'string': {\n type = 'TEXT'\n break\n }\n default: type = 'TEXT'\n }\n result += `\"${col}\" ${type}, `\n }\n\n result = result.replace(/,\\s$/, ');')\n return result\n },\n\n getAst (sql) {\n // There is a bug is sqlite-parser\n // It throws an error if tokenizer has an arguments:\n // https://github.com/codeschool/sqlite-parser/issues/59\n const fixedSql = sql\n .replace(/(tokenize=[^,]+)\"tokenchars=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"remove_diacritics=.+?\"/, '$1')\n .replace(/(tokenize=[^,]+)\"separators=.+?\"/, '$1')\n .replace(/tokenize=.+?(,|\\))/, 'tokenize=unicode61$1')\n\n return sqliteParser(fixedSql)\n },\n\n /*\n * Return an array of columns with name and type. E.g.:\n * [\n * { name: 'id', type: 'INTEGER' },\n * { name: 'title', type: 'NVARCHAR(30)' },\n * ]\n */\n getColumns (sql) {\n const columns = []\n const ast = this.getAst(sql)\n\n const columnDefinition = ast.statement[0].format === 'table'\n ? ast.statement[0].definition\n : ast.statement[0].result.args.expression // virtual table\n\n columnDefinition.forEach(item => {\n if (item.variant === 'column' && ['identifier', 'definition'].includes(item.type)) {\n let type = item.datatype ? item.datatype.variant : 'N/A'\n if (item.datatype && item.datatype.args) {\n type = type + '(' + item.datatype.args.expression[0].value\n if (item.datatype.args.expression.length === 2) {\n type = type + ', ' + item.datatype.args.expression[1].value\n }\n type = type + ')'\n }\n columns.push({ name: item.name, type: type })\n }\n })\n return columns\n }\n}\n","export default function Worker_fn() {\n return new Worker(__webpack_public_path__ + \"js/_worker.5e0dd41a.worker.js\");\n}\n","import stms from './_statements'\nimport fu from '@/lib/utils/fileIo'\n// We can import workers like so because of worker-loader:\n// https://webpack.js.org/loaders/worker-loader/\nimport Worker from './_worker.js'\n\n// Use promise-worker in order to turn worker into the promise based one:\n// https://github.com/nolanlawson/promise-worker\nimport PromiseWorker from 'promise-worker'\n\nfunction getNewDatabase () {\n const worker = new Worker()\n return new Database(worker)\n}\n\nexport default {\n getNewDatabase\n}\n\nlet progressCounterIds = 0\nclass Database {\n constructor (worker) {\n this.dbName = null\n this.schema = null\n this.worker = worker\n this.pw = new PromiseWorker(worker)\n\n this.importProgresses = {}\n worker.addEventListener('message', e => {\n const progress = e.data.progress\n if (progress !== undefined) {\n const id = e.data.id\n this.importProgresses[id].dispatchEvent(new CustomEvent('progress', {\n detail: progress\n }))\n }\n })\n }\n\n shutDown () {\n this.worker.terminate()\n }\n\n createProgressCounter (callback) {\n const id = progressCounterIds++\n this.importProgresses[id] = new EventTarget()\n this.importProgresses[id].addEventListener('progress', e => { callback(e.detail) })\n return id\n }\n\n deleteProgressCounter (id) {\n delete this.importProgresses[id]\n }\n\n async addTableFromCsv (tabName, data, progressCounterId) {\n const result = await this.pw.postMessage({\n action: 'import',\n data,\n progressCounterId,\n tabName\n })\n\n if (result.error) {\n throw new Error(result.error)\n }\n this.dbName = this.dbName || 'database'\n this.refreshSchema()\n }\n\n async loadDb (file) {\n const fileContent = file ? await fu.readAsArrayBuffer(file) : null\n const res = await this.pw.postMessage({ action: 'open', buffer: fileContent })\n\n if (res.error) {\n throw new Error(res.error)\n }\n\n this.dbName = file ? fu.getFileName(file) : 'database'\n this.refreshSchema()\n }\n\n async refreshSchema () {\n const getSchemaSql = `\n SELECT name, sql\n FROM sqlite_master\n WHERE type='table' AND name NOT LIKE 'sqlite_%';\n `\n const result = await this.execute(getSchemaSql)\n // Parse DDL statements to get column names and types\n const parsedSchema = []\n if (result && result.name) {\n result.name.forEach((table, index) => {\n parsedSchema.push({\n name: table,\n columns: stms.getColumns(result.sql[index])\n })\n })\n }\n\n // Refresh schema\n this.schema = parsedSchema\n }\n\n async execute (commands) {\n await this.pw.postMessage({ action: 'reopen' })\n const results = await this.pw.postMessage({ action: 'exec', sql: commands })\n\n if (results.error) {\n throw new Error(results.error)\n }\n // if it was more than one select - take only the last one\n return results[results.length - 1]\n }\n\n async export (fileName) {\n const data = await this.pw.postMessage({ action: 'export' })\n\n if (data.error) {\n throw new Error(data.error)\n }\n fu.exportToFile(data, fileName)\n }\n\n async validateTableName (name) {\n if (name.startsWith('sqlite_')) {\n throw new Error(\"Table name can't start with sqlite_\")\n }\n\n if (/[^\\w]/.test(name)) {\n throw new Error('Table name can contain only letters, digits and underscores')\n }\n\n if (/^(\\d)/.test(name)) {\n throw new Error(\"Table name can't start with a digit\")\n }\n\n await this.execute(`BEGIN; CREATE TABLE \"${name}\"(id); ROLLBACK;`)\n }\n\n sanitizeTableName (tabName) {\n return tabName\n .replace(/[^\\w]/g, '_') // replace everything that is not letter, digit or _ with _\n .replace(/^(\\d)/, '_$1') // add _ at beginning if starts with digit\n .replace(/_{2,}/g, '_') // replace multiple _ with one _\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal',{attrs:{\"name\":_vm.dialogName,\"classes\":\"dialog\",\"height\":\"auto\",\"width\":\"80%\",\"scrollable\":\"\",\"clickToClose\":false}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" CSV import \"),_c('close-icon',{attrs:{\"disabled\":_vm.disableDialog},on:{\"click\":_vm.cancelCsvImport}})],1),_c('div',{staticClass:\"dialog-body\"},[_c('text-field',{attrs:{\"label\":\"Table name\",\"width\":\"484px\",\"disabled\":_vm.disableDialog,\"error-msg\":_vm.tableNameError,\"id\":\"csv-table-name\"},model:{value:(_vm.tableName),callback:function ($$v) {_vm.tableName=$$v},expression:\"tableName\"}}),_c('div',{staticClass:\"chars\"},[_c('delimiter-selector',{staticClass:\"char-input\",attrs:{\"width\":\"210px\",\"disabled\":_vm.disableDialog},on:{\"input\":_vm.previewCsv},model:{value:(_vm.delimiter),callback:function ($$v) {_vm.delimiter=$$v},expression:\"delimiter\"}}),_c('text-field',{staticClass:\"char-input\",attrs:{\"label\":\"Quote char\",\"hint\":\"The character used to quote fields.\",\"width\":\"93px\",\"disabled\":_vm.disableDialog,\"id\":\"quote-char\"},model:{value:(_vm.quoteChar),callback:function ($$v) {_vm.quoteChar=$$v},expression:\"quoteChar\"}}),_c('text-field',{staticClass:\"char-input\",attrs:{\"label\":\"Escape char\",\"hint\":\"The character used to escape the quote character within a field (e.g. \\\"column with \\\"\\\"quotes\\\"\\\" in text\\\").\",\"max-hint-width\":\"242px\",\"width\":\"93px\",\"disabled\":_vm.disableDialog,\"id\":\"escape-char\"},model:{value:(_vm.escapeChar),callback:function ($$v) {_vm.escapeChar=$$v},expression:\"escapeChar\"}})],1),_c('check-box',{attrs:{\"init\":true,\"label\":\"Use first row as column headers\",\"disabled\":_vm.disableDialog},on:{\"click\":function($event){_vm.header = $event}}}),(_vm.previewData\n && (_vm.previewData.rowCount > 0 || Object.keys(_vm.previewData).length > 0)\n )?_c('sql-table',{staticClass:\"preview-table\",attrs:{\"data-set\":_vm.previewData,\"preview\":true}}):_c('div',{staticClass:\"no-data\"},[_vm._v(\"No data\")]),_c('logs',{staticClass:\"import-csv-errors\",attrs:{\"messages\":_vm.importCsvMessages}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",attrs:{\"disabled\":_vm.disableDialog,\"id\":\"csv-cancel\"},on:{\"click\":_vm.cancelCsvImport}},[_vm._v(\" Cancel \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.importCsvCompleted),expression:\"!importCsvCompleted\"}],staticClass:\"primary\",attrs:{\"disabled\":_vm.disableDialog,\"id\":\"csv-import\"},on:{\"click\":function($event){return _vm.loadFromCsv(_vm.file)}}},[_vm._v(\" Import \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.importCsvCompleted),expression:\"importCsvCompleted\"}],staticClass:\"primary\",attrs:{\"disabled\":_vm.disableDialog,\"id\":\"csv-finish\"},on:{\"click\":_vm.finish}},[_vm._v(\" Finish \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Papa from 'papaparse'\n\nconst hintsByCode = {\n MissingQuotes: 'Edit your CSV so that the field has a closing quote char.',\n TooFewFields: 'Add fields or try another delimiter.',\n TooManyFields: 'Edit your CSV or try another delimiter.'\n}\n\nexport default {\n getResult (source) {\n const result = {}\n if (source.meta.fields) {\n source.meta.fields.forEach(col => {\n result[col.trim()] = source.data.map(row => {\n let value = row[col]\n if (value instanceof Date) {\n value = value.toISOString()\n }\n return value\n })\n })\n } else {\n for (let i = 0; i <= source.data[0].length - 1; i++) {\n result[`col${i + 1}`] = source.data.map(row => {\n let value = row[i]\n if (value instanceof Date) {\n value = value.toISOString()\n }\n return value\n })\n }\n }\n return result\n },\n\n parse (file, config = {}) {\n return new Promise((resolve, reject) => {\n const defaultConfig = {\n delimiter: '', // auto-detect\n newline: '', // auto-detect\n quoteChar: '\"',\n escapeChar: '\"',\n header: false,\n transformHeader: undefined,\n dynamicTyping: true,\n preview: 0,\n encoding: 'UTF-8',\n worker: true,\n comments: false,\n step: undefined,\n complete: results => {\n const res = {\n data: this.getResult(results),\n delimiter: results.meta.delimiter,\n hasErrors: false,\n rowCount: results.data.length\n }\n res.messages = results.errors.map(msg => {\n msg.type = msg.code === 'UndetectableDelimiter' ? 'info' : 'error'\n if (msg.type === 'error') res.hasErrors = true\n msg.hint = hintsByCode[msg.code]\n return msg\n })\n resolve(res)\n },\n error: (error, file) => {\n reject(error)\n },\n download: false,\n downloadRequestHeaders: undefined,\n downloadRequestBody: undefined,\n skipEmptyLines: 'greedy',\n chunk: undefined,\n chunkSize: undefined,\n fastMode: undefined,\n beforeFirstChunk: undefined,\n withCredentials: undefined,\n transform: undefined,\n delimitersToGuess: [',', '\\t', '|', ';', Papa.RECORD_SEP, Papa.UNIT_SEP]\n }\n\n Papa.parse(file, { ...defaultConfig, ...config })\n })\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['icon', {'disabled': _vm.disabled }],attrs:{\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 14 14\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('click')}}},[_c('path',{attrs:{\"d\":\"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./close.vue?vue&type=template&id=86f3a16c&scoped=true&\"\nimport script from \"./close.vue?vue&type=script&lang=js&\"\nexport * from \"./close.vue?vue&type=script&lang=js&\"\nimport style0 from \"./close.vue?vue&type=style&index=0&id=86f3a16c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"86f3a16c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ 'disabled': _vm.disabled }},[_c('div',{staticClass:\"text-field-label\"},[_vm._v(\"Delimiter\")]),_c('div',{staticClass:\"delimiter-selector-container\",style:({ width: _vm.width }),on:{\"click\":_vm.onContainerClick}},[_c('div',{staticClass:\"value\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],ref:\"delimiterInput\",class:{ 'filled': _vm.filled },attrs:{\"type\":\"text\",\"maxlength\":\"1\",\"disabled\":_vm.disabled},domProps:{\"value\":(_vm.inputValue)},on:{\"click\":function($event){$event.stopPropagation();},\"input\":function($event){if($event.target.composing){ return; }_vm.inputValue=$event.target.value}}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.getSymbolName(_vm.value)))])]),_c('div',{staticClass:\"controls\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('clear-icon',{attrs:{\"disabled\":_vm.disabled},nativeOn:{\"click\":function($event){return _vm.clear($event)}}}),_c('drop-down-chevron',{attrs:{\"disabled\":_vm.disabled},nativeOn:{\"click\":function($event){!_vm.disabled && (_vm.showOptions = !_vm.showOptions)}}})],1)]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showOptions),expression:\"showOptions\"}],staticClass:\"options\",style:({ width: _vm.width })},_vm._l((_vm.options),function(option,index){return _c('div',{key:index,staticClass:\"option\",on:{\"click\":function($event){return _vm.chooseOption(option)}}},[_c('pre',[_vm._v(_vm._s(option))]),_c('div',[_vm._v(_vm._s(_vm.getSymbolName(option)))])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n 0: { name: 'null character' },\n 1: { name: 'start of header' },\n 2: { name: 'start of text' },\n 3: { name: 'end of text' },\n 4: { name: 'end of transmission' },\n 5: { name: 'enquiry' },\n 6: { name: 'acknowledge' },\n 7: { name: 'bell (ring)' },\n 8: { name: 'backspace' },\n 9: { name: 'horizontal tab' },\n 10: { name: 'line feed' },\n 11: { name: 'vertical tab' },\n 12: { name: 'form feed' },\n 13: { name: 'carriage return' },\n 14: { name: 'shift out' },\n 15: { name: 'shift in' },\n 16: { name: 'data link escape' },\n 17: { name: 'device control 1' },\n 18: { name: 'device control 2' },\n 19: { name: 'device control 3' },\n 20: { name: 'device control 4' },\n 21: { name: 'negative acknowledge' },\n 22: { name: 'synchronize' },\n 23: { name: 'end transmission block' },\n 24: { name: 'cancel' },\n 25: { name: 'end of medium' },\n 26: { name: 'substitute' },\n 27: { name: 'escape' },\n 28: { name: 'file separator' },\n 29: { name: 'group separator' },\n 30: { name: 'record separator' },\n 31: { name: 'unit separator' },\n 32: { name: 'space' },\n 33: { name: 'exclamation mark' },\n 34: { name: 'quotation mark' },\n 35: { name: 'number sign' },\n 36: { name: 'dollar sign' },\n 37: { name: 'percent sign' },\n 38: { name: 'ampersand' },\n 39: { name: 'apostrophe' },\n 40: { name: 'left parenthesis' },\n 41: { name: 'right parenthesis' },\n 42: { name: 'asterisk' },\n 43: { name: 'plus sign' },\n 44: { name: 'comma' },\n 45: { name: 'hyphen' },\n 46: { name: 'period' },\n 47: { name: 'slash' },\n 48: { name: 'digit 0' },\n 49: { name: 'digit 1' },\n 50: { name: 'digit 2' },\n 51: { name: 'digit 3' },\n 52: { name: 'digit 4' },\n 53: { name: 'digit 5' },\n 54: { name: 'digit 6' },\n 55: { name: 'digit 7' },\n 56: { name: 'digit 8' },\n 57: { name: 'digit 9' },\n 58: { name: 'colon' },\n 59: { name: 'semicolon' },\n 60: { name: 'less-than' },\n 61: { name: 'equals-to' },\n 62: { name: 'greater-than' },\n 63: { name: 'question mark' },\n 64: { name: 'at sign' },\n 65: { name: 'uppercase A' },\n 66: { name: 'uppercase B' },\n 67: { name: 'uppercase C' },\n 68: { name: 'uppercase D' },\n 69: { name: 'uppercase E' },\n 70: { name: 'uppercase F' },\n 71: { name: 'uppercase G' },\n 72: { name: 'uppercase H' },\n 73: { name: 'uppercase I' },\n 74: { name: 'uppercase J' },\n 75: { name: 'uppercase K' },\n 76: { name: 'uppercase L' },\n 77: { name: 'uppercase M' },\n 78: { name: 'uppercase N' },\n 79: { name: 'uppercase O' },\n 80: { name: 'uppercase P' },\n 81: { name: 'uppercase Q' },\n 82: { name: 'uppercase R' },\n 83: { name: 'uppercase S' },\n 84: { name: 'uppercase T' },\n 85: { name: 'uppercase U' },\n 86: { name: 'uppercase V' },\n 87: { name: 'uppercase W' },\n 88: { name: 'uppercase X' },\n 89: { name: 'uppercase Y' },\n 90: { name: 'uppercase Z' },\n 91: { name: 'left square bracket' },\n 92: { name: 'backslash' },\n 93: { name: 'right square bracket' },\n 94: { name: 'caret' },\n 95: { name: 'underscore' },\n 96: { name: 'grave accent' },\n 97: { name: 'lowercase a' },\n 98: { name: 'lowercase b' },\n 99: { name: 'lowercase c' },\n 100: { name: 'lowercase d' },\n 101: { name: 'lowercase e' },\n 102: { name: 'lowercase f' },\n 103: { name: 'lowercase g' },\n 104: { name: 'lowercase h' },\n 105: { name: 'lowercase i' },\n 106: { name: 'lowercase j' },\n 107: { name: 'lowercase k' },\n 108: { name: 'lowercase l' },\n 109: { name: 'lowercase m' },\n 110: { name: 'lowercase n' },\n 111: { name: 'lowercase o' },\n 112: { name: 'lowercase p' },\n 113: { name: 'lowercase q' },\n 114: { name: 'lowercase r' },\n 115: { name: 'lowercase s' },\n 116: { name: 'lowercase t' },\n 117: { name: 'lowercase u' },\n 118: { name: 'lowercase v' },\n 119: { name: 'lowercase w' },\n 120: { name: 'lowercase x' },\n 121: { name: 'lowercase y' },\n 122: { name: 'lowercase z' },\n 123: { name: 'left curly brace' },\n 124: { name: 'vertical bar' },\n 125: { name: 'right curly brace' },\n 126: { name: 'tilde' },\n 127: { name: 'delete (rubout)' }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['chevron-icon', {'disabled': _vm.disabled}],attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M6.175 7.15002L10 10.975L13.825 7.15002L15 8.33336L10 13.3334L5 8.33336L6.175 7.15002Z\",\"fill\":\"#C8D4E3\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dropDownChevron.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./dropDownChevron.vue?vue&type=template&id=29bdb7bf&scoped=true&\"\nimport script from \"./dropDownChevron.vue?vue&type=script&lang=js&\"\nexport * from \"./dropDownChevron.vue?vue&type=script&lang=js&\"\nimport style0 from \"./dropDownChevron.vue?vue&type=style&index=0&id=29bdb7bf&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29bdb7bf\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['clear-icon', {'disabled': _vm.disabled}],attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M14.3481 14.849C13.8791 15.318 13.1191 15.318 12.6511 14.849L10.0001 11.819L7.34907 14.848C6.88007 15.317 6.12007 15.317 5.65207 14.848C5.18307 14.379 5.18307 13.619 5.65207 13.151L8.41007 10.001L5.65107 6.84898C5.18207 6.37998 5.18207 5.62098 5.65107 5.15198C6.12007 4.68298 6.87907 4.68298 7.34807 5.15198L10.0001 8.18298L12.6511 5.15198C13.1201 4.68298 13.8791 4.68298 14.3481 5.15198C14.8171 5.62098 14.8171 6.38098 14.3481 6.84898L11.5901 10.001L14.3481 13.151C14.8171 13.62 14.8171 14.38 14.3481 14.849V14.849Z\",\"fill\":\"#C8D4E3\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./clear.vue?vue&type=template&id=69060e4e&scoped=true&\"\nimport script from \"./clear.vue?vue&type=script&lang=js&\"\nexport * from \"./clear.vue?vue&type=script&lang=js&\"\nimport style0 from \"./clear.vue?vue&type=style&index=0&id=69060e4e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69060e4e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=44b0b048&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=44b0b048&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44b0b048\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['checkbox-container', { 'checked': _vm.checked }, {'disabled': _vm.disabled}],on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.checked),expression:\"!checked\"}],staticClass:\"unchecked\"}),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.checked && !_vm.disabled),expression:\"checked && !disabled\"}],attrs:{\"src\":_vm.theme === 'light'\n ? require('@/assets/images/checkbox_checked_light.svg')\n : require('@/assets/images/checkbox_checked.svg')}}),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.checked && _vm.disabled),expression:\"checked && disabled\"}],attrs:{\"src\":require('@/assets/images/checkbox_checked_disabled.svg')}}),(_vm.label)?_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.label))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckBox.vue?vue&type=template&id=0dd86013&scoped=true&\"\nimport script from \"./CheckBox.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckBox.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CheckBox.vue?vue&type=style&index=0&id=0dd86013&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0dd86013\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"rounded-bg\"},[_c('div',{ref:\"header-container\",staticClass:\"header-container\"},[_c('div',_vm._l((_vm.header),function(th,index){return _c('div',{key:index,staticClass:\"fixed-header\",style:({ width: ((th.width) + \"px\") })},[_vm._v(\" \"+_vm._s(th.name)+\" \")])}),0)]),_c('div',{ref:\"table-container\",staticClass:\"table-container\",on:{\"scroll\":_vm.onScrollTable}},[_c('table',{ref:\"table\",staticClass:\"sqliteviz-table\"},[_c('thead',[_c('tr',_vm._l((_vm.columns),function(th,index){return _c('th',{key:index,ref:\"th\",refInFor:true},[_c('div',{staticClass:\"cell-data\",style:(_vm.cellStyle)},[_vm._v(_vm._s(th))])])}),0)]),_c('tbody',_vm._l((_vm.currentPageData.count),function(rowIndex){return _c('tr',{key:rowIndex},_vm._l((_vm.columns),function(col,colIndex){return _c('td',{key:colIndex},[_c('div',{staticClass:\"cell-data\",style:(_vm.cellStyle)},[_vm._v(\" \"+_vm._s(_vm.dataSet[col][rowIndex - 1 + _vm.currentPageData.start])+\" \")])])}),0)}),0)])])]),_c('div',{staticClass:\"table-footer\"},[_c('div',{staticClass:\"table-footer-count\"},[_vm._v(\" \"+_vm._s(_vm.rowCount)+\" \"+_vm._s(_vm.rowCount === 1 ? 'row' : 'rows')+\" retrieved \"),(_vm.preview)?_c('span',[_vm._v(\"for preview\")]):_vm._e(),(_vm.time)?_c('span',[_vm._v(\"in \"+_vm._s(_vm.time))]):_vm._e()]),_c('pager',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pageCount > 1),expression:\"pageCount > 1\"}],attrs:{\"page-count\":_vm.pageCount},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('paginate',{attrs:{\"page-count\":_vm.pageCount,\"page-range\":5,\"margin-pages\":1,\"prev-text\":_vm.chevron,\"next-text\":_vm.chevron,\"no-li-surround\":true,\"container-class\":\"paginator-continer\",\"page-link-class\":\"paginator-page-link\",\"active-class\":\"paginator-active-page\",\"break-view-link-class\":\"paginator-break\",\"next-link-class\":\"paginator-next\",\"prev-link-class\":\"paginator-prev\",\"disabled-class\":\"paginator-disabled\"},model:{value:(_vm.page),callback:function ($$v) {_vm.page=$$v},expression:\"page\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pager.vue?vue&type=template&id=658886c7&scoped=true&\"\nimport script from \"./Pager.vue?vue&type=script&lang=js&\"\nexport * from \"./Pager.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Pager.vue?vue&type=style&index=0&id=658886c7&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"658886c7\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=115cb541&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"115cb541\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"logsContainer\",staticClass:\"logs-container\"},_vm._l((_vm.messages),function(msg,index){return _c('div',{key:index,staticClass:\"msg\"},[(msg.type === 'error')?_c('img',{attrs:{\"src\":require('@/assets/images/error.svg')}}):_vm._e(),(msg.type === 'info')?_c('img',{attrs:{\"src\":require('@/assets/images/info.svg'),\"width\":\"20px\"}}):_vm._e(),(msg.type === 'success')?_c('img',{attrs:{\"src\":require('@/assets/images/success.svg')}}):_vm._e(),(msg.type === 'loading')?_c('loading-indicator',{attrs:{\"progress\":msg.progress}}):_vm._e(),_c('span',{staticClass:\"msg-text\"},[_vm._v(_vm._s(_vm.serializeMessage(msg)))])],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:_vm.animationClass,attrs:{\"height\":_vm.size,\"width\":_vm.size,\"viewBox\":(\"0 0 \" + _vm.size + \" \" + _vm.size)}},[_c('circle',{staticClass:\"loader-svg bg\",style:({ strokeWidth: _vm.strokeWidth }),attrs:{\"cx\":_vm.size / 2,\"cy\":_vm.size / 2,\"r\":_vm.radius}}),_c('circle',{staticClass:\"loader-svg front\",style:({ strokeDasharray: _vm.circleProgress, strokeDashoffset: _vm.offset, strokeWidth: _vm.strokeWidth }),attrs:{\"cx\":_vm.size / 2,\"cy\":_vm.size / 2,\"r\":_vm.radius}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoadingIndicator.vue?vue&type=template&id=62096452&scoped=true&\"\nimport script from \"./LoadingIndicator.vue?vue&type=script&lang=js&\"\nexport * from \"./LoadingIndicator.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoadingIndicator.vue?vue&type=style&index=0&id=62096452&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62096452\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logs.vue?vue&type=template&id=1c9f27dc&scoped=true&\"\nimport script from \"./Logs.vue?vue&type=script&lang=js&\"\nexport * from \"./Logs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Logs.vue?vue&type=style&index=0&id=1c9f27dc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1c9f27dc\",\n null\n \n)\n\nexport default component.exports","export default {\n getPeriod (start, end) {\n const diff = end.getTime() - start.getTime()\n const seconds = diff / 1000\n return seconds.toFixed(3) + 's'\n },\n\n debounce (func, ms) {\n let timeout\n return function () {\n clearTimeout(timeout)\n timeout = setTimeout(() => func.apply(this, arguments), ms)\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=68ef9d6c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=68ef9d6c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68ef9d6c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DbUploader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DbUploader.vue?vue&type=template&id=eefa30c0&scoped=true&\"\nimport script from \"./DbUploader.vue?vue&type=script&lang=js&\"\nexport * from \"./DbUploader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DbUploader.vue?vue&type=style&index=0&id=eefa30c0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eefa30c0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":function($event){return _vm.showTooltip($event, _vm.tooltipPosition)},\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M10.5 1.5H4.5C3.675 1.5 3 2.175 3 3V15C3 15.825 3.675 16.5 4.5 16.5H13.5C14.325 16.5 15 15.825 15 15V6L10.5 1.5ZM13.5 15H4.5V3H9.75V6.75H13.5V15ZM12 8.25V13.575L10.425 12L8.325 14.1L6.225 12L8.325 9.9L6.675 8.25H12Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" \"+_vm._s(_vm.tooltip)+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./export.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./export.vue?vue&type=template&id=15bea4a0&scoped=true&\"\nimport script from \"./export.vue?vue&type=script&lang=js&\"\nexport * from \"./export.vue?vue&type=script&lang=js&\"\nimport style0 from \"./export.vue?vue&type=style&index=0&id=15bea4a0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15bea4a0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('g',{attrs:{\"clip-path\":\"url(#clip0)\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"\\n M13.6573 1.5H2.59985C1.77485 1.5 1.09985 2.175 1.09985 3V13.6649C1.09985 14.4899\\n 1.77485 15.1649 2.59985\\n 15.1649H9.84V13.6649H8.87866V9.08244H13.6573V9.83777H15.1573V3C15.1573\\n 2.17 14.4873 1.5 13.6573 1.5ZM13.6573\\n 7.58244V3H8.87866V7.58244H13.6573ZM7.37866 3H2.59985V7.58244H7.37866V3ZM2.59985\\n 9.08244V13.6649H7.37866V9.08244H2.59985ZM13.1702\\n 10.8434H15.6702V13.1717H18.0001V15.6717H15.6702V18H13.1702V15.6717H10.8401V13.1717H13.1702V10.8434Z\\n \",\"fill\":\"#A2B1C6\"}})]),_c('defs',[_c('clipPath',{attrs:{\"id\":\"clip0\"}},[_c('rect',{attrs:{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\"}})])])]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Add new table from CSV \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./addTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./addTable.vue?vue&type=template&id=0b825a18&scoped=true&\"\nimport script from \"./addTable.vue?vue&type=script&lang=js&\"\nexport * from \"./addTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./addTable.vue?vue&type=style&index=0&id=0b825a18&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b825a18\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3fcc3d82&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3fcc3d82&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fcc3d82\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"tabs\"}},[(_vm.tabs.length > 0)?_c('div',{attrs:{\"id\":\"tabs-header\"}},_vm._l((_vm.tabs),function(tab,index){return _c('div',{key:index,class:[{'tab-selected': (tab.id === _vm.selectedIndex)}, 'tab'],on:{\"click\":function($event){return _vm.selectTab(tab.id)}}},[_c('div',{staticClass:\"tab-name\"},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!tab.isSaved),expression:\"!tab.isSaved\"}],staticClass:\"star\"},[_vm._v(\"*\")]),(tab.name)?_c('span',[_vm._v(_vm._s(tab.name))]):_c('span',{staticClass:\"tab-untitled\"},[_vm._v(_vm._s(tab.tempName))])]),_c('div',[_c('close-icon',{staticClass:\"close-icon\",attrs:{\"size\":10},on:{\"click\":function($event){return _vm.beforeCloseTab(index)}}})],1)])}),0):_vm._e(),_vm._l((_vm.tabs),function(tab,index){return _c('tab',{key:tab.id,attrs:{\"id\":tab.id,\"init-name\":tab.name,\"init-query\":tab.query,\"init-view-options\":tab.viewOptions,\"init-view-type\":tab.viewType,\"is-predefined\":tab.isPredefined,\"tab-index\":index}})}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.tabs.length === 0),expression:\"tabs.length === 0\"}],attrs:{\"id\":\"start-guide\"}},[_c('span',{staticClass:\"link\",on:{\"click\":function($event){return _vm.$root.$emit('createNewInquiry')}}},[_vm._v(\"Create\")]),_vm._v(\" new inquiry from scratch or open one from \"),_c('router-link',{staticClass:\"link\",attrs:{\"to\":\"/inquiries\"}},[_vm._v(\"Inquiries\")])],1),_c('modal',{attrs:{\"name\":\"close-warn\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Close tab \"+_vm._s(_vm.closingTabIndex !== null ? (_vm.tabs[_vm.closingTabIndex].name || (\"[\" + (_vm.tabs[_vm.closingTabIndex].tempName) + \"]\")) : '')+\" \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('close-warn')}}})],1),_c('div',{staticClass:\"dialog-body\"},[_vm._v(\" You have unsaved changes. Save changes in \"+_vm._s(_vm.closingTabIndex !== null ? (_vm.tabs[_vm.closingTabIndex].name || (\"[\" + (_vm.tabs[_vm.closingTabIndex].tempName) + \"]\")) : '')+\" before closing? \")]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.closeTab(_vm.closingTabIndex)}}},[_vm._v(\" Close without saving \")]),_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.$modal.hide('close-warn')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":function($event){return _vm.saveAndClose(_vm.closingTabIndex)}}},[_vm._v(\"Save and close\")])])])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isActive),expression:\"isActive\"}],staticClass:\"tab-content-container\"},[_c('splitpanes',{staticClass:\"query-results-splitter\",attrs:{\"horizontal\":\"\",\"before\":{ size: 50, max: 100 },\"after\":{ size: 50, max: 100 }},scopedSlots:_vm._u([{key:\"left-pane\",fn:function(){return [_c('div',{staticClass:\"above\",attrs:{\"id\":'above-' + _vm.tabIndex}})]},proxy:true},{key:\"right-pane\",fn:function(){return [_c('div',{ref:\"bottomPane\",staticClass:\"bottomPane\",attrs:{\"id\":'bottom-'+ _vm.tabIndex}})]},proxy:true}])}),_c('div',{staticClass:\"hidden-part\",attrs:{\"id\":'hidden-'+ _vm.tabIndex}}),_c('teleport',{attrs:{\"to\":(\"#\" + (_vm.layout.sqlEditor) + \"-\" + _vm.tabIndex)}},[_c('sql-editor',{ref:\"sqlEditor\",attrs:{\"is-getting-results\":_vm.isGettingResults},on:{\"switchTo\":function($event){return _vm.onSwitchView('sqlEditor', $event)},\"run\":_vm.execute},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1),_c('teleport',{attrs:{\"to\":(\"#\" + (_vm.layout.table) + \"-\" + _vm.tabIndex)}},[_c('run-result',{attrs:{\"result\":_vm.result,\"is-getting-results\":_vm.isGettingResults,\"error\":_vm.error,\"time\":_vm.time},on:{\"switchTo\":function($event){return _vm.onSwitchView('table', $event)}}})],1),_c('teleport',{attrs:{\"to\":(\"#\" + (_vm.layout.dataView) + \"-\" + _vm.tabIndex)}},[_c('data-view',{ref:\"dataView\",attrs:{\"data-source\":_vm.result,\"init-options\":_vm.initViewOptions,\"init-mode\":_vm.initViewType},on:{\"switchTo\":function($event){return _vm.onSwitchView('dataView', $event)},\"update\":_vm.onDataViewUpdate}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sql-editor-panel\"},[_c('div',{staticClass:\"codemirror-container\"},[_c('codemirror',{ref:\"cm\",attrs:{\"options\":_vm.cmOptions},on:{\"changes\":_vm.onChange},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1),_c('side-tool-bar',{attrs:{\"panel\":\"sqlEditor\"},on:{\"switchTo\":function($event){return _vm.$emit('switchTo', $event)}}},[_c('icon-button',{attrs:{\"disabled\":_vm.runDisabled,\"loading\":_vm.isGettingResults,\"tooltip\":\"Run SQL query\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){return _vm.$emit('run')}}},[_c('run-icon',{attrs:{\"disabled\":_vm.runDisabled}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n tabs: [],\n currentTab: null,\n currentTabId: null,\n untitledLastIndex: 0,\n predefinedInquiries: [],\n db: null\n}\n","import Vue from 'vue'\n\nexport default {\n setDb (state, db) {\n if (state.db) {\n state.db.shutDown()\n }\n state.db = db\n },\n\n updateTab (state, { index, name, id, query, viewType, viewOptions, isSaved }) {\n const tab = state.tabs[index]\n const oldId = tab.id\n\n if (id && state.currentTabId === oldId) {\n state.currentTabId = id\n }\n\n if (id) { tab.id = id }\n if (name) { tab.name = name }\n if (query) { tab.query = query }\n if (viewType) { tab.viewType = viewType }\n if (viewOptions) { tab.viewOptions = viewOptions }\n if (isSaved !== undefined) { tab.isSaved = isSaved }\n if (isSaved) {\n // Saved inquiry is not predefined\n delete tab.isPredefined\n }\n\n Vue.set(state.tabs, index, tab)\n },\n\n deleteTab (state, index) {\n // If closing tab is the current opened\n if (state.tabs[index].id === state.currentTabId) {\n if (index < state.tabs.length - 1) {\n state.currentTabId = state.tabs[index + 1].id\n } else if (index > 0) {\n state.currentTabId = state.tabs[index - 1].id\n } else {\n state.currentTabId = null\n state.currentTab = null\n state.untitledLastIndex = 0\n }\n }\n state.tabs.splice(index, 1)\n },\n setCurrentTabId (state, id) {\n state.currentTabId = id\n },\n setCurrentTab (state, tab) {\n state.currentTab = tab\n },\n updatePredefinedInquiries (state, inquiries) {\n state.predefinedInquiries = Array.isArray(inquiries) ? inquiries : [inquiries]\n }\n}\n","import { nanoid } from 'nanoid'\n\nexport default {\n async addTab ({ state }, data) {\n const tab = data ? JSON.parse(JSON.stringify(data)) : {}\n // If no data then create a new blank one...\n // No data.id means to create new tab, but not blank,\n // e.g. with 'select * from csv_import' inquiry after csv import\n if (!data || !data.id) {\n tab.id = nanoid()\n tab.name = null\n tab.tempName = state.untitledLastIndex\n ? `Untitled ${state.untitledLastIndex}`\n : 'Untitled'\n tab.viewType = 'chart'\n tab.viewOptions = undefined\n tab.isSaved = false\n } else {\n tab.isSaved = true\n }\n\n // add new tab only if was not already opened\n if (!state.tabs.some(openedTab => openedTab.id === tab.id)) {\n state.tabs.push(tab)\n if (!tab.name) {\n state.untitledLastIndex += 1\n }\n }\n\n return tab.id\n }\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport state from '@/store/state'\nimport mutations from '@/store/mutations'\nimport actions from '@/store/actions'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state,\n mutations,\n actions\n})\n","import CM from 'codemirror'\nimport 'codemirror/addon/hint/show-hint.js'\nimport 'codemirror/addon/hint/sql-hint.js'\nimport store from '@/store'\n\nexport function getHints (cm, options) {\n const token = cm.getTokenAt(cm.getCursor()).string.toUpperCase()\n const result = CM.hint.sql(cm, options)\n // Don't show the hint if there is only one option\n // and the token is already completed with this option\n if (result.list.length === 1 && result.list[0].text.toUpperCase() === token) {\n result.list = []\n }\n return result\n}\n\nconst hintOptions = {\n get tables () {\n const tables = {}\n if (store.state.db.schema) {\n store.state.db.schema.forEach(table => {\n tables[table.name] = table.columns.map(column => column.name)\n })\n }\n return tables\n },\n get defaultTable () {\n const schema = store.state.db.schema\n return schema && schema.length === 1 ? schema[0].name : null\n },\n completeSingle: false,\n completeOnSingleClick: true,\n alignWithWord: false\n}\n\nexport function showHintOnDemand (editor) {\n CM.showHint(editor, getHints, hintOptions)\n}\n\nexport default function showHint (editor) {\n // Don't show autocomplete after a space or semicolon or in string literals\n const token = editor.getTokenAt(editor.getCursor())\n const ch = token.string.slice(-1)\n const tokenType = token.type\n if (tokenType === 'string' || !ch || ch === ' ' || ch === ';') {\n return\n }\n\n CM.showHint(editor, getHints, hintOptions)\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"side-tool-bar\"},[_c('icon-button',{attrs:{\"active\":_vm.panel === 'sqlEditor',\"tooltip\":\"Switch panel to SQL editor\",\"tooltip-position\":\"top-left\"},nativeOn:{\"click\":function($event){return _vm.$emit('switchTo', 'sqlEditor')}}},[_c('sql-editor-icon')],1),_c('icon-button',{attrs:{\"active\":_vm.panel === 'table',\"tooltip\":\"Switch panel to result set\",\"tooltip-position\":\"top-left\"},nativeOn:{\"click\":function($event){return _vm.$emit('switchTo', 'table')}}},[_c('table-icon')],1),_c('icon-button',{attrs:{\"active\":_vm.panel === 'dataView',\"tooltip\":\"Switch panel to data view\",\"tooltip-position\":\"top-left\"},nativeOn:{\"click\":function($event){return _vm.$emit('switchTo', 'dataView')}}},[_c('data-view-icon')],1),(_vm.$slots.default)?_c('div',{staticClass:\"side-tool-bar-divider\"}):_vm._e(),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['icon-btn', { active: _vm.active }, { disabled: _vm.disabled }],on:{\"click\":_vm.onClick,\"mouseenter\":function($event){return _vm.showTooltip($event, _vm.tooltipPosition)},\"mouseleave\":_vm.hideTooltip}},[_c('div',{staticClass:\"icon\"},[_vm._t(\"default\")],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"icon-in-progress\"},[_c('loading-indicator')],1),(_vm.tooltip)?_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" \"+_vm._s(_vm.tooltip)+\" \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./IconButton.vue?vue&type=template&id=0c2b486e&scoped=true&\"\nimport script from \"./IconButton.vue?vue&type=script&lang=js&\"\nexport * from \"./IconButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./IconButton.vue?vue&type=style&index=0&id=0c2b486e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c2b486e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M14.5 2.16512L3.5 2.16999C2.675 2.16999 2 2.84499 2 3.66999V14.3349C2 15.1599 2.675 15.8349 3.5 15.8349L14.5 15.83C15.3327 15.83 16 15.1551 16 14.33V3.66512C16 2.83511 15.33 2.16512 14.5 2.16512ZM14.5014 3.66512L3.49878 3.66999V14.33L14.5014 14.3251V3.66512Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M6.27319 14.7069L6.27319 3.32135L7.77319 3.32135L7.77319 14.7069L6.27319 14.7069Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M10.2639 14.6932L10.2639 3.30772L11.7639 3.30772L11.7639 14.6932L10.2639 14.6932Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M15.5108 7.48325H2.4895V5.98325H15.5108V7.48325Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M15.5108 11.6056H2.4895V10.1056H15.5108V11.6056Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./table.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./table.vue?vue&type=template&id=66df4be4&\"\nimport script from \"./table.vue?vue&type=script&lang=js&\"\nexport * from \"./table.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"19\",\"viewBox\":\"0 0 18 19\",\"fill\":\"none\"}},[_c('g',{attrs:{\"clip-path\":\"url(#clip0)\"}},[_c('path',{attrs:{\"d\":\"M4.5 1.51343H10.5L15 6.01343V8.45284H13.5V6.76343H9.75V3.01343H4.5V8.45284H3V3.01343C3 2.18843 3.675 1.51343 4.5 1.51343Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M4.28369 14.8127C4.28369 14.5872 4.20312 14.4114 4.04199 14.2854C3.88379 14.1594 3.604 14.0291 3.20264 13.8943C2.80127 13.7595 2.47314 13.6292 2.21826 13.5032C1.38916 13.0959 0.974609 12.5364 0.974609 11.8245C0.974609 11.47 1.07715 11.158 1.28223 10.8884C1.49023 10.616 1.7832 10.405 2.16113 10.2556C2.53906 10.1033 2.96387 10.0271 3.43555 10.0271C3.89551 10.0271 4.30713 10.1091 4.67041 10.2732C5.03662 10.4373 5.3208 10.6716 5.52295 10.9763C5.7251 11.2781 5.82617 11.6238 5.82617 12.0134H4.28809C4.28809 11.7527 4.20752 11.5505 4.04639 11.407C3.88818 11.2634 3.67285 11.1917 3.40039 11.1917C3.125 11.1917 2.90674 11.2532 2.74561 11.3762C2.5874 11.4963 2.5083 11.6501 2.5083 11.8376C2.5083 12.0017 2.59619 12.1511 2.77197 12.2859C2.94775 12.4177 3.25684 12.5554 3.69922 12.699C4.1416 12.8396 4.50488 12.9919 4.78906 13.156C5.48047 13.5544 5.82617 14.1038 5.82617 14.804C5.82617 15.3635 5.61523 15.803 5.19336 16.1223C4.77148 16.4417 4.19287 16.6013 3.45752 16.6013C2.93896 16.6013 2.46875 16.509 2.04688 16.3245C1.62793 16.137 1.31152 15.8821 1.09766 15.5598C0.886719 15.2346 0.78125 14.8611 0.78125 14.4392H2.32812C2.32812 14.782 2.41602 15.0354 2.5918 15.1995C2.77051 15.3606 3.05908 15.4412 3.45752 15.4412C3.7124 15.4412 3.91309 15.387 4.05957 15.2786C4.20898 15.1672 4.28369 15.012 4.28369 14.8127ZM12.0444 13.446C12.0444 14.0378 11.9463 14.5549 11.75 14.9973C11.5537 15.4368 11.2827 15.7898 10.937 16.0564L11.9697 16.8738L11.0161 17.6824L9.64062 16.575C9.51172 16.5925 9.38281 16.6013 9.25391 16.6013C8.70898 16.6013 8.22559 16.4753 7.80371 16.2234C7.38184 15.9714 7.05225 15.6111 6.81494 15.1423C6.58057 14.6736 6.45898 14.1345 6.4502 13.5251V13.1868C6.4502 12.5569 6.56445 12.0032 6.79297 11.5256C7.02441 11.0481 7.35254 10.679 7.77734 10.4182C8.20508 10.1575 8.69434 10.0271 9.24512 10.0271C9.78711 10.0271 10.2705 10.156 10.6953 10.4138C11.1201 10.6716 11.4497 11.0393 11.6841 11.5168C11.9214 11.9915 12.0415 12.5364 12.0444 13.1516V13.446ZM10.4756 13.178C10.4756 12.5422 10.3687 12.0603 10.1548 11.7322C9.94385 11.4011 9.64062 11.2356 9.24512 11.2356C8.83789 11.2356 8.53174 11.3982 8.32666 11.7234C8.12158 12.0486 8.01758 12.5247 8.01465 13.1516V13.446C8.01465 14.0759 8.11865 14.5593 8.32666 14.8962C8.53467 15.2302 8.84375 15.3972 9.25391 15.3972C9.64648 15.3972 9.94678 15.2317 10.1548 14.9006C10.3657 14.5696 10.4727 14.0935 10.4756 13.4724V13.178ZM14.3735 15.3269H17.0586V16.5134H12.8311V10.115H14.3735V15.3269Z\",\"fill\":\"#A2B1C6\"}})]),_c('defs',[_c('clipPath',{attrs:{\"id\":\"clip0\"}},[_c('rect',{attrs:{\"width\":\"18\",\"height\":\"18\",\"fill\":\"white\",\"transform\":\"translate(0 0.0134277)\"}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sqlEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sqlEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./sqlEditor.vue?vue&type=template&id=56d6f4f2&\"\nimport script from \"./sqlEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./sqlEditor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M13.5552 6.91522C13.7584 6.91357 13.9535 6.99442 14.096 7.13926L17.2582 10.3541C17.5486 10.6494 17.5447 11.1242 17.2494 11.4147C16.9541 11.7051 16.4793 11.7012 16.1888 11.4059L13.57 8.74357L9.29577 13.2318C9.01977 13.5216 8.56484 13.5436 8.2621 13.2819L5.35435 10.7677L2.03285 13.7321C1.72382 14.0079 1.24971 13.981 0.973901 13.6719C0.69809 13.3629 0.725022 12.8888 1.03406 12.613L4.8471 9.20986C5.12827 8.95892 5.55198 8.95559 5.83705 9.20208L8.70249 11.6797L13.0182 7.14796C13.1583 7.00084 13.3521 6.91686 13.5552 6.91522Z\",\"fill\":\"#A2B1C6\"}}),_c('circle',{attrs:{\"cx\":\"5.50049\",\"cy\":\"6.00339\",\"r\":\"1.5\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M16.036 1.21788L1.96546 1.213C1.14046 1.213 0.465462 1.888 0.465462 2.713L0.464111 15.2821C0.464111 16.1071 1.13911 16.7821 1.96411 16.7821L16.0347 16.787C16.8674 16.787 17.5347 16.1121 17.5347 15.287L17.536 2.71788C17.536 1.88787 16.866 1.21788 16.036 1.21788ZM16.0374 2.71788L1.96424 2.713L1.96289 15.2773L16.036 15.2821L16.0374 2.71788Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dataView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./dataView.vue?vue&type=template&id=8c6d3ebe&\"\nimport script from \"./dataView.vue?vue&type=script&lang=js&\"\nexport * from \"./dataView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SideToolBar.vue?vue&type=template&id=3b6366bb&scoped=true&\"\nimport script from \"./SideToolBar.vue?vue&type=script&lang=js&\"\nexport * from \"./SideToolBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SideToolBar.vue?vue&type=style&index=0&id=3b6366bb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3b6366bb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"12\",\"height\":\"13\",\"viewBox\":\"0 0 12 13\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M11.1624 6.94358L0.770043 12.9436L0.770043 0.943573L11.1624 6.94358Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./run.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./run.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./run.vue?vue&type=template&id=6d9e3fdd&\"\nimport script from \"./run.vue?vue&type=script&lang=js&\"\nexport * from \"./run.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c84dd870&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=c84dd870&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c84dd870\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"data-view-panel\"},[_c('div',{staticClass:\"data-view-panel-content\"},[_c(_vm.mode,{ref:\"viewComponent\",tag:\"component\",attrs:{\"init-options\":_vm.mode === _vm.initMode ? _vm.initOptions : undefined,\"data-sources\":_vm.dataSource,\"import-to-png-enabled\":_vm.importToPngEnabled},on:{\"update:importToPngEnabled\":function($event){_vm.importToPngEnabled=$event},\"update:import-to-png-enabled\":function($event){_vm.importToPngEnabled=$event},\"loadingImageCompleted\":function($event){_vm.loadingImage = false},\"update\":function($event){return _vm.$emit('update')}}})],1),_c('side-tool-bar',{attrs:{\"panel\":\"dataView\"},on:{\"switchTo\":function($event){return _vm.$emit('switchTo', $event)}}},[_c('icon-button',{attrs:{\"active\":_vm.mode === 'chart',\"tooltip\":\"Switch to chart\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){_vm.mode = 'chart'}}},[_c('chart-icon')],1),_c('icon-button',{attrs:{\"active\":_vm.mode === 'pivot',\"tooltip\":\"Switch to pivot\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){_vm.mode = 'pivot'}}},[_c('pivot-icon')],1),_c('div',{staticClass:\"side-tool-bar-divider\"}),_c('icon-button',{attrs:{\"disabled\":!_vm.importToPngEnabled || _vm.loadingImage,\"loading\":_vm.loadingImage,\"tooltip\":\"Save as PNG image\",\"tooltip-position\":\"top-left\"},on:{\"click\":_vm.saveAsPng}},[_c('png-icon')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],ref:\"chartContainer\",staticClass:\"chart-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.dataSources && _vm.visible),expression:\"!dataSources && visible\"}],staticClass:\"warning chart-warning\"},[_vm._v(\" There is no data to build a chart. Run your SQL query and make sure the result is not empty. \")]),_c('PlotlyEditor',{ref:\"plotlyEditor\",staticClass:\"chart\",style:({ height: !_vm.dataSources ? 'calc(100% - 40px)' : '100%' }),attrs:{\"data\":_vm.state.data,\"layout\":_vm.state.layout,\"frames\":_vm.state.frames,\"config\":{ editable: true, displaylogo: false, modeBarButtonsToRemove: ['toImage'] },\"dataSources\":_vm.dataSources,\"dataSourceOptions\":_vm.dataSourceOptions,\"plotly\":_vm.plotly,\"useResizeHandler\":true,\"debug\":true,\"advancedTraceTypeSelector\":true},on:{\"onUpdate\":_vm.update,\"onRender\":_vm.onRender}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import dereference from 'react-chart-editor/lib/lib/dereference'\n\nexport function getOptionsFromDataSources (dataSources) {\n if (!dataSources) {\n return []\n }\n\n return Object.keys(dataSources).map(name => ({\n value: name,\n label: name\n }))\n}\n\nexport function getOptionsForSave (state, dataSources) {\n // we don't need to save the data, only settings\n // so we modify state.data using dereference\n const stateCopy = JSON.parse(JSON.stringify(state))\n const emptySources = {}\n for (const key in dataSources) {\n emptySources[key] = []\n }\n dereference(stateCopy.data, emptySources)\n return stateCopy\n}\n\nexport default {\n getOptionsFromDataSources,\n getOptionsForSave\n}\n","\n\n\n\n\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=31be4117&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=31be4117&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31be4117\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pivot-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.dataSources),expression:\"!dataSources\"}],staticClass:\"warning pivot-warning\"},[_vm._v(\" There is no data to build a pivot. Run your SQL query and make sure the result is not empty. \")]),_c('pivot-ui',{attrs:{\"key-names\":_vm.columns},on:{\"update\":function($event){return _vm.$emit('update')},\"loadingCustomChartImageCompleted\":function($event){return _vm.$emit('loadingImageCompleted')}},model:{value:(_vm.pivotOptions),callback:function ($$v) {_vm.pivotOptions=$$v},expression:\"pivotOptions\"}}),_c('div',{ref:\"pivotOutput\",staticClass:\"pivot-output\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pivot-ui\"},[_c('div',{class:{collapsed: _vm.collapsed}},[_c('div',{staticClass:\"row\"},[_c('label',[_vm._v(\"Columns\")]),_c('multiselect',{staticClass:\"sqliteviz-select cols\",attrs:{\"options\":_vm.colsToSelect,\"disabled\":_vm.colsToSelect.length === 0,\"multiple\":true,\"hideSelected\":true,\"close-on-select\":true,\"show-labels\":false,\"max\":_vm.colsToSelect.length,\"open-direction\":\"bottom\",\"placeholder\":\"\"},model:{value:(_vm.cols),callback:function ($$v) {_vm.cols=$$v},expression:\"cols\"}},[_c('template',{slot:\"maxElements\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])]),_c('template',{slot:\"placeholder\"},[_vm._v(\"Choose columns\")]),_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2),_c('pivot-sort-btn',{staticClass:\"sort-btn\",attrs:{\"direction\":\"col\"},model:{value:(_vm.colOrder),callback:function ($$v) {_vm.colOrder=$$v},expression:\"colOrder\"}})],1),_c('div',{staticClass:\"row\"},[_c('label',[_vm._v(\"Rows\")]),_c('multiselect',{staticClass:\"sqliteviz-select rows\",attrs:{\"options\":_vm.rowsToSelect,\"disabled\":_vm.rowsToSelect.length === 0,\"multiple\":true,\"hideSelected\":true,\"close-on-select\":true,\"show-labels\":false,\"max\":_vm.rowsToSelect.length,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"\"},model:{value:(_vm.rows),callback:function ($$v) {_vm.rows=$$v},expression:\"rows\"}},[_c('template',{slot:\"maxElements\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])]),_c('template',{slot:\"placeholder\"},[_vm._v(\"Choose rows\")]),_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2),_c('pivot-sort-btn',{staticClass:\"sort-btn\",attrs:{\"direction\":\"row\"},model:{value:(_vm.rowOrder),callback:function ($$v) {_vm.rowOrder=$$v},expression:\"rowOrder\"}})],1),_c('div',{staticClass:\"row aggregator\"},[_c('label',[_vm._v(\"Aggregator\")]),_c('multiselect',{staticClass:\"sqliteviz-select short aggregator\",attrs:{\"options\":_vm.aggregators,\"label\":\"name\",\"track-by\":\"name\",\"close-on-select\":true,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose a function\"},model:{value:(_vm.aggregator),callback:function ($$v) {_vm.aggregator=$$v},expression:\"aggregator\"}},[_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2),_c('multiselect',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.valCount > 0),expression:\"valCount > 0\"}],staticClass:\"sqliteviz-select aggr-arg\",attrs:{\"options\":_vm.keyNames,\"disabled\":_vm.keyNames.length === 0,\"close-on-select\":true,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose an argument\"},model:{value:(_vm.val1),callback:function ($$v) {_vm.val1=$$v},expression:\"val1\"}}),_c('multiselect',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.valCount > 1),expression:\"valCount > 1\"}],staticClass:\"sqliteviz-select aggr-arg\",attrs:{\"options\":_vm.keyNames,\"disabled\":_vm.keyNames.length === 0,\"close-on-select\":true,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose a second argument\"},model:{value:(_vm.val2),callback:function ($$v) {_vm.val2=$$v},expression:\"val2\"}})],1),_c('div',{staticClass:\"row\"},[_c('label',[_vm._v(\"View\")]),_c('multiselect',{staticClass:\"sqliteviz-select short renderer\",attrs:{\"options\":_vm.renderers,\"label\":\"name\",\"track-by\":\"name\",\"close-on-select\":true,\"allow-empty\":false,\"show-labels\":false,\"hideSelected\":true,\"option-height\":29,\"open-direction\":\"bottom\",\"placeholder\":\"Choose a view\"},model:{value:(_vm.renderer),callback:function ($$v) {_vm.renderer=$$v},expression:\"renderer\"}},[_c('template',{slot:\"noResult\"},[_c('span',{staticClass:\"no-results\"},[_vm._v(\"No Results\")])])],2)],1)]),_c('span',{staticClass:\"switcher\",on:{\"click\":function($event){_vm.collapsed = !_vm.collapsed}}},[_vm._v(\" \"+_vm._s(_vm.collapsed ? 'Show pivot settings' : 'Hide pivot settings')+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['pivot-sort-btn', _vm.direction],on:{\"click\":_vm.changeSorting}},[_vm._v(\" \"+_vm._s(_vm.value.includes('key') ? 'key' : 'value')+\" \"),_c('sort-icon',{staticClass:\"sort-icon\",attrs:{\"horizontal\":_vm.direction === 'col',\"asc\":_vm.value.includes('a_to_z')}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:['sort-icon', { horizontal: _vm.horizontal }, { asc: _vm.asc }],attrs:{\"width\":\"6\",\"height\":\"12\",\"viewBox\":\"0 0 6 12\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M2.99932 -3.63032e-05C2.75092 -3.63032e-05 2.54932 0.201563 2.54932 0.449964L2.54932 11.55C2.54932 11.7984 2.75092 12 2.99932 12C3.24772 12 3.44932 11.7984 3.44932 11.55L3.44932 0.449964C3.44932 0.201563 3.24772 -3.63032e-05 2.99932 -3.63032e-05Z\",\"fill\":\"#506784\"}}),_c('path',{attrs:{\"d\":\"M2.99915 1.80492e-05C2.8839 1.80492e-05 2.76865 0.0438534 2.68109 0.132073L0.581055 2.232C0.405273 2.40789 0.405273 2.69287 0.581055 2.86865C0.756946 3.04443 1.04193 3.04443 1.21771 2.86865L2.99969 1.08667L4.78168 2.86865C4.95746 3.04443 5.24255 3.04443 5.41833 2.86865C5.59412 2.69287 5.59412 2.40789 5.41833 2.232L3.3183 0.132073C3.22953 0.0438534 3.11428 1.80492e-05 2.99915 1.80492e-05V1.80492e-05Z\",\"fill\":\"#506784\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sort.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./sort.vue?vue&type=template&id=28a29e7a&scoped=true&\"\nimport script from \"./sort.vue?vue&type=script&lang=js&\"\nexport * from \"./sort.vue?vue&type=script&lang=js&\"\nimport style0 from \"./sort.vue?vue&type=style&index=0&id=28a29e7a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28a29e7a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PivotSortBtn.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PivotSortBtn.vue?vue&type=template&id=e3801f08&scoped=true&\"\nimport script from \"./PivotSortBtn.vue?vue&type=script&lang=js&\"\nexport * from \"./PivotSortBtn.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PivotSortBtn.vue?vue&type=style&index=0&id=e3801f08&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e3801f08\",\n null\n \n)\n\nexport default component.exports","import $ from 'jquery'\nimport 'pivottable'\nimport 'pivottable/dist/export_renderers.js'\nimport 'pivottable/dist/plotly_renderers.js'\n\nexport const zeroValAggregators = [\n 'Count',\n 'Count as Fraction of Total',\n 'Count as Fraction of Rows',\n 'Count as Fraction of Columns'\n]\n\nexport const twoValAggregators = [\n 'Sum over Sum',\n '80% Upper Bound',\n '80% Lower Bound'\n]\n\nexport function _getDataSources (pivotData) {\n const rowKeys = pivotData.getRowKeys()\n const colKeys = pivotData.getColKeys()\n\n const dataSources = {\n 'Column keys': colKeys.map(colKey => colKey.join('-')),\n 'Row keys': rowKeys.map(rowKey => rowKey.join('-'))\n }\n\n const dataSourcesByRows = {}\n const dataSourcesByCols = {}\n\n const rowAttrs = pivotData.rowAttrs.join('-')\n const colAttrs = pivotData.colAttrs.join('-')\n\n colKeys.forEach(colKey => {\n const sourceColKey = colAttrs + ':' + colKey.join('-')\n dataSourcesByCols[sourceColKey] = []\n rowKeys.forEach(rowKey => {\n const value = pivotData.getAggregator(rowKey, colKey).value()\n dataSourcesByCols[sourceColKey].push(value)\n const sourceRowKey = rowAttrs + ':' + rowKey.join('-')\n if (!dataSourcesByRows[sourceRowKey]) {\n dataSourcesByRows[sourceRowKey] = []\n }\n dataSourcesByRows[sourceRowKey].push(value)\n })\n })\n\n return Object.assign(dataSources, dataSourcesByCols, dataSourcesByRows)\n}\n\nfunction customChartRenderer (data, options) {\n options.customChartComponent.dataSources = _getDataSources(data)\n options.customChartComponent.$mount()\n\n return $(options.customChartComponent.$el)\n}\n\n$.extend(\n $.pivotUtilities.renderers,\n $.pivotUtilities.export_renderers,\n $.pivotUtilities.plotly_renderers,\n { 'Custom chart': customChartRenderer }\n)\n\nexport const renderers = Object.keys($.pivotUtilities.renderers).map(key => {\n return {\n name: key,\n fun: $.pivotUtilities.renderers[key]\n }\n})\n\nexport const aggregators = Object.keys($.pivotUtilities.aggregators).map(key => {\n return {\n name: key,\n fun: $.pivotUtilities.aggregators[key]\n }\n})\n","\n\n\n\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6d818ae0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6d818ae0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d818ae0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ca17e020&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ca17e020&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ca17e020\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M8.41943 16V10H10.4194V16H8.41943Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M2.41943 16L2.41943 10H4.41943V16H2.41943Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M11.4194 16V7H13.4194V16H11.4194Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M14.4194 16V8H16.4194V16H14.4194Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M7.41943 12V16H5.41943V12H7.41943Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M12.4332 1.80676L16.6265 6.00001L15.9194 6.70712L12.4055 3.19326L5.93169 9.1691L1.71436 5.55424L2.36515 4.79499L5.90707 7.83092L12.4332 1.80676Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./chart.vue?vue&type=template&id=16c3eaec&\"\nimport script from \"./chart.vue?vue&type=script&lang=js&\"\nexport * from \"./chart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"d\":\"M15.7661 5.13901L18.3407 9.43008H16.5161V12.8467C16.5161 13.7957 16.2783 14.6451 15.6714 15.2521C15.0645 15.859 14.215 16.0967 13.2661 16.0967H9.84942V17.9214L5.55835 15.3467L9.84942 12.7721V14.5967H13.2661C13.9838 14.5967 14.3844 14.4178 14.6108 14.1914C14.8372 13.965 15.0161 13.5645 15.0161 12.8467V9.43008H13.1914L15.7661 5.13901Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M6.41943 0H18.4194V4H6.41943V0Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M0.419434 6H4.41943V18H0.419434V6Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M0.419434 0H4.41943V4H0.419434V0Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pivot.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pivot.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./pivot.vue?vue&type=template&id=87050fe2&\"\nimport script from \"./pivot.vue?vue&type=script&lang=js&\"\nexport * from \"./pivot.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M9 5.51953C6.57686 5.51953 4.60547 7.49092 4.60547 9.91406C4.60547 12.3372 6.57686 14.3086 9 14.3086C11.4231 14.3086 13.3945 12.3372 13.3945 9.91406C13.3945 7.49092 11.4231 5.51953 9 5.51953ZM9 12.9023C7.35226 12.9023 6.01172 11.5618 6.01172 9.91406C6.01172 8.26632 7.35226 6.92578 9 6.92578C10.6477 6.92578 11.9883 8.26632 11.9883 9.91406C11.9883 11.5618 10.6477 12.9023 9 12.9023Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M15.8906 3.41016H13.304C13.2221 3.41016 13.1483 3.36547 13.1104 3.29319L12.3948 1.78945C12.3928 1.78534 12.3908 1.78126 12.3887 1.77718C12.1117 1.22312 11.5548 0.878906 10.9353 0.878906H7.11478C6.49529 0.878906 5.93835 1.22312 5.66135 1.77722C5.65928 1.7813 5.65731 1.78538 5.65534 1.78949L4.9397 3.2933C4.90173 3.36547 4.82797 3.41016 4.74609 3.41016H2.10938C0.946266 3.41016 0 4.35642 0 5.51953V15.0117C0 16.1748 0.946266 17.1211 2.10938 17.1211H15.8906C17.0537 17.1211 18 16.1748 18 15.0117V5.51953C18 4.35642 17.0537 3.41016 15.8906 3.41016ZM16.5938 15.0117C16.5938 15.3994 16.2783 15.7148 15.8906 15.7148H2.10938C1.72167 15.7148 1.40625 15.3994 1.40625 15.0117V5.51953C1.40625 5.13183 1.72167 4.81641 2.10938 4.81641H4.74609C5.36555 4.81641 5.92249 4.47223 6.19952 3.91816C6.2016 3.91409 6.20357 3.90997 6.20557 3.90586L6.92121 2.40205C6.95914 2.32984 7.0329 2.28516 7.11478 2.28516H10.9353C11.0172 2.28516 11.091 2.32984 11.1289 2.40202L11.8445 3.90582C11.8465 3.90994 11.8485 3.91405 11.8506 3.91813C12.1276 4.47219 12.6846 4.81637 13.304 4.81637H15.8906C16.2783 4.81637 16.5938 5.13179 16.5938 5.5195V15.0117Z\",\"fill\":\"#A2B1C6\"}}),_c('path',{attrs:{\"d\":\"M15.1875 6.22266H13.7812V7.62891H15.1875V6.22266Z\",\"fill\":\"#A2B1C6\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./png.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./png.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./png.vue?vue&type=template&id=e31e3054&\"\nimport script from \"./png.vue?vue&type=script&lang=js&\"\nexport * from \"./png.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=513fdbc5&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=513fdbc5&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"513fdbc5\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"runResultPanel\",staticClass:\"run-result-panel\"},[_c('div',{staticClass:\"run-result-panel-content\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.result === null && !_vm.isGettingResults && !_vm.error),expression:\"result === null && !isGettingResults && !error\"}],staticClass:\"table-preview result-before\"},[_vm._v(\" Run your query and get results here \")]),(_vm.isGettingResults)?_c('div',{staticClass:\"table-preview result-in-progress\"},[_c('loading-indicator',{attrs:{\"size\":30}}),_vm._v(\" Fetching results... \")],1):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.result === undefined && !_vm.isGettingResults && !_vm.error),expression:\"result === undefined && !isGettingResults && !error\"}],staticClass:\"table-preview result-empty\"},[_vm._v(\" No rows retrieved according to your query \")]),(_vm.error)?_c('logs',{attrs:{\"messages\":[_vm.error]}}):_vm._e(),(_vm.result)?_c('sql-table',{staticClass:\"straight\",attrs:{\"data-set\":_vm.result,\"time\":_vm.time,\"pageSize\":_vm.pageSize}}):_vm._e()],1),_c('side-tool-bar',{attrs:{\"panel\":\"table\"},on:{\"switchTo\":function($event){return _vm.$emit('switchTo', $event)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RunResult.vue?vue&type=template&id=73e5054b&scoped=true&\"\nimport script from \"./RunResult.vue?vue&type=script&lang=js&\"\nexport * from \"./RunResult.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RunResult.vue?vue&type=style&index=0&id=73e5054b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"73e5054b\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=24244834&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=24244834&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24244834\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=75c85da5&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=de063d86&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=de063d86&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"de063d86\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showedInquiries.length === 0)?_c('div',{attrs:{\"id\":\"start-guide\"}},[_vm._v(\" You don't have saved inquiries so far. \"),_c('span',{staticClass:\"link\",on:{\"click\":function($event){return _vm.$root.$emit('createNewInquiry')}}},[_vm._v(\"Create\")]),_vm._v(\" the one from scratch or \"),_c('span',{staticClass:\"link\",on:{\"click\":_vm.importInquiries}},[_vm._v(\"import\")]),_vm._v(\" from a file. \")]):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showedInquiries.length > 0),expression:\"showedInquiries.length > 0\"}],ref:\"my-inquiries-content\",attrs:{\"id\":\"my-inquiries-content\"}},[_c('div',{attrs:{\"id\":\"my-inquiries-toolbar\"}},[_c('div',{attrs:{\"id\":\"toolbar-buttons\"}},[_c('button',{staticClass:\"toolbar\",attrs:{\"id\":\"toolbar-btns-import\"},on:{\"click\":_vm.importInquiries}},[_vm._v(\" Import \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedInquiriesCount > 0),expression:\"selectedInquiriesCount > 0\"}],staticClass:\"toolbar\",attrs:{\"id\":\"toolbar-btns-export\"},on:{\"click\":function($event){return _vm.exportSelectedInquiries()}}},[_vm._v(\" Export \")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedNotPredefinedCount > 0),expression:\"selectedNotPredefinedCount > 0\"}],staticClass:\"toolbar\",attrs:{\"id\":\"toolbar-btns-delete\"},on:{\"click\":function($event){return _vm.showDeleteDialog(_vm.selectedInquiriesIds)}}},[_vm._v(\" Delete \")])]),_c('div',{attrs:{\"id\":\"toolbar-search\"}},[_c('text-field',{attrs:{\"placeholder\":\"Search inquiry by name\",\"width\":\"300px\"},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1)]),_c('div',{staticClass:\"rounded-bg\"},[_c('div',{staticClass:\"header-container\"},[_c('div',[_c('div',{ref:\"name-th\",staticClass:\"fixed-header\"},[_c('check-box',{ref:\"mainCheckBox\",attrs:{\"theme\":\"light\"},on:{\"click\":_vm.toggleSelectAll}}),_c('div',{staticClass:\"name-th\"},[_vm._v(\"Name\")])],1),_c('div',{staticClass:\"fixed-header\"},[_vm._v(\" Created at \")])])]),_c('div',{staticClass:\"table-container\",style:({ 'max-height': (_vm.maxTableHeight + \"px\") })},[_c('table',{ref:\"table\",staticClass:\"sqliteviz-table\"},[_c('tbody',_vm._l((_vm.showedInquiries),function(inquiry,index){return _c('tr',{key:inquiry.id,on:{\"click\":function($event){return _vm.openInquiry(index)}}},[_c('td',{ref:\"name-td\",refInFor:true},[_c('div',{staticClass:\"cell-data\"},[_c('check-box',{ref:\"rowCheckBox\",refInFor:true,attrs:{\"init\":_vm.selectAll || _vm.selectedInquiriesIds.has(inquiry.id)},on:{\"click\":function($event){return _vm.toggleRow($event, inquiry.id)}}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(inquiry.name))]),(inquiry.isPredefined)?_c('div',{staticClass:\"badge\",on:{\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_vm._v(\" Predefined \"),_c('span',{ref:\"tooltip\",refInFor:true,staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Predefined inquiries come from the server. These inquiries can’t be deleted or renamed. \")])]):_vm._e()],1)]),_c('td',[_c('div',{staticClass:\"second-column\"},[_c('div',{staticClass:\"date-container\"},[_vm._v(_vm._s(_vm._f(\"date\")(inquiry.createdAt)))]),_c('div',{staticClass:\"icons-container\"},[(!inquiry.isPredefined)?_c('rename-icon',{on:{\"click\":function($event){return _vm.showRenameDialog(inquiry.id)}}}):_vm._e(),_c('copy-icon',{on:{\"click\":function($event){return _vm.duplicateInquiry(index)}}}),_c('export-icon',{attrs:{\"tooltip\":\"Export inquiry to file\",\"tooltip-position\":\"top-left\"},on:{\"click\":function($event){return _vm.exportToFile([inquiry], ((inquiry.name) + \".json\"))}}}),(!inquiry.isPredefined)?_c('delete-icon',{on:{\"click\":function($event){_vm.showDeleteDialog((new Set()).add(inquiry.id))}}}):_vm._e()],1)])])])}),0)])])])]),_c('modal',{attrs:{\"name\":\"rename\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Rename inquiry \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('rename')}}})],1),_c('div',{staticClass:\"dialog-body\"},[_c('text-field',{attrs:{\"label\":\"New inquiry name\",\"error-msg\":_vm.errorMsg,\"width\":\"100%\"},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.$modal.hide('rename')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":_vm.renameInquiry}},[_vm._v(\"Rename\")])])]),_c('modal',{attrs:{\"name\":\"delete\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Delete \"+_vm._s(_vm.deleteGroup ? 'inquiries' : 'inquiry')+\" \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('delete')}}})],1),_c('div',{staticClass:\"dialog-body\"},[_vm._v(\" \"+_vm._s(_vm.deleteDialogMsg)+\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedInquiriesCount > _vm.selectedNotPredefinedCount),expression:\"selectedInquiriesCount > selectedNotPredefinedCount\"}],attrs:{\"id\":\"note\"}},[_c('img',{attrs:{\"src\":require('@/assets/images/info.svg')}}),_vm._v(\" Note: Predefined inquiries you've selected won't be deleted \")])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":function($event){return _vm.$modal.hide('delete')}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":_vm.deleteInquiry}},[_vm._v(\"Delete\")])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M10.545 6.75L11.25 7.455L4.44 14.25H3.75V13.56L10.545 6.75ZM13.245 2.25C13.0575 2.25 12.8625 2.325 12.72 2.4675L11.3475 3.84L14.16 6.6525L15.5325 5.28C15.825 4.9875 15.825 4.5 15.5325 4.2225L13.7775 2.4675C13.6275 2.3175 13.44 2.25 13.245 2.25ZM10.545 4.6425L2.25 12.9375V15.75H5.0625L13.3575 7.455L10.545 4.6425Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Rename inquiry \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./rename.vue?vue&type=template&id=075cb800&scoped=true&\"\nimport script from \"./rename.vue?vue&type=script&lang=js&\"\nexport * from \"./rename.vue?vue&type=script&lang=js&\"\nimport style0 from \"./rename.vue?vue&type=style&index=0&id=075cb800&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"075cb800\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":_vm.showTooltip,\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M14.25 15.75H6V5.25H14.25V15.75ZM14.25 3.75H6C5.60218 3.75 5.22064 3.90804 4.93934 4.18934C4.65804 4.47064 4.5 4.85218 4.5 5.25V15.75C4.5 16.1478 4.65804 16.5294 4.93934 16.8107C5.22064 17.092 5.60218 17.25 6 17.25H14.25C14.6478 17.25 15.0294 17.092 15.3107 16.8107C15.592 16.5294 15.75 16.1478 15.75 15.75V5.25C15.75 4.85218 15.592 4.47064 15.3107 4.18934C15.0294 3.90804 14.6478 3.75 14.25 3.75ZM12 0.75H3C2.60218 0.75 2.22064 0.908035 1.93934 1.18934C1.65804 1.47064 1.5 1.85218 1.5 2.25V12.75H3V2.25H12V0.75Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Duplicate inquiry \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./copy.vue?vue&type=template&id=3a61cb73&scoped=true&\"\nimport script from \"./copy.vue?vue&type=script&lang=js&\"\nexport * from \"./copy.vue?vue&type=script&lang=js&\"\nimport style0 from \"./copy.vue?vue&type=style&index=0&id=3a61cb73&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a61cb73\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('svg',{staticClass:\"icon\",attrs:{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 18 18\",\"fill\":\"none\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)},\"mouseenter\":function($event){return _vm.showTooltip($event, 'top-left')},\"mouseleave\":_vm.hideTooltip}},[_c('path',{attrs:{\"d\":\"M6.75 2.25V3H3V4.5H3.75V14.25C3.75 14.6478 3.90804 15.0294 4.18934 15.3107C4.47064 15.592 4.85218 15.75 5.25 15.75H12.75C13.1478 15.75 13.5294 15.592 13.8107 15.3107C14.092 15.0294 14.25 14.6478 14.25 14.25V4.5H15V3H11.25V2.25H6.75ZM5.25 4.5H12.75V14.25H5.25V4.5ZM6.75 6V12.75H8.25V6H6.75ZM9.75 6V12.75H11.25V6H9.75Z\",\"fill\":\"#A2B1C6\"}})]),_c('span',{ref:\"tooltip\",staticClass:\"icon-tooltip\",style:(_vm.tooltipStyle)},[_vm._v(\" Delete inquiry \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./delete.vue?vue&type=template&id=581e8819&scoped=true&\"\nimport script from \"./delete.vue?vue&type=script&lang=js&\"\nexport * from \"./delete.vue?vue&type=script&lang=js&\"\nimport style0 from \"./delete.vue?vue&type=style&index=0&id=581e8819&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"581e8819\",\n null\n \n)\n\nexport default component.exports","export default {\n _migrate (installedVersion, inquiries) {\n if (installedVersion === 1) {\n inquiries.forEach(inquire => {\n inquire.viewType = 'chart'\n inquire.viewOptions = inquire.chart\n delete inquire.chart\n })\n return inquiries\n }\n }\n}\n","import { nanoid } from 'nanoid'\nimport fu from '@/lib/utils/fileIo'\nimport migration from './_migrations'\n\nconst migrate = migration._migrate\n\nexport default {\n version: 2,\n getStoredInquiries () {\n let myInquiries = JSON.parse(localStorage.getItem('myInquiries'))\n if (!myInquiries) {\n const oldInquiries = localStorage.getItem('myQueries')\n if (oldInquiries) {\n myInquiries = migrate(1, JSON.parse(oldInquiries))\n this.updateStorage(myInquiries)\n return myInquiries\n }\n return []\n }\n\n return (myInquiries && myInquiries.inquiries) || []\n },\n\n duplicateInquiry (baseInquiry) {\n const newInquiry = JSON.parse(JSON.stringify(baseInquiry))\n newInquiry.name = newInquiry.name + ' Copy'\n newInquiry.id = nanoid()\n newInquiry.createdAt = new Date()\n delete newInquiry.isPredefined\n\n return newInquiry\n },\n\n isTabNeedName (inquiryTab) {\n const isFromScratch = !inquiryTab.initName\n return inquiryTab.isPredefined || isFromScratch\n },\n\n save (inquiryTab, newName) {\n const value = {\n id: inquiryTab.isPredefined ? nanoid() : inquiryTab.id,\n query: inquiryTab.query,\n viewType: inquiryTab.$refs.dataView.mode,\n viewOptions: inquiryTab.$refs.dataView.getOptionsForSave(),\n name: newName || inquiryTab.initName\n }\n\n // Get inquiries from local storage\n const myInquiries = this.getStoredInquiries()\n\n // Set createdAt\n if (newName) {\n value.createdAt = new Date()\n } else {\n var inquiryIndex = myInquiries.findIndex(oldInquiry => oldInquiry.id === inquiryTab.id)\n value.createdAt = myInquiries[inquiryIndex].createdAt\n }\n\n // Insert in inquiries list\n if (newName) {\n myInquiries.push(value)\n } else {\n myInquiries[inquiryIndex] = value\n }\n\n // Save to local storage\n this.updateStorage(myInquiries)\n return value\n },\n\n updateStorage (inquiries) {\n localStorage.setItem('myInquiries', JSON.stringify({ version: this.version, inquiries }))\n },\n\n serialiseInquiries (inquiryList) {\n const preparedData = JSON.parse(JSON.stringify(inquiryList))\n preparedData.forEach(inquiry => delete inquiry.isPredefined)\n return JSON.stringify({ version: this.version, inquiries: preparedData }, null, 4)\n },\n\n deserialiseInquiries (str) {\n const inquiries = JSON.parse(str)\n let inquiryList = []\n if (!inquiries.version) {\n // Turn data into array if they are not\n inquiryList = !Array.isArray(inquiries) ? [inquiries] : inquiries\n inquiryList = migrate(1, inquiryList)\n } else {\n inquiryList = inquiries.inquiries || []\n }\n\n // Generate new ids if they are the same as existing inquiries\n inquiryList.forEach(inquiry => {\n const allInquiriesIds = this.getStoredInquiries().map(inquiry => inquiry.id)\n if (allInquiriesIds.includes(inquiry.id)) {\n inquiry.id = nanoid()\n }\n })\n\n return inquiryList\n },\n\n importInquiries () {\n return fu.importFile()\n .then(str => {\n return this.deserialiseInquiries(str)\n })\n },\n\n async readPredefinedInquiries () {\n const res = await fu.readFile('./inquiries.json')\n const data = await res.json()\n\n if (!data.version) {\n return data.length > 0 ? migrate(1, data) : []\n } else {\n return data.inquiries\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2b039cec&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2b039cec&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b039cec\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"dbloader-container\"}},[_c('db-uploader',{attrs:{\"type\":\"illustrated\"}}),_c('div',{attrs:{\"id\":\"note\"}},[_vm._v(\" Sqliteviz is fully client-side. Your database never leaves your computer. \")]),_c('button',{staticClass:\"secondary\",attrs:{\"id\":\"skip\"},on:{\"click\":function($event){return _vm.$router.push('/workspace')}}},[_vm._v(\" Create empty database \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Welcome.vue?vue&type=template&id=0da5ae79&scoped=true&\"\nimport script from \"./Welcome.vue?vue&type=script&lang=js&\"\nexport * from \"./Welcome.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Welcome.vue?vue&type=style&index=0&id=0da5ae79&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0da5ae79\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('main-menu'),_c('keep-alive',{attrs:{\"include\":\"Workspace\"}},[_c('router-view',{attrs:{\"id\":\"main-view\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',[_c('div',[_c('router-link',{attrs:{\"to\":\"/workspace\"}},[_vm._v(\"Workspace\")]),_c('router-link',{attrs:{\"to\":\"/inquiries\"}},[_vm._v(\"Inquiries\")]),_c('a',{attrs:{\"href\":\"https://github.com/lana-k/sqliteviz/wiki\",\"target\":\"_blank\"}},[_vm._v(\"Help\")])],1),_c('div',{attrs:{\"id\":\"nav-buttons\"}},[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentInquiry && _vm.$route.path === '/workspace'),expression:\"currentInquiry && $route.path === '/workspace'\"}],staticClass:\"primary\",attrs:{\"id\":\"save-btn\",\"disabled\":_vm.isSaved},on:{\"click\":_vm.checkInquiryBeforeSave}},[_vm._v(\" Save \")]),_c('button',{staticClass:\"primary\",attrs:{\"id\":\"create-btn\"},on:{\"click\":_vm.createNewInquiry}},[_vm._v(\" Create \")]),_c('app-diagnostic-info')],1),_c('modal',{attrs:{\"name\":\"save\",\"classes\":\"dialog\",\"height\":\"auto\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" Save inquiry \"),_c('close-icon',{on:{\"click\":_vm.cancelSave}})],1),_c('div',{staticClass:\"dialog-body\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isPredefined),expression:\"isPredefined\"}],attrs:{\"id\":\"save-note\"}},[_c('img',{attrs:{\"src\":require('@/assets/images/info.svg')}}),_vm._v(\" Note: Predefined inquiries can't be edited. That's why your modifications will be saved as a new inquiry. Enter the name for it. \")]),_c('text-field',{attrs:{\"label\":\"Inquiry name\",\"error-msg\":_vm.errorMsg,\"width\":\"100%\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"secondary\",on:{\"click\":_vm.cancelSave}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"primary\",on:{\"click\":_vm.saveInquiry}},[_vm._v(\"Save\")])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app-info-container\"}},[_c('img',{attrs:{\"id\":\"app-info-icon\",\"src\":require('@/assets/images/info.svg')},on:{\"click\":function($event){return _vm.$modal.show('app-info')}}}),_c('modal',{attrs:{\"name\":\"app-info\",\"classes\":\"dialog\",\"height\":\"auto\",\"width\":\"400px\"}},[_c('div',{staticClass:\"dialog-header\"},[_vm._v(\" App info \"),_c('close-icon',{on:{\"click\":function($event){return _vm.$modal.hide('app-info')}}})],1),_c('div',{staticClass:\"dialog-body\"},_vm._l((_vm.info),function(item,index){return _c('div',{key:index,staticClass:\"info-item\"},[_vm._v(\" \"+_vm._s(item.name)+\" \"),_c('div',{staticClass:\"divider\"}),_c('div',{staticClass:\"options\"},_vm._l((item.info),function(opt,index){return _c('div',{key:index},[_vm._v(\" \"+_vm._s(opt)+\" \")])}),0)])}),0)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppDiagnosticInfo.vue?vue&type=template&id=a80fbe8a&scoped=true&\"\nimport script from \"./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./AppDiagnosticInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppDiagnosticInfo.vue?vue&type=style&index=0&id=a80fbe8a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a80fbe8a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainMenu.vue?vue&type=template&id=707ebea6&scoped=true&\"\nimport script from \"./MainMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./MainMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MainMenu.vue?vue&type=style&index=0&id=707ebea6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"707ebea6\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=25aa04f9&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=25aa04f9&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25aa04f9\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport Workspace from '@/views/Main/Workspace'\nimport Inquiries from '@/views/Main/Inquiries'\nimport Welcome from '@/views/Welcome'\nimport Main from '@/views/Main'\nimport store from '@/store'\nimport database from '@/lib/database'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'Welcome',\n component: Welcome\n },\n {\n path: '/',\n name: 'Main',\n component: Main,\n children: [\n {\n path: '/workspace',\n name: 'Workspace',\n component: Workspace\n },\n {\n path: '/inquiries',\n name: 'Inquiries',\n component: Inquiries\n }\n ]\n }\n]\n\nconst router = new VueRouter({\n routes\n})\n\nrouter.beforeEach(async (to, from, next) => {\n if (!store.state.db) {\n const newDb = database.getNewDatabase()\n await newDb.loadDb()\n store.commit('setDb', newDb)\n }\n next()\n})\n\nexport default router\n","import Vue from 'vue'\nimport App from '@/App.vue'\nimport router from '@/router'\nimport store from '@/store'\nimport { VuePlugin } from 'vuera'\nimport VModal from 'vue-js-modal'\n\nimport '@/assets/styles/variables.css'\nimport '@/assets/styles/buttons.css'\nimport '@/assets/styles/tables.css'\nimport '@/assets/styles/dialogs.css'\nimport '@/assets/styles/tooltips.css'\nimport '@/assets/styles/messages.css'\nimport 'vue-multiselect/dist/vue-multiselect.min.css'\nimport '@/assets/styles/multiselect.css'\n\nif (!['localhost', '127.0.0.1'].includes(location.hostname)) {\n import('./registerServiceWorker') // eslint-disable-line no-unused-expressions\n}\n\nVue.use(VuePlugin)\nVue.use(VModal)\n\nVue.config.productionTip = false\n\nnew Vue({\n router,\n store,\n render: h => h(App)\n}).$mount('#app')\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=style&index=0&id=2c7f445c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./changeDb.vue?vue&type=style&index=0&id=2c7f445c&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iI0YzRjZGQSIgc3Ryb2tlPSIjQzhENEUzIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjQ5ODhMNi43NSAxNC4yNDk5TDIuNjI1IDEwLjEyNDlMMy42ODI1IDkuMDY3MzhMNi43NSAxMi4xMjc0TDE0LjY5MjUgNC4xOTIzOEwxNS43NSA1LjI0OTg4WiIgZmlsbD0iIzExOURGRiIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2QiIHg9IjAuNjI1IiB5PSIzLjE5MjM4IiB3aWR0aD0iMTcuMTI1IiBoZWlnaHQ9IjE0LjA1NzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiLz4KPGZlT2Zmc2V0IGR5PSIxIi8+CjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMC4xNjQ3MDYgMCAwIDAgMCAwLjI0NzA1OSAwIDAgMCAwIDAuMzcyNTQ5IDAgMCAwIDAuNDUgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgdmlld0JveD0iMCAwIDQ1MCAxNjciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjQ1MCIgaGVpZ2h0PSIxNjciPgo8cmVjdCB3aWR0aD0iNDUwIiBoZWlnaHQ9IjE2NyIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHBhdGggZD0iTTEyOC4yMDcgLTE2OS4wMDdDNzAuMTk3MiAtMTgwLjg0OSAxOC43NDUgLTE0MC4xMSA0LjMxOTg1IC03OC4zMzIyQy0xMC4xMDU0IC0xNi41NTM5IDE0LjMzMzcgMTUuMzMxOCAzNy4zMjE4IDU1LjE4OTFDNzIuMzc4NCAxMTUuOTcxIDE4MS41NTEgMTcwLjIzNyAyNjUuMDgzIDE2Ni43ODlDMzM3LjUxNyAxNjMuOCAzODkuMDI4IDE0NS41MTQgNDI1LjkzNiA3Ny4xMTA3QzQ4OS4zNzggLTQwLjQ2NzkgNDE3LjQ0NCAtMTE3LjA5MyAzMjUuNTI3IC0xMDIuNzQ1QzIxNC41NzEgLTg1LjQyNCAyMTMuNjI5IC0xNTEuNTcgMTI4LjIwNyAtMTY5LjAwN1oiIGZpbGw9IiNERkU4RjMiLz4KPHBhdGggZD0iTTE0Ny4yMjIgOS40ODcxNkMxNDcuMjIyIDYuNzI4MjQgMTQ5LjQ1OCA0LjQ5MTcgMTUyLjIxNyA0LjQ5MTdIMzQzLjA0NEMzNDUuODAyIDQuNDkxNyAzNDguMDM5IDYuNzI4MjQgMzQ4LjAzOSA5LjQ4NzE1VjEyMi4zODRDMzQ4LjAzOSAxMjUuMTQzIDM0NS44MDIgMTI3LjM4IDM0My4wNDQgMTI3LjM4SDE1Mi4yMTdDMTQ5LjQ1OCAxMjcuMzggMTQ3LjIyMiAxMjUuMTQzIDE0Ny4yMjIgMTIyLjM4NFY5LjQ4NzE2WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTE1Ni4yODQgLTEuNTczNzNDMTU4LjE1OCAtMy40NDczOSAxNjAuNjk5IC00LjUgMTYzLjM0OSAtNC41SDMzMS45MTFDMzM0LjU2MSAtNC41IDMzNy4xMDIgLTMuNDQ3MzkgMzM4Ljk3NiAtMS41NzM3M0wzNDYuMDQxIDUuNDkwOTFIMTQ5LjIyTDE1Ni4yODQgLTEuNTczNzNaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNDcuMjIyIDkuNDg3MTVDMTQ3LjIyMiA2LjcyODI0IDE0OS40NTggNC40OTE3IDE1Mi4yMTcgNC40OTE3SDM0My4wNDRDMzQ1LjgwMiA0LjQ5MTcgMzQ4LjAzOSA2LjcyODI0IDM0OC4wMzkgOS40ODcxNVYyNy40NzA4SDE0Ny4yMjJWOS40ODcxNVoiIGZpbGw9IiNBMkIxQzYiLz4KPHBhdGggZD0iTTI1NC45MzkgNjcuOTU3MUMyNTQuMjUgNjcuNTMzNSAyNTMuNTk3IDY3LjA1MTkgMjUyLjk4OCA2Ni41MTc0VjU3LjY5MzVIMjU2LjgzMlY2OS4wMThDMjU2LjE5NSA2OC42ODY5IDI1NS41NjQgNjguMzMzMiAyNTQuOTM5IDY3Ljk1NzFaTTI2Mi4zNDEgNjMuNTAzMUgyNTguNDk4VjY5LjcyNTNDMjU5Ljc1MiA3MC4zMDkgMjYxLjAzNSA3MC44Mjg4IDI2Mi4zNDEgNzEuMjgyOVY2My41MDMxWk0yNTIuOTg4IDY4LjI4NTVMMjUyLjczNyA2OC4wODM0QzI1Mi4zNTIgNjcuNzYzNSAyNTEuOTkyIDY3LjQzNTEgMjUxLjY0OCA2Ny4xMDY4TDI0Mi41MyA2Ni4wNDU5TDI0NC4yMDUgNjkuMjk1OUwyNTUuOTI3IDcwLjI1NTdDMjU0Ljg5OSA2OS42NzU4IDI1My45MTYgNjkuMDE3MiAyNTIuOTg4IDY4LjI4NTVWNjguMjg1NVpNMjYyLjE0IDczLjAwOUMyNjAuODMyIDcyLjU3OTMgMjU5LjU0OSA3Mi4wNzYyIDI1OC4yOTcgNzEuNTAxOEwyNTcuODI4IDcxLjI2NjFMMjUwLjA5OSA3MC43NTI1TDI1MS40MDYgNzMuNDg4OUwyNjQuODg3IDczLjgwMDRDMjYzLjk2NiA3My41ODE1IDI2My4wMzYgNzMuMzEyMSAyNjIuMTQgNzMuMDA5Wk0yNDYuMDk3IDU3LjY5MzVDMjQ3LjU3MiA2MC4yODc1IDI0OS4zMjcgNjIuNzEwMSAyNTEuMzMgNjQuOTE3NlY1Ni4xMjc1TDI0Mi44ODIgNTEuOTQyOUwyNDIuMTI4IDYxLjc1MThMMjUwLjgyOCA2Ni4yMzk1QzI0OC41NDcgNjMuODQ2OSAyNDYuOTE4IDYwLjkwMzYgMjQ2LjA5NyA1Ny42OTM1VjU3LjY5MzVaIiBmaWxsPSIjMTE5REZGIi8+CjxwYXRoIGQ9Ik0yMTAuNzM4IDg0LjI4NThDMjExLjc5NSA4NC44NzYzIDIxMi44NTggODUuMTcxNSAyMTMuOTI2IDg1LjE3MTVDMjE0LjgxNSA4NS4xNzE1IDIxNS4zMzYgODQuODU1NyAyMTUuNDkgODQuMjI0MkMyMTUuNTQxIDg0LjAwODUgMjE1LjU2NyA4My43NDY3IDIxNS41NjcgODMuNDM4NkMyMTUuNTY3IDgzLjEyNTQgMjE1LjUzMSA4Mi44ODQgMjE1LjQ1OSA4Mi43MTQ2QzIxNS4zODcgODIuNTQgMjE1LjI2NiA4Mi40MTE3IDIxNS4wOTcgODIuMzI5NUMyMTQuOTI3IDgyLjI0MjIgMjE0LjcwMiA4Mi4xNzggMjE0LjQxOSA4Mi4xMzdDMjE0LjE0MiA4Mi4wOTU5IDIxMy43ODggODIuMDM5NCAyMTMuMzU2IDgxLjk2NzVDMjEyLjkyNSA4MS44OTA1IDIxMi41MyA4MS44MDU4IDIxMi4xNyA4MS43MTM0QzIxMS44MTEgODEuNjIwOSAyMTEuNTA1IDgxLjQ4NzQgMjExLjI1NCA4MS4zMTI5QzIxMC43MiA4MC45MzggMjEwLjQ2MyA4MC4zMDY1IDIxMC40ODMgNzkuNDE4MlY3OS4yMjU2QzIxMC40ODMgNzguMjkxMiAyMTAuNzkyIDc3LjYyNjIgMjExLjQwOCA3Ny4yMzA5QzIxMi4wMDMgNzYuODQwNiAyMTIuOTg3IDc2LjcwNzEgMjE0LjM1OCA3Ni44MzA0QzIxNS4yOTIgNzYuOTE3NiAyMTYuMDM3IDc3LjA3OTQgMjE2LjU5MSA3Ny4zMTU2TDIxNi4yMjkgNzguNDc4NkMyMTUuNjEzIDc4LjIxNjcgMjE0Ljg3NCA3OC4wMjY3IDIxNC4wMTEgNzcuOTA4NkMyMTMuNzQ0IDc3Ljg3MjcgMjEzLjQ5MiA3Ny44NTQ3IDIxMy4yNTYgNzcuODU0N0MyMTMuMDI1IDc3Ljg1NDcgMjEyLjgxNSA3Ny44NzI3IDIxMi42MjUgNzcuOTA4NkMyMTIuNDM1IDc3Ljk0NDYgMjEyLjI3NSA3OC4wMTEzIDIxMi4xNDcgNzguMTA4OUMyMTEuOTAxIDc4LjMwOTEgMjExLjc3MiA3OC42ODE0IDIxMS43NjIgNzkuMjI1NkMyMTEuNzQ3IDc5Ljg2NzUgMjExLjkyNiA4MC4yNzU3IDIxMi4zMDEgODAuNDUwM0MyMTIuNjYxIDgwLjYxOTcgMjEzLjA4NyA4MC43Mzc4IDIxMy41OCA4MC44MDQ1QzIxNC4wNzMgODAuODY2MiAyMTQuNDc2IDgwLjkyMjYgMjE0Ljc4OSA4MC45NzRDMjE1LjEwMiA4MS4wMjAyIDIxNS4zODcgODEuMDg0NCAyMTUuNjQ0IDgxLjE2NjVDMjE1LjkgODEuMjQ4NyAyMTYuMTIxIDgxLjM3OTYgMjE2LjMwNiA4MS41NTkzQzIxNi42OTEgODEuOTIzOSAyMTYuODc5IDgyLjU1OCAyMTYuODY4IDgzLjQ2MTdDMjE2Ljg0MyA4NS4wMzggMjE2LjE4NSA4NS45MzY2IDIxNC44OTcgODYuMTU3NEMyMTQuNTA2IDg2LjIyNDEgMjE0LjExNiA4Ni4yNTc1IDIxMy43MjYgODYuMjU3NUMyMTMuMzM2IDg2LjI1NzUgMjEyLjk3NiA4Ni4yMzE4IDIxMi42NDggODYuMTgwNUMyMTIuMzI0IDg2LjEzNDMgMjEyLjAxNCA4Ni4wNjc1IDIxMS43MTYgODUuOTgwMkMyMTEuMTUxIDg1LjgyMSAyMTAuNjQgODUuNjEwNSAyMTAuMTgzIDg1LjM0ODdMMjEwLjczOCA4NC4yODU4WiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjI1Ljc3OSA4NS4yMjU0QzIyNC43OTkgODUuOTEzNSAyMjMuNzYyIDg2LjI1NzUgMjIyLjY2OCA4Ni4yNTc1QzIyMS4zODkgODYuMjU3NSAyMjAuNTM3IDg1LjgwMzEgMjIwLjExMSA4NC44OTQyQzIxOS44NjQgODQuMzgwOCAyMTkuNzIxIDgzLjczMTMgMjE5LjY4IDgyLjk0NTdDMjE5LjY2NCA4Mi41ODYyIDIxOS42NTYgODIuMTkwOSAyMTkuNjU2IDgxLjc1OTZDMjE5LjY1NiA4MS4zMjMxIDIxOS42NTkgODAuODg0MSAyMTkuNjY0IDgwLjQ0MjVDMjE5LjY3NCA4MC4wMDEgMjE5LjcwOCA3OS41OTI4IDIxOS43NjQgNzkuMjE3OUMyMTkuODIxIDc4Ljg0MzEgMjE5LjkwOCA3OC41MDY4IDIyMC4wMjYgNzguMjA5QzIyMC4xNDkgNzcuOTA2MSAyMjAuMzI0IDc3LjY0OTMgMjIwLjU1IDc3LjQzODhDMjIxLjAxNyA3Ny4wMDI0IDIyMS43MzYgNzYuNzg0MSAyMjIuNzA2IDc2Ljc4NDFDMjIzLjY4MiA3Ni43ODQxIDIyNC43MTkgNzcuMDQ2IDIyNS44MTggNzcuNTY5N0wyMjUuOTQxIDc2LjkzODJIMjI3LjA1TDIyNy4wNTggODkuNjA3OEgyMjUuNzc5Vjg1LjIyNTRaTTIyNS43NzkgNzguNjMyNkMyMjQuODU1IDc4LjE3MDUgMjIzLjk2MiA3Ny45Mzk0IDIyMy4wOTkgNzcuOTM5NEMyMjIuNDczIDc3LjkzOTQgMjIyLjA1OSA3Ny45OTA4IDIyMS44NTkgNzguMDkzNUMyMjEuNjU5IDc4LjE5NjIgMjIxLjUwNSA3OC4zMjk3IDIyMS4zOTcgNzguNDk0QzIyMS4yOTQgNzguNjU4MyAyMjEuMjEgNzguODg0MiAyMjEuMTQzIDc5LjE3MTdDMjIxLjAyNSA3OS43MTA5IDIyMC45NjYgODAuNTk5MiAyMjAuOTY2IDgxLjgzNjZWODIuMDA2QzIyMC45NjYgODMuMTQ1OSAyMjEuMTA3IDgzLjk0NDMgMjIxLjM4OSA4NC40MDEzQzIyMS42NzIgODQuODY4NiAyMjIuMTg4IDg1LjEwMjIgMjIyLjkzNyA4NS4xMDIySDIyMy4wNTNDMjIzLjc2MiA4NS4xMDIyIDIyNC40ODYgODQuOTA3MSAyMjUuMjI1IDg0LjUxNjlDMjI1LjQzNSA4NC40MDkgMjI1LjYyIDg0LjI5ODYgMjI1Ljc3OSA4NC4xODU3Vjc4LjYzMjZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzAuNzAxIDczLjAxMDJMMjMxLjk3MiA3Mi45MDI0Vjg2LjEwMzRIMjMwLjcxNkwyMzAuNzAxIDczLjAxMDJaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yMzYuNjA4IDc0Ljc0MzFDMjM2LjI2NCA3NC43NDMxIDIzNi4wNDQgNzQuNjk0NCAyMzUuOTQ2IDc0LjU5NjhDMjM1Ljc5MiA3NC40Mzc2IDIzNS43MTUgNzQuMjE5NCAyMzUuNzE1IDczLjk0MjFDMjM1LjcxNSA3My42NTk3IDIzNS43MyA3My40NTk1IDIzNS43NjEgNzMuMzQxNEMyMzUuNzk3IDczLjIxODIgMjM1Ljg0OCA3My4xMjMyIDIzNS45MTUgNzMuMDU2NEMyMzYuMDM4IDcyLjkzMzIgMjM2LjIyNiA3Mi44NzE2IDIzNi40NzcgNzIuODcxNkMyMzYuNzM0IDcyLjg3MTYgMjM2LjkxNiA3Mi44ODQ0IDIzNy4wMjQgNzIuOTEwMUMyMzcuMTM3IDcyLjkzNTggMjM3LjIzIDcyLjk4NDUgMjM3LjMwMSA3My4wNTY0QzIzNy40MjUgNzMuMTc5NyAyMzcuNDg2IDczLjM4MjUgMjM3LjQ4NiA3My42NjQ5QzIzNy40ODYgNzMuOTQyMSAyMzcuNDcxIDc0LjE0MjQgMjM3LjQ0IDc0LjI2NTZDMjM3LjQxNCA3NC4zODM3IDIzNy4zNjggNzQuNDc4NyAyMzcuMzAxIDc0LjU1MDZDMjM3LjE3MyA3NC42NzkgMjM2Ljk0MiA3NC43NDMxIDIzNi42MDggNzQuNzQzMVpNMjM1Ljk4NCA3Ni45MzgySDIzNy4yNDhWODYuMTAzNEgyMzZMMjM1Ljk4NCA3Ni45MzgyWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjQ1LjQ3MyA4NS42NjQ0QzI0NC42MzYgODYuMDU5OCAyNDMuODY0IDg2LjI1NzUgMjQzLjE1NSA4Ni4yNTc1QzI0MS44NzEgODYuMjU3NSAyNDEuMTQyIDg1LjcwODEgMjQwLjk2OCA4NC42MDkzQzI0MC45MjcgODQuMzQ3NCAyNDAuOTA2IDgzLjk2NzUgMjQwLjkwNiA4My40Njk0Vjc4LjAwODdIMjM5Ljc5N1Y3Ny4wNjE0TDI0MC45MDYgNzYuOTM4MkwyNDEuMTA2IDc0Ljg0MzNIMjQyLjE3N1Y3Ni45MzgySDI0NC44NDlWNzguMDA4N0gyNDIuMTc3VjgzLjQ0NjNDMjQyLjE3NyA4NC4wNzc4IDI0Mi4yMjMgODQuNDgwOSAyNDIuMzE1IDg0LjY1NTVDMjQyLjQ4NSA4NC45NzM4IDI0Mi44MjQgODUuMTMzIDI0My4zMzIgODUuMTMzQzI0My44NCA4NS4xMzMgMjQ0LjQwOCA4NC45NzY0IDI0NS4wMzQgODQuNjYzMkwyNDUuNDczIDg1LjY2NDRaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTQuNzE1IDg1LjYxODJDMjUzLjY1MyA4Ni4wNDQ0IDI1Mi40NzkgODYuMjU3NSAyNTEuMTk2IDg2LjI1NzVDMjUwLjQ1MSA4Ni4yNTc1IDI0OS44MiA4Ni4xODA1IDI0OS4zMDEgODYuMDI2NEMyNDguNDc0IDg1Ljc5MDIgMjQ3LjkyNSA4NS4zMDI0IDI0Ny42NTMgODQuNTYzMUMyNDcuNDAxIDgzLjg2OTkgMjQ3LjI3NSA4Mi44NDMgMjQ3LjI3NSA4MS40ODIzVjgxLjA4OTVDMjQ3LjI3NSA3OS40NjE4IDI0Ny42MTQgNzguMzE5NCAyNDguMjkyIDc3LjY2MjJDMjQ4LjkwMyA3Ny4wNzY4IDI0OS45MjIgNzYuNzg0MSAyNTEuMzUgNzYuNzg0MUMyNTIuNzQxIDc2Ljc4NDEgMjUzLjY5MSA3Ny4xMjgyIDI1NC4xOTkgNzcuODE2MkMyNTQuNDQ2IDc4LjE0OTkgMjU0LjYwOCA3OC41NTU2IDI1NC42ODUgNzkuMDMzMUMyNTQuNzY3IDc5LjUwNTUgMjU0LjgwOCA3OS45NTczIDI1NC44MDggODAuMzg4NkMyNTQuODA4IDgxLjA2MTMgMjU0Ljc5MyA4MS41ODI0IDI1NC43NjIgODEuOTUyMUMyNTQuMDM4IDgxLjk4MjkgMjUzLjM4OCA4MS45OTgzIDI1Mi44MTMgODEuOTk4M0MyNTIuODEzIDgxLjk5ODMgMjUyLjQgODEuOTk4MyAyNTEuNTczIDgxLjk5ODNDMjUwLjI3OSA4MS45OTgzIDI0OS4yODMgODEuOTQxOSAyNDguNTg1IDgxLjgyODlDMjQ4LjU4NSA4My4wMDk4IDI0OC43MzQgODMuODM0IDI0OS4wMzEgODQuMzAxMkMyNDkuMzk2IDg0Ljg3MTEgMjUwLjEyMyA4NS4xNTYxIDI1MS4yMTEgODUuMTU2MUMyNTIuMyA4NS4xNTYxIDI1My4zNDIgODQuOTQzIDI1NC4zMzggODQuNTE2OUwyNTQuNzE1IDg1LjYxODJaTTI1My41MDYgODAuOTI3OFY4MC4xODg0QzI1My41MDYgNzkuMzgyMyAyNTMuMzUgNzguODA3MiAyNTMuMDM2IDc4LjQ2MzJDMjUyLjY4NyA3OC4wNzgxIDI1Mi4wODQgNzcuODg1NSAyNTEuMjI3IDc3Ljg4NTVDMjUwLjIgNzcuODg1NSAyNDkuNDk5IDc4LjEwODkgMjQ5LjEyNCA3OC41NTU2QzI0OC43NjQgNzguOTgxOCAyNDguNTg1IDc5Ljc3MjUgMjQ4LjU4NSA4MC45Mjc4SDI1My41MDZaIiBmaWxsPSIjMkEzRjVGIi8+CjxwYXRoIGQ9Ik0yNTYuOTU3IDc2LjkzODJIMjU4LjMzNUwyNjAuNzM4IDg0LjQxNjdMMjYwLjk2OSA4NS4xNzkyTDI2MS4xODUgODQuNDE2N0wyNjMuNDggNzYuOTM4MkgyNjQuODc0TDI2MS43NzggODYuMTAzNEgyNjAuMDk5TDI1Ni45NTcgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI2OC4xNTUgNzQuNzQzMUMyNjcuODExIDc0Ljc0MzEgMjY3LjU5IDc0LjY5NDQgMjY3LjQ5MyA3NC41OTY4QzI2Ny4zMzkgNzQuNDM3NiAyNjcuMjYyIDc0LjIxOTQgMjY3LjI2MiA3My45NDIxQzI2Ny4yNjIgNzMuNjU5NyAyNjcuMjc3IDczLjQ1OTUgMjY3LjMwOCA3My4zNDE0QzI2Ny4zNDQgNzMuMjE4MiAyNjcuMzk1IDczLjEyMzIgMjY3LjQ2MiA3My4wNTY0QzI2Ny41ODUgNzIuOTMzMiAyNjcuNzczIDcyLjg3MTYgMjY4LjAyNCA3Mi44NzE2QzI2OC4yODEgNzIuODcxNiAyNjguNDYzIDcyLjg4NDQgMjY4LjU3MSA3Mi45MTAxQzI2OC42ODQgNzIuOTM1OCAyNjguNzc3IDcyLjk4NDUgMjY4Ljg0OCA3My4wNTY0QzI2OC45NzIgNzMuMTc5NyAyNjkuMDMzIDczLjM4MjUgMjY5LjAzMyA3My42NjQ5QzI2OS4wMzMgNzMuOTQyMSAyNjkuMDE4IDc0LjE0MjQgMjY4Ljk4NyA3NC4yNjU2QzI2OC45NjEgNzQuMzgzNyAyNjguOTE1IDc0LjQ3ODcgMjY4Ljg0OCA3NC41NTA2QzI2OC43MiA3NC42NzkgMjY4LjQ4OSA3NC43NDMxIDI2OC4xNTUgNzQuNzQzMVpNMjY3LjUzMSA3Ni45MzgySDI2OC43OTVWODYuMTAzNEgyNjcuNTQ3TDI2Ny41MzEgNzYuOTM4MloiIGZpbGw9IiMyQTNGNUYiLz4KPHBhdGggZD0iTTI3MS42MDYgODUuMjMzMUwyNzYuMjk2IDc4LjAwMUgyNzEuNTA2Vjc2LjkzODJIMjc3Ljg1MlY3Ny44MDg1TDI3My4xNzcgODUuMDMyOUgyNzguMDQ1Vjg2LjEwMzRIMjcxLjYwNlY4NS4yMzMxWiIgZmlsbD0iIzJBM0Y1RiIvPgo8cGF0aCBkPSJNMjA0LjE3IDE2LjQ4MUMyMDQuMTcgMTQuMjczOSAyMDUuOTU5IDEyLjQ4NDYgMjA4LjE2NiAxMi40ODQ2SDMzNi4wNUMzMzguMjU3IDEyLjQ4NDYgMzQwLjA0NiAxNC4yNzM5IDM0MC4wNDYgMTYuNDgxVjE2LjQ4MUMzNDAuMDQ2IDE4LjY4ODEgMzM4LjI1NyAyMC40NzczIDMzNi4wNSAyMC40NzczSDIwOC4xNjZDMjA1Ljk1OSAyMC40NzczIDIwNC4xNyAxOC42ODgxIDIwNC4xNyAxNi40ODFWMTYuNDgxWiIgZmlsbD0iI0YzRjZGQSIvPgo8cGF0aCBkPSJNMTY1LjIwNSAxNi40ODA4QzE2NS4yMDUgMTkuMjM5NyAxNjIuOTY5IDIxLjQ3NjMgMTYwLjIxIDIxLjQ3NjNDMTU3LjQ1MSAyMS40NzYzIDE1NS4yMTQgMTkuMjM5NyAxNTUuMjE0IDE2LjQ4MDhDMTU1LjIxNCAxMy43MjE5IDE1Ny40NTEgMTEuNDg1NCAxNjAuMjEgMTEuNDg1NEMxNjIuOTY5IDExLjQ4NTQgMTY1LjIwNSAxMy43MjE5IDE2NS4yMDUgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE4MS4xOTEgMTYuNDgwOEMxODEuMTkxIDE5LjIzOTcgMTc4Ljk1NCAyMS40NzYzIDE3Ni4xOTUgMjEuNDc2M0MxNzMuNDM2IDIxLjQ3NjMgMTcxLjIgMTkuMjM5NyAxNzEuMiAxNi40ODA4QzE3MS4yIDEzLjcyMTkgMTczLjQzNiAxMS40ODU0IDE3Ni4xOTUgMTEuNDg1NEMxNzguOTU0IDExLjQ4NTQgMTgxLjE5MSAxMy43MjE5IDE4MS4xOTEgMTYuNDgwOFoiIGZpbGw9IiNDOEQ0RTMiLz4KPHBhdGggZD0iTTE5Ny4xNzYgMTYuNDgwOEMxOTcuMTc2IDE5LjIzOTcgMTk0Ljk0IDIxLjQ3NjMgMTkyLjE4MSAyMS40NzYzQzE4OS40MjIgMjEuNDc2MyAxODcuMTg2IDE5LjIzOTcgMTg3LjE4NiAxNi40ODA4QzE4Ny4xODYgMTMuNzIxOSAxODkuNDIyIDExLjQ4NTQgMTkyLjE4MSAxMS40ODU0QzE5NC45NCAxMS40ODU0IDE5Ny4xNzYgMTMuNzIxOSAxOTcuMTc2IDE2LjQ4MDhaIiBmaWxsPSIjQzhENEUzIi8+CjxwYXRoIGQ9Ik0xNzQuMDk5IC0wLjc0MTUzNUMxNzQuMjgzIC0wLjkwOTg0MyAxNzQuNTI0IC0xLjAwMzE3IDE3NC43NzMgLTEuMDAzMTdIMzE4LjQ5QzMxOC43MzkgLTEuMDAzMTcgMzE4Ljk4IC0wLjkwOTg0MyAzMTkuMTY0IC0wLjc0MTUzM1YtMC43NDE1MzNDMzE5LjgzNyAtMC4xMjYzMTYgMzE5LjQwMiAwLjk5NTAwOCAzMTguNDkgMC45OTUwMDhIMTc0Ljc3M0MxNzMuODYxIDAuOTk1MDA4IDE3My40MjYgLTAuMTI2MzE5IDE3NC4wOTkgLTAuNzQxNTM1Vi0wLjc0MTUzNVoiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTM0Ljg3NSAxMTkuNzM1TDQyLjU0NjUgMTI2LjEzNkwzMC4zODU1IDE0MC43MTJMMjIuNzE0IDEzNC4zMTFMMzQuODc1IDExOS43MzVaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik0yNy4wOTcyIDEyOS4yNTdMMzQuNzY4NyAxMzUuNjU3QzM0Ljc2ODcgMTM1LjY1NyAzOC44MDggMTQxLjExMiAzOS4zMDM0IDE0Ni41OTdDMzkuNDk0MSAxNDguNzA4IDM3LjA2MzMgMTQ5LjI4MiAzNy4wNjMzIDE0OS4yODJMMjEuMzM2NyAxMzYuMTYxTDI3LjA5NzIgMTI5LjI1N1oiIGZpbGw9IiM1MDY3ODQiLz4KPHBhdGggZD0iTTUyLjg5MjEgMzIuODE0NUw5Mi4yNzE4IDY0LjI4NThDMTA0Ljg3NCA5Ni4yOTIzIDM4LjMyMDkgMTMzLjcyMyAzOC4zMjA5IDEzMy43MjNMMjcuODU1NiAxMjYuMDU4QzI3Ljg1NTYgMTI2LjA1OCAzOS42ODg4IDEwOC41MjYgNTAuODA5NSA4MS43Njk5QzU2LjgzMDEgNjcuMjg0MyA1NC41NzMxIDQ4LjE0ODggNTIuODkyMSAzMi44MTQ1WiIgZmlsbD0iIzBENzZCRiIvPgo8cGF0aCBkPSJNMTAzLjI2MiAxMzAuNzI2SDExMy4yNTNWMTQ5LjcwOEgxMDMuMjYyVjEzMC43MjZaIiBmaWxsPSIjRjNDNkJGIi8+CjxwYXRoIGQ9Ik01NC4zMDY3IDQyLjMwNTlDNTAuODEwMSAzNS44MTE4IDQ4LjgxMTcgMzEuMzE1OSA0OS43NzM5IDE3LjgyODFIMTE1LjAxMUMxMjEuMjQ2IDI4LjMxODYgMTI1LjI0MiA1NC4yOTQ5IDEyNS4yNDIgNzUuNzc1NEMxMjUuMjQyIDk3LjI1NTkgMTIyLjI0NSAxMTYuMjM5IDExNS4wMTEgMTQxLjIxNkgxMDAuNzY0QzEwMC43NjQgMTQxLjIxNiA5NC43NzAxIDEwMS4yNTIgOTIuMjcyMyA4Mi43NjlDOTAuOTY3OSA3My4xMTYgNTcuMDE5NyA0Ny4zNDQ1IDU0LjMwNjcgNDIuMzA1OVoiIGZpbGw9IiMxMTlERkYiLz4KPHBhdGggZD0iTTEwMy4yNjIgMTQ0LjQyNkgxMTMuMjUzQzExMy4yNTMgMTQ0LjQyNiAxMTkuODQ5IDE0Ni4wMjcgMTIzLjc0NCAxNDkuOTIxQzEyNS4yNDIgMTUxLjQyIDEyMy43NDQgMTUzLjQxOCAxMjMuNzQ0IDE1My40MThIMTAzLjI2MlYxNDQuNDI2WiIgZmlsbD0iIzUwNjc4NCIvPgo8L2c+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTkuOTk5ODQgMTYuNjY2N0M2LjMyNDg0IDE2LjY2NjcgMy4zMzMxNyAxMy42NzUgMy4zMzMxNyAxMEMzLjMzMzE3IDYuMzI1MDIgNi4zMjQ4NCAzLjMzMzM1IDkuOTk5ODQgMy4zMzMzNUMxMy42NzQ4IDMuMzMzMzUgMTYuNjY2NSA2LjMyNTAyIDE2LjY2NjUgMTBDMTYuNjY2NSAxMy42NzUgMTMuNjc0OCAxNi42NjY3IDkuOTk5ODQgMTYuNjY2N1pNOS45OTk4NCAxLjY2NjY5QzguOTA1NDkgMS42NjY2OSA3LjgyMTg2IDEuODgyMjQgNi44MTA4MSAyLjMwMTAyQzUuNzk5NzYgMi43MTk4MSA0Ljg4MTEgMy4zMzM2NCA0LjEwNzI4IDQuMTA3NDZDMi41NDQ0OCA1LjY3MDI3IDEuNjY2NSA3Ljc4OTg4IDEuNjY2NSAxMEMxLjY2NjUgMTIuMjEwMiAyLjU0NDQ4IDE0LjMyOTggNC4xMDcyOCAxNS44OTI2QzQuODgxMSAxNi42NjY0IDUuNzk5NzYgMTcuMjgwMiA2LjgxMDgxIDE3LjY5OUM3LjgyMTg2IDE4LjExNzggOC45MDU0OSAxOC4zMzM0IDkuOTk5ODQgMTguMzMzNEMxMi4yMSAxOC4zMzM0IDE0LjMyOTYgMTcuNDU1NCAxNS44OTI0IDE1Ljg5MjZDMTcuNDU1MiAxNC4zMjk4IDE4LjMzMzIgMTIuMjEwMiAxOC4zMzMyIDEwQzE4LjMzMzIgOC45MDU2NyAxOC4xMTc2IDcuODIyMDQgMTcuNjk4OCA2LjgxMDk5QzE3LjI4IDUuNzk5OTUgMTYuNjY2MiA0Ljg4MTI5IDE1Ljg5MjQgNC4xMDc0NkMxNS4xMTg2IDMuMzMzNjQgMTQuMTk5OSAyLjcxOTgxIDEzLjE4ODkgMi4zMDEwMkMxMi4xNzc4IDEuODgyMjQgMTEuMDk0MiAxLjY2NjY5IDkuOTk5ODQgMS42NjY2OVoiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iNi4zNjc2OCIgeT0iNy41NDg1NSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDYuMzY3NjggNy41NDg1NSkiIGZpbGw9IiNFRjU1M0IiLz4KPHJlY3QgeD0iMTIuNDUxNyIgeT0iNi4zNjc3MSIgd2lkdGg9IjEuNjciIGhlaWdodD0iOC42MDM2MyIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTIuNDUxNyA2LjM2NzcxKSIgZmlsbD0iI0VGNTUzQiIvPgo8L3N2Zz4K\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=style&index=0&id=581e8819&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./delete.vue?vue&type=style&index=0&id=581e8819&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=31be4117&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=31be4117&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=style&index=0&id=30581f31&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./hint.vue?vue&type=style&index=0&id=30581f31&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6d818ae0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=6d818ae0&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/file.f5540c43.png\";","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSIxNyIgaGVpZ2h0PSIxNyIgcng9IjIuNSIgZmlsbD0iIzExOURGRiIgc3Ryb2tlPSIjMEQ3NkJGIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2QpIj4KPHBhdGggZD0iTTE1Ljc1IDUuMjVMNi43NSAxNC4yNUwyLjYyNSAxMC4xMjVMMy42ODI1IDkuMDY3NUw2Ljc1IDEyLjEyNzVMMTQuNjkyNSA0LjE5MjVMMTUuNzUgNS4yNVoiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxmaWx0ZXIgaWQ9ImZpbHRlcjBfZCIgeD0iMC42MjUiIHk9IjMuMTkyNSIgd2lkdGg9IjE3LjEyNSIgaGVpZ2h0PSIxNC4wNTc1IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+CjxmZU9mZnNldCBkeT0iMSIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIi8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAuMTY0NzA2IDAgMCAwIDAgMC4yNDcwNTkgMCAwIDAgMCAwLjM3MjU0OSAwIDAgMCAwLjcgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvdyIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPC9kZWZzPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTE0IiBoZWlnaHQ9IjkwIiB2aWV3Qm94PSIwIDAgMTE0IDkwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNOTYuMzgyOCAxLjkzODk1QzkxLjQyNDQgMC4wOTI4MTQgODYuNjAyMiA1LjYyNTA1IDg1Ljg1OCAxMC42ODE2TDk3LjI4NTEgMTUuNTQ5QzEwMC4xOTQgMTAuNTg1NiAxMDEuMzQxIDMuNzg1MDggOTYuMzgyOCAxLjkzODk1WiIgZmlsbD0iI0YzQzZCRiIvPgo8cGF0aCBkPSJNODQuOTc3NSA5LjEyNDEzQzc1LjA2NTMgMzUuMjAzNSAzMC43MTc5IDQ2LjczNTkgMjEuNDEwNiAzNy43MjY1TDE0LjUzNTkgNzkuNDg1N0M2Ny43NjA3IDg2LjQ5MTIgOTEuOTI2NCA1NS40MTExIDk5LjA5NzMgMTQuNzEzOEw4NC45Nzc1IDkuMTI0MTNaIiBmaWxsPSIjQTJCMUM2Ii8+Cjwvc3ZnPgo=\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=0dd86013&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=0dd86013&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=style&index=0&id=075cb800&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rename.vue?vue&type=style&index=0&id=075cb800&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=513fdbc5&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=513fdbc5&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=68ef9d6c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=68ef9d6c&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=style&index=0&id=3a61cb73&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./copy.vue?vue&type=style&index=0&id=3a61cb73&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=style&index=0&id=73e5054b&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RunResult.vue?vue&type=style&index=0&id=73e5054b&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=25aa04f9&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=25aa04f9&scoped=true&lang=css&\"","import mod from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ca17e020&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ca17e020&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=style&index=0&id=62096452&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingIndicator.vue?vue&type=style&index=0&id=62096452&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=style&index=0&id=59fd41a8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=style&index=0&id=59fd41a8&scoped=true&lang=css&\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExIDlIMTNWN0gxMVY5Wk0xMiAyMEM3LjU5IDIwIDQgMTYuNDEgNCAxMkM0IDcuNTkgNy41OSA0IDEyIDRDMTYuNDEgNCAyMCA3LjU5IDIwIDEyQzIwIDE2LjQxIDE2LjQxIDIwIDEyIDIwWk0xMiAyQzEwLjY4NjggMiA5LjM4NjQyIDIuMjU4NjYgOC4xNzMxNyAyLjc2MTJDNi45NTk5MSAzLjI2Mzc1IDUuODU3NTIgNC4wMDAzNSA0LjkyODkzIDQuOTI4OTNDMy4wNTM1NyA2LjgwNDMgMiA5LjM0Nzg0IDIgMTJDMiAxNC42NTIyIDMuMDUzNTcgMTcuMTk1NyA0LjkyODkzIDE5LjA3MTFDNS44NTc1MiAxOS45OTk3IDYuOTU5OTEgMjAuNzM2MiA4LjE3MzE3IDIxLjIzODhDOS4zODY0MiAyMS43NDEzIDEwLjY4NjggMjIgMTIgMjJDMTQuNjUyMiAyMiAxNy4xOTU3IDIwLjk0NjQgMTkuMDcxMSAxOS4wNzExQzIwLjk0NjQgMTcuMTk1NyAyMiAxNC42NTIyIDIyIDEyQzIyIDEwLjY4NjggMjEuNzQxMyA5LjM4NjQyIDIxLjIzODggOC4xNzMxN0MyMC43MzYyIDYuOTU5OTEgMTkuOTk5NyA1Ljg1NzUyIDE5LjA3MTEgNC45Mjg5M0MxOC4xNDI1IDQuMDAwMzUgMTcuMDQwMSAzLjI2Mzc1IDE1LjgyNjggMi43NjEyQzE0LjYxMzYgMi4yNTg2NiAxMy4zMTMyIDIgMTIgMlYyWk0xMSAxN0gxM1YxMUgxMVYxN1oiIGZpbGw9IiNBMkIxQzYiLz4KPC9zdmc+Cg==\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=style&index=0&id=0c2b486e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconButton.vue?vue&type=style&index=0&id=0c2b486e&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=style&index=0&id=060be7fb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TableDescription.vue?vue&type=style&index=0&id=060be7fb&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=style&index=0&id=0da5ae79&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Welcome.vue?vue&type=style&index=0&id=0da5ae79&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=style&index=0&id=86f3a16c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./close.vue?vue&type=style&index=0&id=86f3a16c&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=style&index=0&id=3b6366bb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideToolBar.vue?vue&type=style&index=0&id=3b6366bb&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=style&index=0&id=69060e4e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clear.vue?vue&type=style&index=0&id=69060e4e&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2b039cec&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2b039cec&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=style&index=0&id=658886c7&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Pager.vue?vue&type=style&index=0&id=658886c7&scoped=true&lang=css&\""],"sourceRoot":""} \ No newline at end of file diff --git a/js/sql-wasm.wasm b/js/sql-wasm.wasm index 7555b3913c841d009badb2a27d12554cf967e461..3ceb6780a217b8f2ef15db5d524123f3ee438810 100644 GIT binary patch delta 393992 zcmeEv2Y405`uD!Gd+MHq69|w(*>ebx0HG*F5rjpg2`cukK~V`PMeOASL_npw;Mfg{ zVnHt$HJ}JVu^^x**bAVba7D$Aitzp3+0zmd&As=3|DWIUeEN{HJ3Hl_nRnhkGcVpT z{E4l{&-r2QuV<59F`ODwER#xTjON4NOEd$2FVzJ8j#YohslVg3Vx&w^&zET)JWtd# z{JmT~U!k6_)VQ9jR1H_Fzt^b0wkp+6{XI(M?5|24tx^VP{*EX%P`wON1qQ3Z=@c?NLKm7Qga=h?nn%}#t{Ixp^;W?G4;h+Q zc!S=2O>1TdJ!lx@@#w;6rsom0@(4qSPQt4-)(l-VCfzUqS!*Li85thZDTB!H1cRC( z48!ngArZ{(><#K3pD*TZf znl~pToNJ60R$GtPi{|}a)GHbVF+6}+_ZA5+c{9A;#?JFbUJIRvwE>qqOk|+-3{Nxi z`V9=e?)7NS4@R4q>ZeZ=0W^Vpe!#0683O(F`ihLK!?Ut99pGSqF;Tis9v=#Og5=kO zp8O!D11h1 z2FD8=qFip-CqkOx@p(xE1t1iLU+d))Uc(b2Z$oc;Ur@`+D$MHb1%CLoBQchSrul~m zGJJi!di!8spa*6WL&XhxJ=y3zCd{KX)V%mH8fu1Lhz1_7@caE}AtHP>um-h>42+R5 zoIAa1n*uug@9_WwGz_uudy(5m&NaS4e#|nG4b6Go*QSAGVZf9B1s(F|Ik|olDCo5D z9|qj?Yt9INFZ9_d_qUB19vY`@MfZrxL|K{e1}H}M#&6aL)Ayw4K|_I~!?YU6I5 zQjiL?yMm&mL@N~|O0;Xl`6b$?hPWVBqU{NYktNz0;=&T`c@h_uXx{|H#Uifj^vF{__hrSPd@B7~K zz3bZ$c-i}sw>)rv;J(1UfqMe;1Gfk63fvjEBj5yX3(O6a1rGSX^6dBj;hz)u)xX#O zi~lG8kNzM0-}^rZ?DoIndD__H|Hl8de`-wZ^ndC9!ar4P_kZsH%)iaQ)&H&k4$l_< zr~Xg;*S_l?|BinhedYhBf0uuU|6~70{tx{h_}}-x=YPw;z+dja&wsD~PX9Z;&Av^( zw|zI7lg&xy8sAI47kyg;oAnRP56t(>&E_WaZSyU2qq*2zWvk7J?7o!UFH;XOJIrlxcQj*sQHMw$lPN*Y(8Y(XWnbxY2IPpYTjh-4Q>z43rq`4 z4crvCF)%qWDX`D~yZ<-;&;Ip+rvgg@9|YeI?xy$f@7>@#!Og)w)z?9%GfqjAB z1CxT2gUbVd1f~U-1*VFrqB8Jo;F-YFfr`MAz&`>{2A)9b;=tp9#{!QAiXI6p3M>pf z7&`^}cn! z*L`b!ulXF$tG-u!FZ)*ecGDcsZ+ew)Rs3nC-}jOEzWJ{Cj=Wv&8y->tu3 zt}vfBpEI8}E6hLir_811Kg?TwxB8wmpD?9)yE)&SXFBF>=3H}*Ioq6N&NOG3x0pAZ z)6Hq-Uhh=%7jK#Qwf8`9e{kr&;P1iTg1-ib{u2Dk`<3@+;KgqGDfnaXhu|*n_rdRi zdxGBvzX^UF+}$hqRq&s|UBR8fFN0qMcLYBVeum83f?I=If}aLI34R>>DEMJ;W$=aI zis19X=Yq?F%Yv1`*}+-CnZX&(?U_CD?+)G>ydx-sw+H73=LMbMZNa(0Il${P4?e=d1=t#MX$Y&+-n-&@3+}t`Nr=eXT&h zNpwaAg>;lJ6jj3V9)k=4%X28*E>6qfYLPtfRY50BJv>(}F*#3Ay`+c_%>ibwd*=5Ecyliz}v>_Q} za-M!#4_!0ukC%_+n(fW1fh>!A)2JX(=RM99*_~RHt*N`ptuLj+ zx%;JB>&%>j8WMFP&sB}B0cFW~(ISRDLydVk6+NX~MZ z^J(Mev2r!_n699`F@XgUvS;j2GaML(FL<_tsM8dE?Ik;mB3+AS^rI7jRvWh)-7uq> zR)$53qZ!wq&d7?~3M-bmSsNUWCDOpkxZcV<8B5GCRSu2ov&fFQxXnP((HVkkMC$qk zB>WDXDUEV|d#`%2w83Zw&z7ph{&Bm(|KbSAX_jW+qu|H-<0q97s}6mv)*MpKPxL>% z)rjg@ylqPx&26W*!U+ug8W&6mBU(fYx54;hgvwRRQFP^bV}KFEyK`34{84xtn4f`S zBBG%vzhYc;J5-8gsHT%!aSKPVH1WilI1!)SuBs-`mM&tchBW(;74e1)54X0pX?{l} zxvdd@<(7nM>FE_bPBmL{s&bn4z$c3_2f(2S9?UwLD|_Lf=8%+VjvtfF&3K{C=I|-e z9E$u&bMGJA9Fh{v@nf>N?R7SHK0YOyLlJJyh7J&J10;@57|;)WFBAr5fBRNoAu`#U z@u1lu{&!4162fhOrs>m+ncSL~=C^X29*VaFX#5D!P?V>5YkVY3%pY-^5y6Q(VflG2 z1|Ty7Wf3Saqm!_A?&K1{^f|kXB>j%l_o$H{RjYjOPPbe3k2?)ed?%KdUtG4!u(&dN zAAhuimw-;&K|Fn^4b68K(mYhDuwaJsYF>Yu;e_%h_n8te$0K7fJy*-vRCHWrcBy^@ zs|HU%6XJEize54#bZ0|;UV}Be80d%r78bLsb~zun$ak`u9o-V?3WYHmRVoYChnQIE z5(?zIyje>#QI^Zy->iG^7vi@Hmx5l5*fTePfY6i%a5qO4VLM)kRoyZj<(nzHlQQ7xYycn5Bv3cSYX0t2;FEaz;b~|QktMwio!0VO>7rH&e2MniRc~5W=CGR=oTW5~|^mxaJ3La7QaS0;~ zm+p>Up}d`B4kE>p>c<=en1l05>$VAi2mlcewF?l>uLbg-0LXqQJBBfE0a8<}J|+MH zEdoGTcu9cLCO)Dwr%G@u{ja$d#+g_DKHv*4Ku|aCam7Pzh7uHqsCIOQE~`Ag#!g1z z%{0c5h3&egp(GY~5+(7RL`lnFr0gzo7%vz+=cmF2bg3hYEV|KIR&++ZZjI~CZfshH z`5Y0&S^?3;=%`+x*)yDr+aH}V3DSpRh!J7Wah_}6C-(xDm@ziH@guSzxPq9KiP8ei z>D(?iDZyCUqA195LUf2=t;EHcV?duE#3+)UCd6p25X1C1F39LS6pN!;t%8iff(*#m z^_I?p3?y$*C|ipGXB1Hfi>*pD&TB>0io}D38O2)S!VD#Z8BPSTttQNxz!Y2qbYwOM!$TPQx8h2kvN$%%eKw z_e^#riosmOGETC?`T(XH0592$NFRM?WrzG&e3U6JMOvOGqTcISj*N?nJ~bg0^t0ZolTX!`cIDTy^)rGDeq1c^M~!MWx>{Tzj`?8I0$kF^bY~rOv40(I7GJ z6dwW-t@YGSM5`cFtUr$C>YzblydlkL9+&u+f>wfl+rIE1=ZB7S zV(W_arZKvKt^-O0WfRaeL}N73Xbie=-la7w*UlK>;|Q2VtjH8fl8(=~NmC+mk0#gc>`4bjp*{ z`ucK+WZ8>G@8*=xWE+bid}tmDGYkRHejtP|qC2;AZr=r1-vRbSJ2oT(-3-q)B06)3 z0BAc4J63?H1$1k410~O}h4W?S=BF?lumzM$W(b2=dgoTc7G()7kKq)6e=n8t=f0d~ zg@KetdwnnU*YMxCJLlOCM04*{FPgUXsPoZOt{gYa)7Tl?rEvgDoW^6+bZ2IlficCC z3dLy=pXx${g%lnCJXm1HK$J9#wN^Hbk9ZhNA47z8nH%Ul{664N;TWi^g(4>|=Vix1 zc5|r#ij!y*jMF;{a!W>tIsZxM#`TOX@B}c^VhM^(o_njanP@I zJ1{T<&Ja^Gb#&v@ct89RFM8!K)&h3Hc=X;M9>YTpn}q5fezPNl9Pu&ui{AYUowInJ zQ)@h(4MBlSv7umndgy1w%3)(j8681>o+R$F^TDC{4ZJ*~CuZpUa}pTR_+uz1#s(e` z1!dsDQ@R9z7w|5SU9fLnlpzpkUU?#Bd6WcHD8?``0h1yuJT20|CbgP?RA3uBMQNk~ zqgGlbi;A^9!VZtelGV&eLwkT0$wbMJB_gUUuxYP|gpkybHHRMsDl(X!BVRI)Ev|@W z+AwqkISHS1XKUBIm=5_j>bFA^*d_w4!wOk`+h6U?NWS^4P$C1uLKu3A~^GZZ^Z~R-b`DBg+03i)nY@wVM z35M0&@X~CEdV`kN@pmsgP4MubE|Jy?<}13DIUqyHkKC0gUa=_9WetXfOip2Kf|G4+ zV0b=7L)}H86~aVds*%a>Oz+-;bZ1fb7BMv-B9duZO>F-FB>?jiG&O*R&S#Hd(-SIu ziUu%6vyWsY4pv1B5jO}+TLELB_fN1Pj-6yuT96-lvm>l10jX`SN`{G$^dI+upeMTr<7CHgSg`qp1^P_L} zlG_BMba!!59Fj#{@UT$>D4|fIaG|icuq8TZ$a#U=)_L&)|J=lbw^fw@>Tq)kgR2*s z=oX5Nt5#}{Divhtxg0EDm_)7){LOyrR}D{P#GnKcSs*ebzE7XcPjl3Ff8u+4T{~Pa zPh=_I&Q+AFEU+U}VT{M36Zt{^1=Dv>p;E>x-6i+vqJp6+QGp9XRiXmj_H!v@Q|&BC zWOLhD63=FT{s7qzzN41s`22`ai0ckaOaRX}CW^iJCWE(874tCX6+lTBKQSl3IYvTE zR00h#_}jVcN1EM%5oG`{XltS}Clg<`a$N}=@<18FxTNDxOd-%?5c%gqxfmdLg>qRrnKGPj|EWc!^ZY zewv&8c$GaA$>DmTaVaUnXYX}$+Xk4N&nf8DB!;T5LPNk!Zqd6q(ZFB8;xY&z>UBeQKsm@(hy>pKy;RRULdiMy}7>`CdV?kGe{<$OfRN*Ml#$K{3r7PD6Xx8bH*L6E+m^q|6IDx@fU1aFKZ9R;{Ye*qfkedMupjM{eRRrc4;Cny~MT?nA{|NlHcT%`*9w<0eY&KA+L&2gJ z7^R;DWBy^r4a2_s0TyAy{h*`#7WXQCStEpZZpXZ&mSc>K9+%N80-6)b?ti24}<=KKmu zeBd<+`4fW-Ji$lZ^2@9~qE#zp0!H_g37F|vO=bRHPJaIXl-xnE~?zlba>krOS-SD#&b4G8xjtT!yFp4xm?IvG`!ohSzn zQ>Fs@vhgsL?L=XilLW|(vK4W3Ku0#9v7sP?r4MEAz{~Bvuod$vk_LkblU2y(J+R#H z4W#fo*Diu0Y9Qg+O_;8clp0FBxUmz&wJ%eKHRJ_GD)$1?sxSv^T2~odBZo@UNS)GcaUKr$K=Mzn9rW2B<~{#x8my+>S#uSaJ2DA8naKXpA!*ufuN!vlC`G zZ1-VnSc0p7z;+kc@knpgVP%F1>gN8BbbpTWc!&sum8%37!SdlpwVJf>r5Rj1gm!zf zG2Rx+_ZR-G;-aHlk?&!!a6NpkGk3rMdd_)&fYazgo&aEWc2sB6AifTEZW!3d#a^&q z7ke=u81lILg839HRWj=(YH}XW6^1zOy}*k*#3*`@9V*QR9jVs{EAPcAgIYut3SbJu zg={lTpZ_E!e*ceZK4MXm^5xi+U#PrWz34fZY@$54)*I z*iD7~{oTrLDyrK}MYyAL$>5ImAS^lt8xS#9{uy*sD6X8SA_ot@aTVEkNGvI}oP=6V z&c}n>(jdne(iv`%ZbM$9kGe^$@cA)+OTLV#5d>ivS#rf@+QK45} z0j!phk7-`wj2)WePBYqfry2QD(~K8)npZFKVVd!pnr6JX(~P2jI?c)-#0EJQ&5SyX zacY{aVc)yZK#Fyt0ozVNgO`NQtjS2`=qX_E;sS$`abPSKZczUz%Sr{-kb#);fz$xl3$)#yRTLq9$9P(Mw^~7|m1zDphH?KWO_vr})eh z#lq*D$!C5TTP_INqrs$0Yo*y?80rc%qQ^hpBFOM|V82CJ7Ur)Lm%d(^* zh;}UemQnwlEC!;>Zhtf$vBYB6T;|8&8EU2WVj!9GF-bu8F}!x;2GGh~Pd7RTC5p8n zj2}yt%3aQbwGg_Q^Tp}KRN`cx!GHUmu{&!79Fqe5QGAne+G#L4*Qq?~>i;@@_M}_U zJ%6@v*PdNeU-~@quj#Wz7^44>Mt^)xo7fnj1H_o2;F7%bSZ-+=S7R`suxZT`_LqdP zGM3EdAlwiLgQtZo4q`G`80UOUTA~06U$K%Ci`rkD=cwA5hc^Y4n#i)_CJyH++YUq1f{0{fOJ;|UUobEODbuav#+GN_+hh? zKcbWK`T3P}hjaG@5rLq{l^3*cHA5d~>rmq1b5OP!-JYYn*8X{VsR>4Z&n_o4a#%8& zGKj!O*?D8IS;eH07f~iCsm_!X22)T{S$2-uG**Q)rkJo4vooI`byzAe!ff61g(t$* z06Sh>G(;NcvYIa>Rj*GOe^u2kWky~_nIWtrZ=xNQ!KKWc;bS>32Wpez9GKfa!2epAhm%>F3zbPhR0pqci>F}vPw;{3GN%%;#1|3vJjI?{ zs&J{kAc{a~d*f|JDYROq#_vIEpaMVmX0B~tlN*ttr&%;irmY+ zLaab6@s$&3W5v8H8xVc(EWE0x^U`BOlA#fZ0#3Q=QE5E7^MIZR?<|9|njYU7tQOzN zo)LXp(jEjII(6( z1gD|eM0}@E;Sih%Eah%iB_k3j!!Z}1=G{1lbrYxKl^vY6Ke!MWtp ziFCH}*`z#czN0uw; z1TGr3mFVHKon_-DIX6DYVF}+p*bT&@^}@f7e44cIXnNXtbz$VNABd$;sGH}xY8+%V zwGzPOuvY(D5lFE1rd+?iI+#|vLJSyFkg?dwkTv17+9l8P{!;QxEzoqKvtC3)iNSpy zE-EN+!;v65=@2!PR2$;?!LpsiMkp34oPUfTK%JbQ$1hj$XfRqR5>8A+QrivivfFuM zLiETaDN93oto*d$sw?P*hf7A9dJ3IWF6%br2`@+(1Q7!x$C4a#44&8!+(mdyjT&B* zydHw93D2OkOvdpRPuSzUb6I;8l@@}5t@fgBomEcjiO~|(2&{Cq=X9$`G~zYmb?#x) zDMsxEmOJpfn4w1vdvri9!i&g^e}G!)(4aAF?~|&r8M%Sg3~Y; zu9#AB3W+5vosXaHPG>odo*9yJG!V{aqb;&*#$t=$BTh~vcffbKje-VKYg=1&Y7Uz;!9x9z4 zI~MG{;{8|?${H8t(Sn(QJ>;7G)kn^OvYvrap=>pjW1N1IifF$xX3`e=!x=hx27OiW z!Q?)GtRi>H2oh-V`kT7aSm&vmu0X{_Q;*7f8bP?weGzVj2PTT4FsicOI-pfdow^P2 zLe9n0FEf_Hjv`n8VrDzX&THTlRW)<^%=S73H-Cj@!na(H4$iveoJQMb!tl?Y;PxTq zho|r#6$fr<$ph1J#$NsWsNqCrGC56{S~=`^)GzBGig>fXy^V} zmhdq-ZvBC^#Pza{0Bv{m2uf)1x@<^jaT3L;+rS@htuiK%eel9cRo+F#5wQo zPH1}0-Cbx##fx{7@GjnEKz@?aA$CHH_tJqLJpQy??|A7ch4L3c|8)k=>9;k9I zemFX0FlPe}Tj9(2rvSzzhEfk7rg&Om@*NrRy+iWd{oXnGKG@m(@KMJimzPaaK2?hk zcEJl-8b?|P8=o>XJf{;MwB&U)bC){Aw^iZAHDD~YMfM10af%M9Jyi(DNUd^&Hq_9? zd0Q0V)UY2UQZJ_BWmWv6MFp;L2q=RQLcu-&y!&P#v*(k;s=|W^MMCx;bDndxB0g;gg zQN6edqCFC1Q91H0V%xj9f=K5`+_3ZJqbK<`?_-njF;2V34#_x|DYKIKL*YrzsK-vF zo1Gh%w$fqpljAC=iL+{H8=&tOOP_I~m6LOKx{KUCoI7E;M7eY!>GAvxG{t%L`5S3UMb8yy@aOp}N6-*w z@5*QC8Rs9XIwIxMRZls0Kh@P8S%Bz{EW{}A!gzQ!UR*@v(7lT=ut=!FR~}f(Pf_PTvCziyzu%t4HLWA{E+$7ezt*f&b6YkJnJRX?+jU&2|jT8x;9DC z(8F@$t?NdzdiUj<1x}Ootpzl=-s@8u9M>f8*)EznPp!8T`Eoa?e0?{h^05f&=6hzt z@tn{1#$c}Ngf~)olq9O^di9M~880CG(-(f0AffMboL}DP*faq>gQcKnN9Qib>GfvI zmanYU!qZf|e&QnxT8U0(cxBd$4I2A>_6I7PvvpHrXYredyYLS7+_TGw1f0I>n>fd8 z?3(O-s%wijc8CESa0_MX+5+OcNvT6B5&SCNkRsj18X+PWy3)$(CEijcRN_G;gj-@& z^%Cn<36*HYYBr*~MXIV7S*wbu#Df|!+!Cv+m)NXIsKkRxc-#^%qQrS=eScXM;Zz7n zHTv##i@cQ92nPw+Dj_X5%Q`R!utW>h5|ubz-p=vua^Tsv42Rxq?2LT7L2||^(F)Hv zu;JFX+vX>*A?+LDo7X~u(w+UAavI^329T{pL8!54WAEFyh*#D+Q#KVQXPJ>nA*NrE z9eW{m2yMy}Xk_oE)>bWzK)i-%7<5s|>Aks`GpFi)`poIP`dr`J1e1#Wh%@*7zA(xU zd+B83G#K@y{WLX}nMIA7cQgM%Sm(-bUW04>l|LiqimNGFk;WDjtwndbED{sn_0AV-u5{TVLNgV0bXj>yR{&pE^buqlk1k_GUd0&U%R(APAnstoi_3;o z2CyNh+ezgnT{^Gkd1&^hu7|xZ_X6wa_DT`0cg}s~$OMy&yCKkr6sUM{N%?=``>F=o zpF-CC)s}xFXukPdLG$oy?fyn%Giq%C4R&U&ZR&w?Nv1r0p0~O4>e>c$q4VC_mbB9O zWo?_NGJ${={Dm8H)c@MDcV?~5?VcbnE}|=$g|*{$QG+dIWr{jOP9ax99L%~2tg_B0 ztDCykP1PYwhm!+DBVF!EE*AF9!U*?Q-Qpan#r&VpGu0NWS;JuW3ICI-z?<8Du)V zRb2HI=r!1R;e#Wc(>EVm@%smj2`X#WM<=&lhY93{^KQp72;@jp0;mCP3;s z=hlx(X`S=)M-R~wIcbt;GRa7;*l*Slr@8}feg6B@Ivo|hMu>r2dX_` zTamMRM>IAjj%b!^S_JTFT_L+#S9nL`f9;(GHXU(DAtD9p@tBbY08VgbS6jzZ`e<}`=H;o1M!A3uB6gRA$&!`fHy&OG`7TSN4>$ zDSpd;1p;K+V-@>32zcv#I*0IcXecVcB0y!3G8&+DL^VeBLal?0Yzeh00HDR%5ttwR z^u#6<{2UIaGky+>1Q5uBoP~0D0LSaVh6SbGXNMJbLZs{=w%n^ys;t@($#D*#9B0Lh4`lt$18?25Xu$t^B9Jc!g8a;6CC6w&OAX} zDDUCnsA05;kX98Phe3o13wvCAPM?3~AS{~upmwMLn)SPRYHZLah7!ln^wfs2_;x&x z1a?=IUB_D~Fw*GLW{8Sz3j7T)3E{cS;-_Z(C#Uoh`wn$dNS0T#T+HAa&7Rs&bW<6_ zfQ&I!FBa2KZcw*9*aM=_Vq5~J+X=z5B4ri;M!_TeW8mAiIT zz%hWQ@B>UCiZy4-?uLPnNDWRT=-j`%Yx6AhA--;zEC`U3X9d#u!EyfBJwSOS{)E*! zBfh>SvwD26>~mFC4))?H(r8o!zqwpE1HZqYj&Z*HeoE%*@02kJOI7b{V^8T_SveJR ze;DbZ&nte}d!5Kprb=KIv+za?s=I}}k=o|%-2Z!CUMEC#t0idzFS9vINM#LgayI=w z6qX)qU$!*`TMw{Kuvfyga_sH^or5%g;2Yn*?o; z4+=V;j*&i{`p`RapiYbM^Q}(fnTz^iontNvUWNVccmo%8`IcYVk5~#|d=(ofxeuVG^rY;*D}KV5^g3jy;ro0Y9&Ys10qA--W0xpKHP*FwTnw1!EhnaA9$kJi7SN!*|dsvlF%B> zrj#E8vvDUd$P=i(y6YLc64(Hks3l#q4W=1b>m`2#(+sSM3N`F|T;q4H-*%SRGs*dA z+fe=~`m8N}Do*%pKg82X&I#K)^3P=V=PCE+Gxw+A4)v|yjt-n<+>YUu*EXeof~Lro zxzrRt@8$vvrb;6Z<26MdnMYURr)fU5lUwtsyZd~2a0+7gr*K%k*STR&2iG(JChHnb z;W7r&$0I`U;u;39t07?+K+c549BH76DpEvca7R&Ps9~Q@58$Xl73;8=a|DNT)ORPr z_;F1^eNX-<`o4wS(vGGiPTNSDJHXLWv>h+1SO3}ZA2kgB>`yy5LXf?Wa({b*eM6Ri zZ8VX?JJ6}}%zRADgO!`|=}V$Y`FwM%@|bMZ0;?z{&u&43`&@!>Ww2Jz{#@)*@D@W@ zh07N~d?2fWW8fk1fhV#+;XytT;awb1D3p&1wzVBCsC}!g!VL_<-e4uQVDAuiHzNd^ zcR8DgoV{n4JhUaHY{409mYdO%I(B_IVF&iWw8ooxu(_=?V%mKo0W=h_f~B^&1kr;A z#JLC5j?74g{H`Ts#}J1Nm{`ccA+i0+CY4o{K?eK`@q|xIU&L|d=niTtdjOlK62-x@ zHWRyylO}Q|;jX!vcQu2$X7Ivh?#_GwgueTa- z^h+S^bTiCaS~Lp6(3L|AfG1sC$> zs7G#(0I@pB=27gNSF{pig~blNIa;=aHT2UhoN>d!y zumY~;4SfWA&a6y6j?vFMu~=o{t!b<%LtW+ zq@kU-6A&+MFFAt>N`sn{G!!Dkz!!D`%Bu=!K6;tinu>d+dYL4&M%>^4 z9_3Qkc$YnHmth6)xLuZ4w#NQYRMduwahPTLaJk(}Rpj+fd+FK(N z6$Mt)*7H6eNck|0L7d(R|7@0Di-Jmm z0NYI?0sC9tlE@0mQ?hq49YvGmq+%+hD*0G3%}V-X6yfjRkq)7!l6QqXoxLEBk{*IPw3&WF5^HOnMLi)JRy zhs;dTnIr|}2*7_Qeh`s_@|#YSOS`4NGqn~~%Vnp|bPSD@*LJ2y%w50?s4I}Tcgc=j zAV&|b9N&c=r{o7MysNV9q2wXjC5yY#Ai7Fk(Un%1x4jNcpO0#oOtM!uT1s!oZ@N)? zx=`kIr(U^_vjGn^BVJLPz=|$bA|AsJ$+6w(dbIv^cWUQKGXW)`DLV$17FK**M#GC* zl+wE1gKZ-28jQJA2OvTQyW)McQ8RAfQJRX40VfBEN z?C^N`#u4-^Rmhuq0WU|&Wxb%CjhB0SQRfC@qH3h_?JZat;YqSbZ@QeGmrwMDkh`*S zdv7YCX3xhhrZ7KoK#aj=bGrlE0>a11l0MWMip%|d$U)VI_N5aWjKm4OywVWx!|^V1 zeqWL_q_Ws1KMgJK02xI^31u>`=!_Faa8ic-(LFr7>Rf}a5R+h(LPz&>!dFB@O@O2X zYnlxK3d=JSNPu1M6h0s)^`n8uVqpiAAtJu8A>;AFhV4eE#f{~R#T{`6j^#cKS%4RJ zAhEcGTHKnuxSJdWr2Mh+^rL7nWv=#MV0kk(Hi$$T$u7@%v*nupbTT51@{UHw2UebT zG_@eQU0ykWy7)dRhuu6pLH=U^{j>c6vYLW@8uk%ZQ>#I^EA~k!Lp3@A>8LAu2={-y zz?y;7HhU~qCyX~y1j{p+AVlH8l?Mj0;(Ar(g@e%?t(FUi(2iCx{$r3lFa)`=lC_-N zBNrconS4}6htd%p-@TW@bBsJIt59@hY1nIJ@pET8{(5rB_U7X(Um8VGr?7mmXas%;&K(0p~iAd7bj{g z$2wFbmM1EY8%{%s%H=&LP**CieCq`ISx1*D*PcS7$OT+r9^=O#x?wR5ShQ-ufiEuT z>d^%qc@^m3=5CNo0~YvH1{ZXd0idUI^9CtG9H|x`)2yzb)&@*UHk_vPqTuOtKQQyL z)1loDlv_`yt)Pyp&!FaEgrQ|I)^)~21GU!6Z_c2iJQY`m<#92%0#50H5!(+X0CT-w zb~%&s8-0o+LV(U{;@7#)^4v4&S>I0BWf;$!okgcCKQM@&9?7HHS)@|&|j^)YUZ z&jwI6v50rC;~boYj78W_J3)>+he}gbgwLfj=|?%{Txy$(_2YwoW-PQ5?6n55>583I zSQBF_7oQ8%ZdL<7wN%Zhws#4QK}C<10Hhi6TU-i*pL0e~6SrC;UTshh}L0)YC4c!GGt$9d!|P%7ws{Y2!#0c*-&&IP`-Ln+PGq^9#B3BGC0!GUs9%?fU*1 z!xd44wgME1i`ofwMh+hlQjwpoE)y57@!}!{3Lhkuq-zE>EJZBZ9c*GzvURgjbaIf- zt^$b-K}NfF6gAI&kc9*gir2`(5l=X_2yOzocoZGke20hGn(Z%TcNeqP2;9hoAFOit&!Y(37u?V5LD-3E`ke2NnVLT;mDWQ&U&`HMK^aC#?>JDfA(hvSqeTL#1((q)AlzSFM$>{-v-N?H za{Tt|^16vM-~4W7{Qc*dmCY`v4@i^=`O6hBcnzuCawS9&x{XFwyrqBlFs`7~GRNU+tb+%-%Sj&P3?Oi@)2b!p^rfsyGf`c8J?!>`$ zwty>A3y;pjBlr$K%1@?~6H+PhkMg>ksptfx==KL1Z;Y+2SRRvLw1Cm&`jl_bt&rDlt^Sy+v{$pKQBW`nUkJ&TSe}me zN(I02&dkc|Zl|NE8A?Ot_rYKa>~iaYl-&VmAceQfPb9sHHSo|K)Do-m{&q?BO?MLSkAPKRe7?s<3dlfbNaBiK*v?_7pVgH`OYTG@ zVjmGTH*^zn?bSY!GV}$#9qP7%X0t!SVNn;v_bBSOFZP$zFZdsQu8TPhuS5 zBck;1<=DZF?#iy^^blmD56ht>jgkcmsAKb0WD6`{nAQz7d_YuKO~6TTRMtCk>;h`- zOT65@07P(_d}aZ)^j3C4wG-rr3ux=0ZE!)u+}MEWEcTrP?X2JgtW-=1Og9Ql$gf7R z)+y=JCrKvmrNW7P&(5W9dlSIp-D933}PD!z9Qh|dt5MHWuwW)ZgXriD;*Fr&>L zhR)tDr6cwHF1HcD=ly!j(y9S5VWY>(Lb;vXUx7<|@J&cXUG{Y_}4D zSkH?#@q>>;_U{s&IGlx=JisG@^O4oI{!qB1+=A$T?~~0j#!KW~m2?x#0@gCxlmSMM z)tplr#lnB>_T|_D`NL+}Y&o?w<6jiR8?YQg_8wWW9IEMH`Q37gpTYs|>xwdfJtfNE z#Wk<|hr2TBEz3X(;mv9=TqmLdinSg%e3to^T=^VjCxR{+S}=w`gVz0=GHW8QD|w-> z2Z`hVmgJRymiGf;g3&-ctOD-DTn<`u!He6f@Zt{U>gOqKM^M~al?L7al(nkK3fQOi z$Rk(KDdtj^fIu#+@KSmI3Tm7f$GGG3|1O}zULgB_0ib$ep|bO}T}hq(Rsemwl6oWn z`maTX*WanTY8CzWL&NJ2&XrYvD{wlkrkv(bBbgk#QM#~+3jV#@*TO%t>>zUd9HxU}|v=U^_GxrTnFpQZn0I+W&A_IjB*dgEt{AiPr98s$~% zs96XD1bR=Fz@2)sd>s|_oQODLUBOVyDcBww#O)OLRF z2I`qGD#sBWbDQcPUR3{Bm`#}2R3x!`s2PB`bdTMnj%874M!Y4HkmT@{qRN7&-Cw4-`Itp~acRShPqzP%Vd<%aRhkk?gmXu1Jz|O?9B~&YIiHCcIuD3D}te~!A zN+UG5@-7i(1``0YHtc1=f=ge5|8c~Ed!r>NipJE`r8erogs36+eMToY-{@Yj$H7o~ z7T>rba7@?};Z7LL&Aa5KpHuVGYGo1iI&Xo;I<@#%e&g#;{Gf3x*~rg7cQNpY?er-y zu`+)LMd%0|E2vJVRR>`U_M}xiwey90mC}Fksh##$yX2K$fE!Jb_kBTUbi)o5739mC zPw)U@i@hz70(5%{AG@t~qVOBWv`8n}ZV$B`jI*P?h`&jW zZu*L_YRj&Dgt_U2B9>Ew}pvgynM6CZL`DDn8;AeTn zPh=g%ds=Fr#d>iH6^ne|Pjs29(ST~X<}M5|B+s};gO|8u{U01UTQBaYzddgW3WLn*uCd z(x|<&H33ti#wYKHwyBv*AN6`I05$6U-c6smbjn<>I@BVfdEUly`MaW1Xp4d4d)Nwr zdqpa*{f$l}xI5nbotnS~`o-^mH=Hp*Lj8uPg>h$}bJC_&$@Mt5fMutHx++~NhFts zyg1ucX5@<2$G!wFO`0N}KE3rO*~vv^$TRlRn08aJf06C#*d92D*%9DD5?j^!72?bQ zWlF(EXqs}*Ufi%SMRxcV{;v2o8u|FIX6Y@&yx(M&v;olq=5&=QJ;F2koc%&vU18H_v$I|qX2xTb7`Bg0aLUV-VvWAgFh znmZ5>k}`Lw7`p03U~Gto<|ChL*->6z?AeM}oo-`uX;>%s6tQ|OC#A71X(4ji;K8;g z-uS1W<2MAa;yGb?Q77Z_1Tgie+}lEA5^bzR?AH!D@o?i%DTf<7ZN*)5oa~4@Ftg$_ z1E(n*!F)cCoK^^#9lxszMVrt*#EFL7&Ck>2cZH%ke+d_fURh;2?-;^9Zazxb$2*43 zE)q3%49#sX^5t7a;=@EUrFPSCywiK*mvTiru{P=PRwoZ5_ZbkBcefYV{>!Rv zm{|YP|8{=dql7v5S5HN&ovzp5H;S2N7K=mvO8S@Q7K_2To!pCd8)~jq8!NIMA8HWp zBs*q_0=iV5m?a*dPL)4r0Vxoixu_9{6~YGbJG8P(W6@L47&)e?=)zZh^DZ1lHzk4b zTXLVN+H-@w{;qv3%|ZYU``Zr}Pj^bH zTU$79y1JFht4ssRmaoYp%Z)yCv|Qd(bhrL!OeUY>(HGZOAvh7y_BfD(-Q@Ax4P^8P z(JIEb7sPMnf{iPAdjVgILx>`nf?K%w;sWSo-h|@jwcq^!JKeB1F&S~7^hMlspm;1d z1P;rrmN_jV4+deOtJ^XuAGM;%NCO50|Hssi&QLM21#5;rA9OWGhL@{J-XO+T7JIok zU$FqF)zx7fNtftAKHs_t$b(79JEuWjh{99&@}GhP zD9RAU+#Ao*K|=TW8lX5t7!D7v6ALEVuy7Y02MGD_50T`N4EzgV_7I?Rn3AXPj$2s^ z1#W1X3H5{0|FSK`9c;?6rxr`xXabW%|E=_QI|88Elm#st252$y4E2+@rU)<5v% zNA(g@=hzoQi-tVSe}CJ}-iFJ)=DG7>k1hjWiuft+sxQNcVW0wXd~cB( zi;pEb7IV9KRa8Y{rVRpaPvib_Z+JW~#ksub@Dmg2dwH z1lp)&W|@dW0o6j6akB@`6Y2NZJL-QKI8tO`V)Bm^ZDN0U2o)r3);;+MJwDYqBi?1T zR)G@=3wZBos1*At)u6&P#CMSE$Q!^&@C}F<{5S^j3c}??Z||9*Vq#_0k)j!`k)IqX zPIZ|TTxhN-1{w<_f!a05GNVV}6Lb3-n zf?n{wZTT^^Eecz};@f!RLxY6W(BQ>Y7}TEC#3o+oJg$EfpA&9LmBG~%0M+$nL=<9N3@^q*hY)BvH!0yfU#q7$HEd;_*?u16yt8LsDG& z1LEMt*U18S|6dKoohFimVSG_y0 ziW*uZTlEuNTudF>!NRJ5bwBB(|68GKZG)T31hwYq{!a{Uy;O;6gRA%&b|@=)4AqcN zl=CU@te|Y#U$lZkbVPsAq3Ix2aCk2^Z%@D~1m1YD2|?b_UvxW38NQWVfrB3c?p3`a zJcbD-rX?pnJ=uJX2%ESRqVaaeIHDm5h!)?WffqFtw?AU26Or+rQmXLcq8UoZ(M)Zz zP7#=NGiAMW3Z+@~9W0JY9L@39VDX9Je+AZm3ekB3#ApP$t{))sTssBW8^$ZCH`L?g z@MPFeT_=YhY?5#-5;X|(acn9&SXQrQSFI(;GOiJ0X8&hnENehlJ8;Sj+HQ~-`2TV9 z;3e}vfSXNZ*C8Sqp8S^z_P={hS-osytY9a(1;nn`Tq_~d*aT;b-y-mraGu9x8RVv} zKsiX`N#AL@^`hQz%6pCxM;}?jLR|LfD3%67@__q3LYJ2F5Nh#Uxi?x?EW=UY{oVuxtXszDO8+1vK{B zz$lz-2__gc#PW_Io1Q2-oz4nsc!0YnQ;TXmc72sAu#Q-YdihY40S*IcAR8#r2#)lwyo;kTJO(>OJp ze^T|I1f$80CyQY;SzdQC3|z^nNw2G3QfWGvDUi}>Y(2&l2X!$ss4O@|T)>CV-F%v8 z+4L7l^B|-E`XpVn+T9VvOUHBaHC**men=Pi)YY z(?^QFz8S#SK==mv=14IP-jfAaiS~Xy{1gsL4ZkigyHH$oP-5mqVtj0#uDh1sZag37OkQxAY$%PR+T}oKmy>Ha8z^xKnu4BR@SXJzth^;V3|#FV&8-#| zmuKa2SX^%PusE@7hm2h;aC0OoaP^k-BYO~TtK>2>P1e>6au?2Jy4U?OtGfmPEC6HV)rzxYEyxH{qEpNk9spiKlxCpc-xwi?tp-y{xoC5;iCMef`IgzTYNqxJIhR$}*T z`N*}RMeUhBenWn8t;mnWD@`>tFhh9+aA3T>4={M;@%JH!qa)7I6+h0FgRT?bWVzH5 zce@xjfI4d7DRSWTVpe+R`3USp=hcaTs`EcxkABXq{1H2nDeFl+>SMblAKC{wIJ{1J z%S87!>tKX{raKk~72*@PRLK1b>pH)=N7S#ABg&v2uaj?-!P}>fqepy$)F-3YOZD5z zvz@X}OxaAC@+W`(9|Xo=HAMzQH${2Xr#I{2H&A-)Um~obENoS8g+`)gAcNI z3^AH7Ocl5A)>BZk8e31tO%rPCDStsg(`)jsY2u2?k<-O_bbf+|<4pQAa!d(w{ATh{ z%8iPgrpR$TN|^(gKta1y-Xb~ibgGDPFQ!5BQ>F9FR7lVhEX(qN|SzM3&i8k_rBaV1BTB|a?K3U z>x9>srGdmjmbLK=i!OW(?8Xp%!)@T)Tg%^%aK9&>?eZPW+;E6L3&0?EWg=XZXRA7v zJTFg}DZ0hh?J!C$9ThW?p8yYmN)T>>sF|SGOfYIDcxoniYbN;86Qp;R$j*9QbtocW zyv8B{2(tYwktgswaF!@)!XQPt%TaGB_E)ImW$|t5EYap<9v7VauGy%=VzA+9RD*#* zP-buJ7fF0pvDm7EQJrfOTnG=ST=f^$P6TUn^E4ae0l%$gi+dZ+^}_ zrt-ROlSn(wna`=!`P68zu(zv4nKaJCPkR%W2u!#a+4H5jaj#jh7$UURs3wV9&|;(hRW7lOSjK)R!@zDnSb6ONvTNLT%MYH(l;%LM0%W!^az9io}?jJrgOhWL(yY@pO7zspjcVcAe8mQO(&S$8Jc6p-7-Flyx=Gs2!zZV@{FN9O!ERWwWh68v1xLh6lu%vq*HVJ=iWO zZ}4crz)MKlXPbyBq2e_2_%F$3M!L`3SLa25(Y=0!ytpAq9_}$ig2$pAfRX% z6axr21O!DzR0KpB1Pp_U%JBdG)~>3q4vEJ1-hH3<`OC+2opbitXYaMwT6@iVTiz$5 z$MTn>hCI#20Q?=AVM74Eg=@$FBTWFiybgq+PWv`-Xyk;~DIs7R?y;?Bd|vk7nDX{I z^vk|NOlEyljWXm8VWO!8SAHex9qywM4R?qI2n~JnSECu(`}|H{jg}pJdOq7^4xX;M zT_Z4R*;T6nS>~b#Hy0zJvVqlNvWO7|N~|&z5$)(?k9aDUmRks!+x_9f1k%S&GBO->c@-0^7dw$}^=(R!W zM2H9~F>pa8u2K~jA#CNTcjTz>%_TBUm7cf=9wlCVMMO{|A?*<3vdyUV+GsN3*Hfcg zaNRK4#IL?K+WCK6EZ(8L#0EI&x@f|JqYQ??6DtOIP+j*O5Zf(ga2SBR834$u{}g~b zJU*5rgj4~$qpkRjMnzRLG1+V~k1t{ZLk(VxJ-QlqiD;Klp*+nHI@S<(>4Y_l{ru~r zgQCrk`?Ien+WCdY{Y}?L-KFOqM>V%P|2+Bq_0fvxp2z*b4bcZCzQ7a4Alq+|pjUP| zHC5PNO4B=Uh~84x9gZ$|;BgI>Q_+T0TrtT~iDkV4DQWhaZ$}Hp@!U)~={@{lteH|9 ziR_R2&we{PHhSR+U-(Y6A^P>>{@m|Gr$^jxyD|DW_cva8W0cRT!B@T;9jtM^{M~4t z8qVJot(!+@8eXIlAJq{kWQiy@gxfSeklXs6Nu(M<&fjzg=cPZqDH_wtwQWAM@VT3) z41I6ttVt#+euJ{=MZ&_vG=2DSf5RQoOn>T4QM~WxpVD_}ce(wLJ?E;Ya?6J(X_0=J z9~&;w0arO)(iBrLCygGrKE0O+(xwyCBl3H%E)w zM)dB#b92;#IsBJ5M`ix}Tg#dBUbFyC-XoLQ!a3EV^gS#<{O$iV7(_9ft=qe{Vab`2&8ro+!{@LU3e}y(ywqOOayhS zaRSgSRfKaIdO3=gF)~nqcd)tJJ+^95VPt2>wgQtQZj0X00SbiTq}30$-yV(if4VKo zj}P=9QWfT7r$C)!P+&W4UOQeBT}c|6Idf{%PcYu&{^Z-EYbL$$gb1C_(}AEZh-6vz zyXXS)JmCA$7bmL=hC0MchKERkN#?{#rbhV1A4g04{y&J`Usi8AF%g`l1A4VOo3sr~ zf({@1LG*`cJAj?|qiE62pLi-~0v8Sifx~_mQ|@wI#4Wn5#lOg(`=e;hzZ~bN&Cxf* z5Mds}LyW?7>O*{Vb98m3$|P`tNIw>v;O8sY#JuR<$NW=w;BSI+wcUv;hAB?JGrIX- zjs=(@lRV+S`{QV=Ui!t4quX_T$z7q7>+g!b-E4q&tg9con`W$;zdKqWj+R(P>OGHd z{Q2EcYxa=e!HG>gPhTXoeuRS5s7CD2j^60-_mBKMI+|qk{eBV6Cqs4U7t!Ee_s+os zH?Qo5rSHbf?;VnJENSxDUu-WfVTbx?93~`X9%#|Bs)e?m*%_6n6-wSuytdLx-VYd_ zs|X>>c`d!tMmP~Q9VZzdHiPK663MVFqeryz-?*2kf6^AHrJEM9RA!Yx3w5P`dfBaC zn#GvNsS;9|bT39h>Q?w|9|w-XpPb_p;lCj6S_-+o9)F|>13y}K-UIpt=use1|GPEG}CNJgsv|m(ZkF@duj64y@f)R^W#b0LUmvA!Sr4 z`x1WLZb}`$f|!m)qm*U>JEN;(PyT$H13n6K?ZIr&1UFn|~9{?BP3M(wa+2F(u5VROV#2g1`JX(Q5_^c(q9E z(6TcA!eC~W{-m?WXApwvNhhbz2i`Bq4AAj{HR>@D zip`Ce5>3+3@*np{Rl2y!S%2v z#YHW+F=$eahvhY@qW`WYr63!PHL^ikzJ>a(wF-vLwnRFECd^(cG0IONm=18Cy z*klJWJSu6(Y&g{umzX-WNe$Nlf`721`S_tSuR>nEa7uxuS0~(SHx52Xu(MokAB*30 zSrQ_9L{@u*@FT{kDQjFs(UiGLp4RAAP)?C_H;sgK&cwebbeansFnd8uQToB|y?Ue^ zBtx*OgP=P89IQV=|AW-;w-E>q;1%vDgU@`*OS7KF!iIL;BgTwD{(bimm47T z|9py_a0|N^e?Ak8ui*D?lGcR|x7`M(0I``;J+wZ=t7{IyqB=Z>8clk$Le}lA+wsp? zsGNo1u?{0$I}L8|?Nx+qu(lf+O3xDJM=TNJI5QfM02WA*nS=r*aCIn68y`=^$;?nl zYd_T0JY~;w!U>1q3i~X`DEzigx0?IEEDkYbL$U?@A1e;Q0E2CZDQV!6&NaQboJq#; z_k3f&wYf0U^Zi%fm77?Lr~iL$4jQlK5U6K$WxmK~+js}#V2QVfcj4(U?KEr#aICF@ za{hPl&cJgJP?I5m*IMr$sDCR zb6M)How?kk3MzX%+)zP9b@Fq_3v*6pp+AjX1e>%Hz>dbuZLs9*?fAX8;sL zJxBeK1lo)InSYFCjeKy!AEOnu2olIeWmu~`Y+K=?L$&9d7~;N++Np6(q&0%ELay~C zZKRkT4i~NOAW`cjQMM@U0INn*UncV3dIHlEC06cvA}a6uu?w7%$M-UJY(RDCx#3>A z<>ORkBAQF&B@+mI2yHyDrCcq58JSAFN&s5+WVAq`+wXcZnwkBSzx2t*h=oSP++mZF z?|3SDcOBRYpZ0hBDe7%1U~Ig|f8(iW`pAcWcq&RYf*F5`_EtsW6aUn}0&Nj_{n)_T zpxD6LupB^$RVNr1LG@Ta6(1N^tWwnn#zj~q-h2gH`(IK#{GD4UgEPmsJ{?UN_Te{n zwL|M|-l}y^M@J2sE#M+-#p#E>hJ?d0LB(JVI6sRypcb-NOwZ3Mc>` zwtx4t(Z<;;5UYcMVlh81{TS~osJ+t|b6C{LP_z9J&qXIQl3zX-O)A<*3h@#C<>#V( z!gp8k>I3@jp0z%fjrcC7=*{-W|2cXKef<2-wLbFn@xq^@Be;3!Um9-?{UusG(;)U9 z`aAtfIzF-1@o^(Mrh=xx^_S?@`NK0hN5HiyommI-hLK>#uE={^{>maB?gyWbCQYze zwHSQGb;cm)m0Kux5&za7^L+HC>~H<;&$B4EZ+zi-j%f;`JB07tqR|~(8{O&=qtj7< zv;7bLPMx>I{fvLqrU>jd9{7*wN7#hy2t2VsGpwps7UrI-DVPs8=4C^K&s!=3Ob{-aN zb*@yzH5Clsb7^|jjbe*pw|(z`oU+0oOLq)37 z$e$t$aovoEDKAtN=2IVa?&LSuwuW@WhNvN`ANP=jgChWC<@8jR6)l22qLyZrACYEN zP=?y&mHfywE3&NKo^uT`{YamiY6(?3ZH%w}kCqwNyolv@P41NFk{kT#P43X6^k|b?G~_UX3(^)PKOD@KZouqQ8)_NbR}~^k!U_O^kYu0PK0GqpfCt8IDh282 z_+pYjB`Lgi2u~X|d4}`QG7S&{53C?AQpGDX9`ya%(eeMzu@9jTyWWOJr%lWg2vrKM zl68JX!7WAhMDCDBM@hNSGCp2Xd8{n%o#Sx)Qdmjwk{1~TnY|qOXk{BBQi}2-BFXaS zh0MM^wYGQ@(Ah*SgeIoDVK}a8zPfxNbD-?6q97SP>4ty@E8fHiRiiyJDYq_|rq2iiTb$JfS=bx_&xhJo{)B3ukg(0;5>f$g`jDo{!vsE^V83q~cE7wM}Qd^sU znT>)%5%N)}p~$aZw2JEDFxO#nLDhAwesa;x%|7E-7v1=wXOK>hmxXME`>hTtKw2Le z7~Ehl$!tf2mx@#s_)NHz0P4i;ORZ_4^~;}+qGTv1$JY5RYb&Ftqmr_ynaV_}fR)P$ zf3C7}uAFoitbQQG!suRqN72oj&eJEjIx(3j2mBKR5CmT>2vkPQrebmPn)ri}pW5su z=V*M6U)AiUM%;O4vpYn8f6(l9A+5``xQZ^Px41=IzOltE(B&sv+^e|!X^UG{eLBfM z*6hY}Z~s;|u-CQ7<{Hj5d@IS!$Xt`HOkL!jZ%#%do6O1LIMc6P%LU1&$p55(;BCW& zd|eKbhj9^Yl25Pln_6Ap;8iz7Yj`JVR;mZ*HlCPXMXVQh%sc_j6fwc#M!>MjE1f0R zweyzWL~Dfi`E=8Z`~v4GK+8SKgz;@%+4u7451S9fph+JT`SXXB-14p;+t3zc(VUE& zj|C@}{%GS>CAVvo&2N0N-My3@GQ0bCvn2)l7E-cX_nkaCBMM*XUW+#0)KW6;)(8dpEVn9F0;(OQzuU?;UR zjP*T12SaXubld@LOcLaWh3P-P_KQsuhn8m+W$?LiS0YPJm(5&e7G`3-DM+&QGuMNW zTm&TCaRyR)1Q^>I2vg#_Ff|x!(k_F1s8h%l$1Eq<;fr=|BBty9oj4oQ4hH29U9V1Z z@|$3O;5~9$YF295!_lqyLlHoOZ~+@OKx+1vUdk+(v(ijU^4S9c*(5kuR^w2_knQQU zk!lhKuDp(DCf}Xa&`I(yV$}y-4H=|nGCe3k2J?pI>8Q0S)tiS`P18G|ZO8_Ha5--_ za%OI}qVFLX?UP$3I%CsdcF&OpU)@;x@xjWYHvz_wQ_6?!4<4z ztphJc3P#YDa*un4fxb0X;Y&ko?kzGVxclNe9C!m()lADHrJ#M?DL{ zAAi$WH+oE7gA;$zKDtg%k4^Iav9WIUbdG?~?DT@oE^o6F0OGym{v%QNJQrW)cN^yh zi)7}Ov;q1P#<>Ok47lI0Tb`VLiVO1fN}J{w=Cx;qN^H!_|9G4mdzhhR1!U~1FkoSb zCTtCaqMBbv{1zOo9V@ZC-;qi0G~-Ji=Y0=Yti~05JI5vb!`yV7xW+MjC-^03A*rseY2k9QL$=35P=0NXmY z8U7q6_Z{ICV1Cg*J>E_CC!d~eH^~GwQ!Oq+>VRbtvj>N&g1y$&E-0t7An#olhBq?2Kayrels`n6o?&-PX0RWdi{xMzO_ zEm)y?VSd^8t^P;7t~a{p@BXn~H`f)?zxdvXuD?WsUuP@rMpu6IMAyTkZ~1pjbbTem zwlpFrm3dq|(T(edK==e6d&nd>cZFz#&Bq^iY7FLDbjF^ggnF1CPo7+p1TzLpXTAtW9hC+KYq=lcMb|$Y{c6AfX%Pebod@}5 zh%HrOof4neT9I_op0tT+wa?DZERU+bWOniZ1{2ljXWR28HE!g@6}0hBC*D}Z@86kt zecq6!Jck--TjKwgxDM8n@U20Y2N`zZhb-Jep$Y6b##F!paSOwxX5muaf2!<`BOQM!$l=A5JFcF?0x=-sjggl@)3y+Y=7*P{@kfkzHOaq(d0Khp6lW?2G_T1fqhh*Mo|&^QM9@Iff4Ag$)ka( z*k)avlbs2hi%(4BlNiPs)7-v*?8kIe3W8ke_cqCwr@8LpnfcPgb~SlASI>#eMU;73(pueIBy{L=8ckE{%KU&tRI`9~aeo-{92CJ(keQU9m z`?%PkhW{(ZWAs-P-+3Qlk)t$x^V_oD=4NLztoG$I+??QH>tMPK<1T63rQvbg&)T>N z#S68D!?;Ttw>1d-lCECii70J<*!wWdZ6r6AhRp}9C2Y7Nr9da3{f2z${^~6w84=Z* zc*Dle&vc#HlF7>Zl{Tw|ziC!Ls~_3bgR|VE8KBh44*lFE#n1xcqjJi#U(I-vMX{5V#ReSkdG zoq!gve63MVS<$y_CF~`lD%*Q)Zr;uJ|e`ZyV46_ulIN8JP zdeCzblyO<8F3}P375>G!ZehuO znwH21cc16V9e2Xd%z_}Qf$zR^p4+)3P^D*OWoRn+tLC{0EjBJN5%KVzc~}Dr{*Cip zpPw<`^>*IL`eaJi*?=C+Fe3lD`QX)^{-XJArpe`HAsf)>W1A69-h_y62HMiK4b!NR ztyb3l+mK_4L+=}{-2idB3{47sjR@8ElkhL?3hQ@<~Z?y=DYXDWpED z%35sy3*6{=4KHM|nYB;`Zh7`(PB#c6g3RLSL>8J{j1bCeA6VcjhY7mrH>3|TEkKmarigf7$?iHG?i#E7~21>99a>tjX=^QhSBfxrv}yo~aALilxZz?B1Err@d?W z*1L9ga~6i*1kLjtB9k7gxRcA-xEimY8+q-2wX-`07^Mr{z<35`AB-={l`gY|`L%lE zYiBKVvwOqi0kO*X#ir6%t;P4ME$&)~)2QGNUgR!mHKbyf$&g?B@*+1-8|S>mBgdJm zj#K)##@TqSaW-803m3a-lcasA-#T(^hy!XkU|#U|Ep|I$y$l)}E0~Gz2WzUF14qE# zVpl7~2BfmX_Tmef0|pu4&KGSN^e&4eK$A}7)B)dI6rP{Qb1?|PQc%!uWkrT#yt2Y%_UZXzOHQ%Vl1 z7$Uz0)D6oV)}DL8)Lf(OCkV@p8U7vfxghs?78^~7?-BFTm-KQG`@B76NB6KzzE2M0KLx6qU}lro7xY%!ZoMs_-Ll{loU4vkZU* z|Grnb>AiuTUeV@EgXMQ#<)#(Clq;QKSATq!o0R>MZ`sZDj0u|?@Got!k8a3n16i`0 zTLS8ww43WMYNE^M#@G2T?B@34<} zIvBQ;b?9Cb-vUA8O7CKM1(v`zVd-L=+Ei*cMbhCWNF!5P)wsc?Azly`&6t7&F1WBt zr5b9U)X+7c#!o=kLm1PxX4Yhh=nA3=q89Wynv@6E;dC9GP;-U(dU8pt1VWQjFa#`j6$o?0aKN3` zH1~FlOiuEwLc#SJtiJg*z*tyP$?b=4D1SLI1Ix2#om`o+JUXk~C*v{-7{P7|y5k}! zV13I^%O2d8llO^xA=)iUXuVVR!svBvk-u-bTQIwj-hOtLRHs=gkcohu^u=V{%FqN6 z=5Rt0lc|kk%5ESjqVXQ!ecm6whnt*dVHPsq4SSd&?OA{E9&X|oR(zDily0zf8UE6_ ztnsD(u07n?mO^@^nQo~9x`k^Q8VY;5scnWmSeXr9{VsdDSu^ccpK+OhPTF=1%|MPS z8QXT3_aE8QjhzGX%KRP#CL4Kr=II-<>m{bcw_>7C$BO{Dngo^DE)NK8BD#pXAD zJL?SDwya=f{)Q*RbdAzFyGuiRHD|41D8_b%Tdi%R*lLft(i**6=Q)94A_y7x3_L8o zstORRj%#XwcGwkY9%9!k+Nd0;WjB*4Pf*2Kl;NrA6Kv9NGsrN_y-RP?B*O;mx2y=v zDQ#IRr>lCZ?m#|S>GmBh5tRSxw_nHlp1RUaY~?{Z+CX!l|Kduw1Y4-JthNoCS*+&I zuXIyKH1FTb^=Zd}jO~K}!-bMCdS=u5zPC zOVMVsMf7Y5-==KdzRFczjc&@uiFXd1FQk-T++=|<@e*Zw*(HMy-(0MaE*dp55+ufuj}Dx^(A||19W;9xCW9TeM1=LG_qUzxVm$iLLt3Ej*B3`2eRPa z&SBGrlZTb4_B}jNQJR6+CJFv)-(~arI%;3nJ&r`U`fA!kW0!gV(R~Sbk%`ZV?_lWzZW6V`EgRwb`T!`N zhOrC0w$?Q<5ApnUH56D}dfo7R!m0}@yu(KV9GNK73e@7K@8>$k1ujz~qubmBY*i2V!mXbUn=6=G@aG-i z2HT7wXuj6LZ3npWyqc+6ew?hNguRqj&2~s#2JV5n`?+Ul3C*BB$jcpK8m0&$Q!Fn~1_dT1x|3tlypqCp z9R8gq`h)-o`$iw%Am~_BSQ^YM!px+}icciG@$v>{Dk;tEey!+?<{Cu=>$X6Tbc6rq zfvz$pZ^pSGEFsXCw=?gbIM7Xdqe+YA@|Ez$BfOl=>1{vAq`&+DONCDpM zm!lJDb0uQgICA*q`pq#obN#Yenxj+Fn=z|dz<>Q}H+G1+?1ss;Pa~1x$VUcM_qcPn z;dNy+wei4Zn2~vj|ILvI0~pDa;B&>+Xg=3`%?Ta$35;+q{*9mUYBvQg^vLf8Qgp8) zMNjFSz+F`KsL90fccjX4V}MugZL&v@I7^ulckYZ!%(tl{6JVrA8EYrZyDwAPR|{Mf z1)ggv?W2L&HfaRQ9Wi;5RJC(TEwQft5|ua$RSgr}HRr4z#XKMwLJtP?z@D0N&4ZQO zcq6Mf2=aZ!8}?vN^X+I~^838T&7P($@G9&hss|w+!m*J2d05PhIVgo%nB*^hja%fS zqf1@>vDdi$rn5ixGiTh9ef+V=A2SYD?Y^sp?y~zHagZCBdhL(s=V02wG*|IQh_EEH zAHQ1Deh_|7eii%`2f5k190S5b_=wbeb(F$2Y}q(9G+rWOOXIWdaPp;CF8g`;wXWaq zda!HR9gN)vER&lBHd2(OI&>C?&RSDKzXADX%M-UzL0K&fhWqg`{sRZQ=}6#oIDh%J z`;s+a8v|?7cX$@OIkp#sfz6+?-F`~-e*C*$>t-IJ>86C>FrJ1f*P_}QluWG*4MmUj z2&fQiVM>~zs^nH4-dB1ua`fpOE-Tyv}YmB1hd57AIbs} zqm6dd$@Soq6G>P*k){LPA9;*M@d5thuX9HXDW4i{W%<%c1c0PYw#GmH)bLe^?tw?PTZ8mIPmA0~f z`|I7LQ9VXGLgcZw=2 zSF{afk_lkH-2zj{9T!%Qt2+F~A#zod=eUK&Sv_Qsi=c7l)HJxxXj^lgaS!FQnybr2 zaGhC$tvr6YBe(B6Lk`=9>rAKqup%K@cdQr!A-CFD#o(Ah4CD;un*m?J?{=trRr0~C zg~4&VyLJYzI18pMjNwexfBI1O+Cpz`nOm0h`oA9PrjPB#dn5OHXKjPF;0xt*_Rj1T zn)Hf{?Zcxqhy^SHcq-lZqr0#MWY^5%^Y1&%P21T{qgf?L#bk#QT*S%M5K46|0+Yjq zDW}yc{vavD$prti!`vRzj8mPcn+v03`J=U3l3B;EQF13OjE?3fvpn1l;;#}_+QwB# z#>P+h_a810Jp&)HMzTZEQD|Wl2s?4VUi)2ODe=Y(LwI zDzr=DF_cS~?aQEFkO9C>l9CI$mk9_~L*<^fLUdfT!8NT_8Py6$aaFdAT zIp1G>ggaV>wKupaa~{iLD=APyq9#D(Bt108c7L21V#Y1+i)TUz{F&pAeS_O6{s|>Q z(Eb=(n6ba?4Q|&C14Y$fV&491mGpKM^E4*2?HhO zQLBc!Cc-e@*yE2q(hUZm^f=(zPjm50kz>uEBLS6*KwkE41}wSA4m zXmnL*gjhuH+lX<0bq1GfW03py@>Cmw+%?y+$P?p|p7=%tF|j8015{1z&Hk7-x~F>z z>6a>oX}X)fl-Tb@`u!8X{wTau6TCmlEgZ^UQJw;k8U=RJQ75rKS`z-uX|1$#2cAvm zGb%A;r0^Yz?uZ9ZFSjM}U}i2Npj=i1I9rLHA{-tTVf=O$VZ0WhZFmu^hDZRp!YF}_jP2KeSgo9q)g>8V ze9|gOWjqSu(qmlzVPFd6Zo$ZM$0yR0I@7P9U|p%0&)Sn1RC1^^JV;!Xnf-N9(i!$^ zp&;Uile!eX+e*dx?;JyF##{X_j&XaAARPr0ie`pMr-M5kRnqCysv+cL^iLq2&VOsw z{(aK<)?5GWRU7z^f3j+C3ai$+omFGgC}G8}lg`$wrm{Q`Of}e>6*NX|TY9UArIWS$ z$A7rxAqH2{LNg8@upnS$BA(zkV< zpXE` z`XnFS0|jfjQ{j9y-IUCko2#_8-QPwu!CUFqk=96R+NlF|BY{gF)D{?g{l*v^cjgl_X>QgKJ$sutSN|PQ%0q=0OtDC~Mo6 zW!4d2Ub7eh&zF38sMLEP_NVls`@rzp``dmS`D*0budp{&x4ti~!w+HuK=S|uGLYC# z7A#b2(yO2S&C~B)hb}=Q{A2=;xvgx6lY)q8qCZqgffKF~3oE4qYEpt5p@dK)1^<$! z$ud{EfEAzVl3Ltlkq?y?5w&#WVSxBU-tH#WYYr#^+Gf9BSNN)w+b&sDMu~ZjN;>x9 zqBZGaMfr}2s+|cn1re1cIlh2#PTZCk42Ouf=&E2sc)J_iWf+bD`~jRH)|*uTj)J{G z&*HD^aP*fPSLzZQQAPlAbx#GQf?Ov=-%;eXDKrbjOY-2u!5Sz0ovrvJ6f?eF?y8Ty ztD1+=V2VR(kN`>F4W_t4(iQ(43-g#HMkJ$fqV&$@K}lK!ZC&91_zu@|$g@qQ0o@s& zUi*n)m<5xeHN;LH&C(;T;%AylGx==<$3Fxba%V>E>C;UmGFcj*KJAZur|VuJQ6$g* zd!WkmA(FUitf?R)P{Y!2xviS_#W#tilwQW4VhCn40`M=Z9Q{w;=_X`9=%0M28@JGy zwH8LtbM!BH$_bKY7Y*B}_vdnx9D)mc_a|hL9VBc|Msoh_5oU80Q0o`3J$%WTZ zI@XjYu=EmzCIog>Q<&Pg)gHf{g$ci&^rP0hJ=z|KO#W0E%=m2o=JjsjPgD{HT5)*DhAR5juNW zd0Z1j7!Id@d4eB*ysIp$Wvd7UYUm~W7z1`oGOnPpi&^xF@nH5{X*5M>pXDT@&A$J5 z*OTq_PcMzpSzD7HJ?TkkF2l!A03%s%(j*1SJC1i#k>vmMM-5+f4vyqDPxs_<+1jMX zx1HdUR~6EaY*YiZ+#?Ar{NrB`Gvc?4v)Q0zi$g}0EiO*lgR%J0i}eD=;v@Z<6WqK} zh4i5ZxD(@klNt_=`zuaxlaGEIe5574Y}lSzB%KUJwepPok3}4Ip zXKjZwgm)-3xpUY~A#P)%)E{)sZUAw9cC4s&nyf{+wOZY4Edb#f|H~6yS;=I|t`aF! zklU0$32ThYB__&Ea$1;d;t2SOU&yd^N2>7d3`K{H}m>fu-6LrXeqF}SRN62irKU+ji`@ccnP@G@|NGf zSNz3jgt6Khr;pz2``+b_82zC~F_|!v^wy_^6&S3J^cTF#^^bnwQXL-;K$zWDy{i+scOnf-}E=W8wX6@Kk{xjAEU~Dea?^?2P z)k=H4rbKp`bV2?uR%f{(3oX?k!-OfGunP@pS5xU=drOO9i_jO`4Ptx zxpq=+M<$WIfd)SnUprOly!n($8)~vHrT(YgctE@$N}b-uEtUymA>B=wZj?llmcDGc zq%u>SXM=)o#9#N*-|Oa-4fVQ)S-8*-7S12?Er3avziNZ)9WvjJwl^7yG_y`>Ac!%= zAIw&I?9-SG#30j0p3bCCw1I6saPS`eyST@kkK^^5rCOyEh{bBgr~j$MW`2CkCtYF^lCXOG-{0?cnnjUY25&Yz z%$@wqu7pB=M&ad5{3Kp6tz7)GCc5hJhn&oM7Sg}otue*o?DAf5Zm)Q*R`@5s$bcVu zEpR7REe9(g1zKgBt*SKWUminqTJ&SSk@v8lOWDGD(%&gR7kKs}dQXKu#UJL&y<_Ad zyW^Tg72IS48vkIXk4?5JsGk9`p`nA@25n59&=Vp7owW!cJ$~jXu7VkG|5M!JalP19 zATgSVmU>9hDUagXf94d&5z78Yr?_t}>O~$U%T)dKQL=KT5~Cd;?B&gozCppy30xB%;NDxsZNtgRn0kGMvEf z-3VU@w+d|ML7sZ0z=Qm_%F6AMka23z?6GeAb4hVZRa9(Wj(hDoixLnE1a-{cR$ zEy;8wEegxY$*8@iG9hV&9|S?Z>W9qxADoW$^928=)7^~zUcmSO?xC8*T<)?hSulic z3Wod<440i@FnrS)Zu|sb*co_fXW*qWLK{EzpE$!!pY(%=t2>?8WsutpzMxdhUiQl~ za5TXlYuPfnAokVogwRO{rskcuJtOxD>7m7jit)ju2gD@aVBEY|lODuiFhq<)*OPNz zW^t1qTrx2vW_5Tw-su#CTVGq z>Vp!>cVtu8;{(La_KG7hGBniYU<-!MO{GKLQEx`>oNi^&MZ-C@^#XfRA=w$Bc+495 zqiF;lQ0bM18O(DXNiWhi(`l1^a3u~5Oxk=3zPSqXE9o1 z;qb@0nFOY%*gypC1Siz4{9#XA%pW-8g78N>!Z)APN}B+#Wni*&qFn_kUZzQV8%a}d z%a+XBF|YlWT3vCCyEE*ez}^|HiPXm4O$&=9sWLm;dSZ$oVi^BBXN!MQk~md*v*lzv?YoS%{$kP%jF@s3vT-9X#d7@T~FQ^Mc!{X z*NwGw`cIwfCc|EWDVonBiUQ2i$v)*}&FbqRft@9QuLmE(w#)e|`548xxtZ`UEYp~T4HrQ9UUczm! zVB^8jT0x61SZt;Wk?&%OsvH37&|G9J7&i{{&`2R=i zJb5g#HiQ>4s0F^ub>{e0{=5&nY5U7o<{aA)L5$i^1oql)Toq6Z;1~{T$~%Q$w^H8o zpg#>Z`E0sAJsw!KpK`d;+07&412*5B1A8$Y*2K*j2Q@2JM3npcH4f_gY&_aq4n~7Bu z+7*>fET_&!!eoavWHPGNgjA^)&%IHk{psLhiUUxWezxr9CrCuP5`lv zbMbodT8pe-Y}$rAD2v&9iqgHcduk&xl~^GiOh|j+uCkxY#0o2xp!Yl_r$+ zSYY%3iCChL1*Kk|ATk#jP9GzkiC@G{tVPb;k}XXXyt#!>+2lC{av1n&)vR4Q>eEZG(XDJw7*M9tB6u(F-pZrZ z-QdxxSFapb^JuAJBVdb71M_ z)($Ld7~EHhHRQJd!;{8s32^-}Esz zejxx3q*`gYqMGc=f-=#-~CX6b6%Kz%)Zc(ss*f5*Y{BY6R2`>x4`PH-E+_-2x_c?I+!|=Ha`KeA3OHTw`Ab`eLQ| z6|lO{&0lrNl_6}Tq^fNyCzzweVIGT>RR%~Zs!w>=S|JeHgpW0U%{-wa6&G2Lv(Ttm{%a;st)( z3+oYN>_L=X^JgkS##_t<SlXj{{&xL1>{)nKR!SZlErVE?zK zA0}|3?REy^6Tz={@zN&ctOZVeXpGl>7RtigiEz@kaw zzcmOrW(~FiMdR6sTj3Z%SlcqM+2M%mFLt|7Nz?>yjOp>lQW<}{@CtXRJBpmq zo8HpV>)&$)=4@**$zOAYJDT6)zs5KI=2w3WP8goFEeW9=NtQzYfAbf7%^g~Mr}av= z^S0~lZ>2A98`xHF|I{np2e;kF4wdY+K2~1k{_KBuwL6N_GRHrk)oGdU#=hP49#%|5 zxT*rqbd_Ok@e2Rafw?K&cReO%0g1Dooyy3`#232sp2z$yt8>$uPIIlTkNJzf?)GTe z{1FgKjQ#kHzyG>BBHJr#&?WysiM3!*RP}VDHGu^mzwr&%xSg`4kdn7KvnD1p_S4^V z-^w27U-K zL|IreFH9$tclC3xb*I^V^bR_x-@oNrx1wVo>|9YANrIv4b$;A+lt6fs_t$|Hdu{y1 zbuO1{zJ~l*B-!{<|L}L*53}cOyz)lZlFgl$EfsxwyBqEA`mXy3x8JzQ{W6<<#P4!5 z=F{^$t-Ae3Zgvmz`-EFSw)6ad-Qwoc;AgkEJ!n7vd*n87nciycPrcQh$*0|I`n2EU zHurbl*zI=rw%j9Fiv6ZrTo;Wu-R_>|{@1@xtMfKK^L=-}v&kXJH%{)M&2AOVX5B#n zv-A9arY#fwNq4xnuY2Ze*{E+Quky@FG?68ic^C2X2)O0(*kRyFtCART-?2-uXR!5~ zXp`=~Pfr;E$=uqDwFQXIc?-??ri{h*q?^RhSdPbknMq=Qz@2W=P#Nz?rL(6}N$<_9 z<6M-#HmynDv%b=-815_LnPuV%wIqB8)lfD36Jio=7a-6OzL(P;!7Vsnt2iI+Yn;!1 z2F_|%-?vl)*)pO$utA}L99*qL#{zDLHtoLLU4d>AbuHqGiU;Pl$)z!NoM&1Dgo)SX}>g( z5}c@=xh8dmi%);3`l&zIxb#QKxmRR|WU41iKnFxs5=B{JCJ|1UwWONZZUSk6lzk&W zaW@Vat#UWBLnp@FWVx;h&Su&ax#BE9U&y38Yf@C8Xi9+cKsb)DDJh|9%#CmGAO4A( zdKfji)>PVzTyfB#HD*9sMr5`xFn|cEa=IasqnA{iC7C(4Yo}X$7Kj|rDpC#?I#&pv zt@C6ANccw-|In9y>MGe*Kj){!w^y{8bAA*jb_5neNCE(HM+LreEPqB@oPuty<|?~1 zOYjZli-lfIdfQw$NIYbB$8)krn|u-a)F2X0_P6%2B^1=t7uWAd7c(6&Af>o ze9O;VTQ?o%q+0>lQx$7Lq&%Z%h;x4C#*Ah4r5wB9WNx!wlNNv2&)melf}iW^tW+U; zi*ul==)4eerJIBs;SdH9P5P3MkjQKEi7+mUZ#vK4_%kIemJVI4Tw5?Sfpvx0Txekhw0tP7QR*grrxXAWj;O0Xa zr$`G&tR!u#u(mhhxZ*h5m24^qq16@Ey2(e*4O_#NNQ%}JTOT-33Gs{|-rNc<<)Qv+AOK^n&}FysfH*-^R5_SNiiPCv+%hR1A`i|H zs6>*CXEHYMzpoK@oN$L@J>b`1kg$tCV3&3p;nV4`Wg(O?7p*I()eLUgrX2f)_aY(3 z{+;)_orf4iQFX<$wq`^o8Zr}?q$sO4zyY}BkFbT+o~}**bkfTc+Ae~d^pr;#nvWRB zR%jlErD;Ip%HgPEd!J?tV(>xm1slRhjOTW#QZkJ1A$qA{nX4F2g9JQ#QC{~WiB%N+nJPp39 z(&jI}57naG|L#6Fdy*j*_f0gz*9vghQdyM&;g6s5D>t!?_{6zgNV{kFgN*KWqp^ACc@@od2yAqbAnCoqvBIT)4CSN4W`~(zeVI4PdHv$Vh`-qQ1OU3rd(k z)q+x6UVqhZUDtmAU~Vwhs?CIppg15vR-N)DpbU?+(Qsm!Dplit5^ZOoW;bbhfSsz5 zY8@&M7#iO|D4Jppxq@Re{;&bf*Iu|`1JwuOlj?17?x>NN3-6TE*aU0o7>>FH@QXg_ zQP$h?q4FR&(kjWYRw(gx8OcUP?MO7*pP)Q`jm36;eN%Zrc(&Ni6dMawT;F80#`ov| zB(p9e3Fhil?0Q<#jDrASu=&CV-Ix-QQ4&EVFm?MfcUos91I7t6@T~MfH*?~wGggbH zk+L`?LiO&6bz{8nx4xv^pYx#Wg&BR}L9F+)mJfX(89W1qAc`iy5T=pa3zK6DpUp|5 z#J`l}*6LS$2I=4$WfN976HcXfRrpn|u%oBZKDNO#W=>2KyFXd+O7pRQpPULFQcfaz zz_3V}T_Y*K>LC{w+aNx*@JBu5#v?>SX%=;x<)wH%nJ7k`t!+l~NGAT%54mYOl>tI4 zS(^+%x^aF*(z)XJGSS1Fb4fHlm9dC*$SrjxBL#Uh4r4zedPW|VK=d?>t+*d(U|!vf`JVk0GU|b?!WUedr_-@ z@?kgowasF-C{qe&RM}JOu1bvIZ%r+x$gGs6BrBmA0!wTNch1wk4K z1PsFcZlL!hjt*%CQ|+)L?S~ynMf)MRUG$gyfw25(09ZIJ?Rk{|$oIjW ztSZn1G_lN+cDBe_EL$^HoViw+n$JP>B$((}6#iLP>6Xtqmv#zwU@lY3-G({TsS78+ z(CAn$1fd9BC6i_1e&yyum*49VH>z(E-Lq9P4A7NOlkRdSqUEWYR5+6d1>K+Wh^wr& zO4FnR_9K#`+jaAYG*K0kM&qFV9&Q&F2yG4#s!z)=1TgKDz8Kja@i!?^Ab_#Vgn#-! zJ!1Z)?|iy-oS*clYtIh)!AGg=X;CcQa2&Fq+u|>nC$L>SLA=D`z&JiZKXjfHL@pb9 zo8;w8`k5%b^-hcv2nL{edoXOsxG_`}Q=E)jm4Redl~LLFBu7cJjIWQ#tslYwF_$}X zmt#T5B(SwJ%d-%Sv~wV?R0_!?$uo(V7QkLU)XL+I^rka$DfLOJlI&-H`jbvsI>x5E z6GOcFsvdUq{0z6OGM9HXEc@TknP-$|1D3IY&Nze6;-~lNxuP;_xjUmghi9{vXHQw~ z4o2JpBecM?mcKyNqrw^G0o{R~qhxk6>zprvzH9VrdG^ePi>UF!RWDfgS<7=LGxmYy zxl<~1guvI@I+V;=ZTfCQkJdD+rgIobWlpuJ;Ks0bTbs;XKJ?lia?{wu;1}&DrG+&z z{&mr!a`O%?jzhvy>@621Eiw3zo>( z63-xSu*Kf9R0(2Jmu45RN04x~c4?Mii=-7xY&(*5`&KB6l%@g@=vPTQ z94KNF0DxU-oR$)D8Jb|ml`%ac44v-=V;5&p?$T=ThLLxrr8G{eExLGSFNHy?+0g1r zyYy%xALG^3DqsOF`FJFpQ>t|ESsns;1>V53LSW?0MO!nCXl)=#y> zG_E(*)haH66ka<9`<1Ff&=hvqm&P1Sp#pK~{8;_7&bC3)c-H!kKe=9t6=}bPYnfmc zDGO~7NskFZqV$J}18) zA00-Wep0MhwIV~X#TzTZ*)8Mah)<*>`P-jyOWWD{pkRxXA*sa2&$_+~4!WVUNqS7) zXRj?x_VK7(aRDJn#UxtZYIPAilg>FH`kydwEyd#`q$n3OH_Hcb;d=!`{tF)b_7vYS zD%b3nP0i(Zl|aOSw5bedRlJ1jOZqiHQpVG?14)G8xu#1%iY6@o>?ADe{>5JxrVpJ* zYOZ}3h}Pku#h|~nR%W?=Iw#*Gwnc6glh(`^(q^HZRn1p;f#{r+9>{XfgAJ%ZlH}HoHNOIoPC+3uM(0m zZJ(eXd>Z8A<)Pf!5 zZ+5hwbZ)k=_EuPg;cZk2i|3Zv=%tXr$MFkj@cSUEYAsaBom~&8v9+6Hu?z*6%rQNw z!peb8mFB=Xp^t=+Gye3IBcE<|T?J{qFrTMo0UXYoHO*L z3hL2%%EnP*s*l7*Oe8sx7HiU5p-2|)0GUA03B)A0n-DX}6o_$^5DAP)(E-N->vL)` zK(Qn(4Mq<1J}H364{gGq5|E6HRThkX$FarFWhRC##9V4K#ptU{oZMiB!t_C4)3H{C zgw)sg+#G4l%5ti*TCou>MXvE5#A5=gMba^?YF4);NgFgrVh1~ms(W<4LX9@`*c+!M zsxHiYb#P=`3*M})3wP%~TX5SX znSJoF+Fq$G({?8gw$z~0_hQ3nLEVyt1UL)}D)gR<-^98hGZzB47Mu*x&E9dW{IVt| zAlqbBfJmLQ^5MK!Tdit~5O>G`?5xpo@|2MF86+aEzz>uu>h~Ber&kZ9IPx*y^aPC5 zXXUP!?O4mZOtvESO@M>?Nv0K?!L(2fpOX4QjEY-Z4uvNO*WL%b0aGU>krm7HelWrhtpJjz6dias+ zp{R!hQQlMLJF==-$w9&{8qbwQi@eiI|L(eG8174Y)u(j~Ko|`}YqhPDAI3Ne{{Fwa z)w2aE=D-N|1TEP*#Dyu?Ad5zAQHbKu-bp;ZzuQG!i!Iz;G{q3Z?#Q29nL}p|BooQcdv*?=nDS^pVEbEThk5ayEVcs z=P$jtK(|6Dd#TYxcWt0f_7K}OdqYcQrHNi6S{ zB}(FGWJ=o6MlhxNf<-l^L;?C}m?=eKN@hVfriA?=Fr~o^+QblCbV)`QD3l3WnT)HW zAclFA#ugSm2#>NE?OJEtAbQ9FYDBvR=t>rgma+bIc9Wig(MFV8m%#kzZgw-9 z&XDTiFS*HeX)kF`I{h6ty4gb}vVglmsy0@HMkbY#IoYma{0zJi*X8%H1)kyYtE+NvC9MV>mLqwsrFL&x4?b0k# zv8wl17p8Rned(l+WcC-GZ8wOI;WZ zsqqAva(hD=OHzzaNOEY3D(i&e#{c()DKHyYwKk7n_GJ<$TK)nur=3d5{w6_ zbXhgY=={NHAn6#R^qlMh@;_yKr(nwPv@(0?#6ByUS!PE-W95LqG&5w&7Zxyh0Bjun zmC>w{3^T*S8mnR1rD@p&Y%fk~@;5sM8=zRK)`f}{-IUWTCA`A;2-y_!B6ti`P%ZXm z94hjLj=@g*{meQd2(D1gfbJD-dGs!;`ysZ0S1;gYH!T=Cc|zaMkVOgprjf8wI#Zb) zA54l+mB|}H1wg3A@C^Y(YZd6!OxZZIF%YKUAa&6l-;^&8;Wk}uJ`gx<@Ojt=_(zYq zc^)-!X=`_-Pa#k1Q;a+^4o$@c#LrrfCNBHC^SKE_%>mU*&?{3{sAx?HgO<+^>|8J@ za{2LaDJ~l?V5mr0OEQaiLA+Wz11MuN?Uo9}!AEitK@O%ap!nAdcnmL<&ZQp!X{^*n zM<}(yyQscG3BnMeC16pQV}}i-7L#1SdMCaoD|EqTSH%R%pcp1_h(ZQAhV5;>2nq%f zKg|onUlraWz(RCrSJbgxP@c#K8Tt`QS42gxvINAyaQ|o^Cq@}1J@Ru!gPE2zZ;mm^ znlJBeBrl!Ew%>@oVT`yEtZfg%wOZxPp&~f_OC+nRAa-cff#EchOnUhS_z-YCkkng! zJ%Jyjmwh%%7soROD$N7!VE=8F6qOShqwCh9-reTTBcLt%?NzmF;;t^imMU zn7NE2%wm|WBe;%}MCj5N!9olA!@kceov>=0ejttts3DZsaYv=mwd+-KU=7PsNi5JS zel`-zw5T2%M3RUxg47n41&LAxk1+|$!GK_;kSLIh3syZd_!rYjHsV}7e`t8ff=nh{=f|<#_ zJ5G&pLRal|q}EzR4kX$yaa2q1d08vc#GcffIN8UMeXI~;Ej-eMgs6e zzj_P?hp}1ZjT(~hq`6@&5j%ycQqFh+=iv*uDwbsCwkDI}%d#oHP4Qns_1cml zBYw>BIcSsFQc#j-rakfPby8_zUi@qvI+s<4Iiy<@Auo(JGq610GfHCKGG9~)T8Itr zKpxJ-e~@vFoq-|Kn22|TUkr0bW;Io%MXHKcY#3eYKnv1Kb}d;|6Ty)lts-9o_2Ct~*}OCJV`zD7SS^PP=C^3ZCrP?poMa^9U`u*76KS z2wpR6RiB?$6<&(znetVNf6Zqb=R2z^Q-fh=s;Vc|WPplFhHC!sYl#3Zp2qYE zLJ=nF0m~wFTA0XHRhVSPriYFW6kO|oCE0EV$!KQ7c3xjnnBa&dEds5A0}u&eY@@Xx zYHTXGikJ%ws8COz+cZ^J#CK$%!$MsXg;g325;RX3aFu3)!JNE57J<=|nyH7$-ePd{ zo=I5Bs?%PpV?#%>gtH-)U_h%N6l#~7890T78iuUueS(hGjE=@qgnRTSt5;CfOyCs< zk;yuk-~>sm9>X)bL!7Sp!arl!hCnb=3ZfeP9X1bRtfS>Yu2S}BTO$epv&pjm>L30f z-)LoW(&k}XY9yOWvuVYn2jTCEqm?*4zwy$OI6#r60<-P6@O zyF0r(3(Ios0yDz`%PokCfJ&nXA|e{k81Ecr(L@wAhdQXJMDau|yixHCDn^s_h>ExI z#E54w;;m>DBSw=D{C!?k_e}4yOE%{F{r|rr%ydt6b=9j^@2>aw#tf_^Ey2?QOqjUr zP;kS*z!+h|RUIQs%I?CpnADktPES2-SEt+%3F%1S;RRz@R+BI&ZRRR;#ehQiAm5t! z5J2S1h9{8u!-*sX~8cKQRcCZ4gmi5-?W*C@MRkc?5{0*~SKFZa0=6#Vj2(&j}J!asCsVLU2_! z-NKJG{8$tJu@b5v(w&h_C5wJSBpHKr!nmtAKu(STj4PCf%67{v7tx2_D@=?7E0KBH zoa9IaW01pLqaHQLCPH&FgS%Z-iWVoPZ9S*n+o6ET!Z98gz+qm5B!=6Io8R!NakUY zpE3OrR|rG7mDw>rl;5HGZUSLHD^bjXH?me#PN65G(i%lj?gt)px1u52=a|6dTY1AV zm~H2W_M&dmS&9E3Tu&{h*HrK|@|-@jhgV-naXN|EOGCOzSY&rXQ6@5ONdjJwU^)5` ziB~2GuH}`&XVHp8A4o9(sSn{!GouN|uxaNq03q6@Z<2yD$#Ps8rT!VT7>Us}LPQX2 z9Eeb!?G+(HjYR}7DMAE4h6rGrK?Dir5rwiWbGxEDp6BbW=wek_GXIJZyP*5mc@q|m zSX@>Jk)W?df*O!OKyKu4Y!?Rn1}tr{Ad%}!ce0WutW5R>!Ml*AGu8aQg2tScu#IhGf@#q1Om#!-V4)w6VfKM)M={I| zrBH9N+=wpdPC~V6JLt0bpvz>?L_kG@HeYR!I%z1|jyX(zO5146G-x;GvQ5TZu-W#r zoejDyHfT1f;GLwEnaBjp88y2%>avYsU{dfA84xLteLDA;U}30XM~H50^lgNH{DE*8 zXbrqmyjn*25gN(7Kku1rWQUcX*k91=|@_e*MAWR(($#M0@ zhmyUL@Nhk|x7TlvRPcB4#a9tYh#V#+BNJ>m0gz=lL*T?{+3 zfQWfr)fi_eRgwwcBW_P30c%dnNgSO>`zEBD$fZ~qoe9|CZQ0>B5<>^=+=b8~L3%M* ziI+(PZ1~M=q-grbK$VJUz9tuM^Y|7A5&q!oU*#I=K-AU5u;=`0(0`+jJ5#{Vg$4l z%pm1*ppM7JBvv&Om1TUAV$;M&R%0GWk^;%fDw%MIgrN@SO;0pm&V+BB9-lqBS0KKN?i&ipq>$yTR#drpY0GS0rmP{eLc#0*;7NQ zpf9$d0hoC>nZ*lBwv&*VB@OvN)e!O#+D?QFAgLzUFwthRq6ASNlA1KxB)o!2G;?H* z>7kI1Gj4!zL!(v}k~r{^TV%~gv;D{d8aAu(0vTI@CcNhsM+?sRlIuwIVhOu zCu~dsmnao>Ka~Y1V|k`MxzeN4$)Hw((evzne4rH-rtwKA>rQ-de0DD}t3e2e=m%wq zvnG6gFOD63Ceke{z;-0^NnTTQU)!xfhK38V1~FampLB=epp3^92>{B4F<*vLffNmD zN0l_Hkp`o~mk6+W#ago3FlGTW)<{W}i9Ra}ho&Ira%f)0ls-se$TMSrdh|#7$;a z%c5Hn{4kl&Sh6OY!c3fS&6#DCnk*pGncD##1O^@1m{|cSNR}%!4G2sLWjFC;u`0zxY2CTY-mby#gt^w1tet?SLu@gtdrJP<-8dMQiK|uHCkda zaH+cpVp)eO(*c*ICV+AeT zfw?`wf|eZ`%;`AILpC;?)tzVEWn#?FR>OI+RrPpZjPhxD=8R|CBM;(VW& zt($xrCw<2fbs$H_N7Kv6PdI3JzY`&}iv|amb8|eVBBTF^Jj6LmAJ77j(jX`F9!t95ihRq{tu$OdCoc)#&s%q|~wn;Vul#fs>?-LNG;ZX>fY3?qyvGYT9FT=dVn`n3m0?Xvm{ z!XPF;M(lmY#7Gu*9E(ugaIO$@F|ULRU)p3A_K4{~B^-1d;fknK8oQX?jk^RIL7+vB z#0)>KL$Q|RQrrSR#AYq$vhpgM2a7_xs+8%af!R**p0Oqd62`#I%-y1CG1?}Mx{>a_ zGSe!7pw?!EC0IBW8R0o#sz(m;hI}tNiW#J12@{i139!m2VWP2yyTycws!a(nk~3zL z%krvy2{8TB=bfH~6;u#27BKL+RPYO1sLhv{ENLRee2Kyaqk>i;%WT+fVA5wYBwor$JV3i zl|#HEohiCvsCNJ#KOE{k>QYx~_%QFhVv=`ier(iF4D<2>mYNJumA5E2Rd7z0Jp(sO z1PhZQ1{&|eVx1oD^_4D$4fiJ2qSQf?62V1DiVRS8?IZoO;ofe=o=H)&QNJ+U`!0Fq zhmY`1+~?n>2XlmjP#YC_!WadO`VPZEI5(MrSi90u0xs-P0%uy?Vb~P7UQs+sz=f5@ zdDnza^jq@hx?MHbFoF%PKjPiDLxK}yayVCiUzIn8F zDpv<>>z$yl8{_4<_4pWXR8J}5iGU@_%bU(Iuz%u61vcp|y&2A1djBoG`)Jx@tT&0L zui47W=@Z6!XYt+L%Dc+my2pN;s9)I{G8m3x@;2U$(RW7FQy)0mYu4W%=Y7xKy@C%0 zvoI57&nOo3_{X+P;;?Iy2RJMB1J@*Pk=$!7*Cuz8&*j%9kLGsnx@7mpXylJ`_Ed0j zg55ZL%{-@PU6&js51evca;ba{UYgurK2Kem93Y=JE={hN&nvG_Hu2f|$n|KZa^o*I zCQsJ~PxN-|v3jjA7Kuk--CJ@Z`>t85TPJ$C-s{(TEjt_Qy~uhd+x|0a(WBPt&nJ3! zxf?#w)swt>ehjK4ye$rK>uNJs&0 zH6y_DQu&Eey}>FP%FlAke31mA;qTHTw{4HokiQ-Dc*zdl*wXMh_}q5*yY1j@@2*~} z&)LB%w4cV%N!~Bg(O?|<*UKk)|qAR`Qz8|*&OSNEUd{iOfD+2#8EDc*7@g5KFXqEO^MO)>7{MBHaU#C@9N z6>gFHRJY+i9Q4RK%ktIjxsNG8nUMmN9Emw8TeG*(Y=ROya)LsMA3=J|JVEl}%!~X; zjygpANJad}oPTHo3Ai*3L6^4tNNx&0YKpNxM`Wgi{?}CRQDE`#H0a2An%b5}7eN9< ziv!7Zc?o3IYaRGx1X;LashchkJK{Ku>EWNdct3SUwa%XI9pz+JU+D;DAuLNxzu-Lm z;jZ4+hdlNId3-XX*+HeZ#ml#J;ccSjwMly+E`-zYs$mX4O`kl&+wXr09+F<-+rXs4 zqPKy`!Mk}sE9FzHoXNhqTaTLQ4O5H%L>fbV!CTdRrnCI%7G%qv;fNi+kVHT1p3vG_ z)`^MOyzjA@-h5JCPT$>Iq7R?tjesg&Fw5)fT&r)NDOj?d)AM#;;!h>qJ-la zKGn&r*TEj%=+b_UNm)cI#0KDXG62Z{tC#PASn#y#NC>_B5jSZn?^Y*W2P2fdgRvp6 zhqidv7T%Fcd(ckXEGPOLW8!tjG$ri_%)y^Z17nK>SMNgEHK!{i;tGE;#1_hi3JF<} z2+ZMG*GL3BM)}BuJf6xrBNBCTR|u;~C`z|T3@O4BNFbg~>KFF#?&x^xT}m-xroLiN zZ?JPg>xX-KPr1$-edpfZ-p=~g@_oEr9p_5D_rBg(=gQWz_Vo_%okgwhALuP|D*q%$ z(g=}rGq33R2YcI$e%YMWz`VeH1js+3e4${9mBqAkGB2Toh;}8HY^9g$4I#5QpAi&TbeMN=sgJni)Fql^B&RJ7_v&|>ft!ZBKAG=G zNzL-o)~JdNt4m#0nPDC7&30a-u%_2@Iws&|yW?VH?_1Tm(1(5Bd+7)7T#pS+7Ho7r z16L3%PLq465S%XeH+|K&1MF2l@Rs&C0o@lP2;l`8zGnH7%$%V2{h_y|y6G}Ev%fy? zhhBYZTEImmSGWEUVfybn^&_u^zrGDZG#tEY%4tX!1dzzkH-1 z9aw|E#-)VaOzgB@OE5ImbBhDBRU>4$5+hseqpUE(CWB(q0kL1&jvb2&3wPk>lEd8f~s5$9bjM*2aP?p?YCA)$x zBrdCjS|2o)-dCBYIJKBpWU*mFlI13wwhNJ_x-Iuu5_5xmchQnyOp#y;R>mZ8SVk2Q%>N=cIMW5Buu*va`L1{_Oy$g_s0GBT zEe$;T+O}KPVLKVZ zP4>x~Xb`>#kVHfvSipKjy8s!Cdh)#1&Ok2sy(6q3;MK}0(I!+y)Yv>`VC*VlhFKR? zTCF^hD%R)}%jVVbCM-l!zAXBGWOZV`vCXB7XU;@2NOdcOv-xgj2#KczTP9{JK?!U~ z=3}`1z=c8%vVzOmWieeG%?B=Rv1PYg%iT6NEmg2rPPEp}`1y;#eU+{cJu2F84tS?+x z*C?LJC_6uGBiAVRO2!y2tTDzkXy+P@ixefvba&Z*ortEf6mYWL82b@dYrhECk;X5D!SsG}ysb%Ke%>5!yWvaCIW>&d zXg?>)v`BGDv>Az-EYMYeoq$}DXCbfa!ZDb+dLQF$KQwv_@jr8yoSfpx#>|r}g*3I- z+01n+bE7`x81KLa+MB*f8NiQ7&^%{PBit+v`s-fDdgBf>-PkUHe5Ls0CP|ox;C`*_ zIwIobL)Kh=$6UIQFnXJ4ie4$GW4s>CCa7LK3&?^A5d)9KXLG^6PM`XuO$LGEUoe3a zQG$v`>e2f;y}U;mmA?AVWjWnvu6JlWBMNE}X0Xym;=-CS=M1bju^Xj*!%ud>@V9Le z!4uy%|7kuHnNEoP(2XYMC7URhkb?|0;`+?|(T73FbVPE%uPmuv($Q?mz7$slna<1R6KS$HR-3=>pxVRth0KHAB& zj6%D($C$%(m0Z{{n+EMdyJEa8x9ONicA)4W z___CqbGY927v4pt0)g3sMIWnv^B3Np&d>CiUwU6UFX`qJy{Y0Pm~*1H(Ro@QeUi7c zbCGU6$-9i=NPC{_6-r*G=9qBcN5aA2NMLMkD;iX`vHPWAl>V}OReRA~k0^L?uajTm z$07if3&Y1qv#EF}Y&Np;VT!X}C%M_4{~Laczr%(j)%x#={wpVwxZIEo@MYxC1&FBPZhMAMX;?WZaCFo#Cdw9YlTDJn!b%~kWf z6N>sHH%p?P`=76-+rc!A^j|587WRXavgv)Rq!4yV#)G5BthlUis?+s_h88F8MiZBt z?I$kx=(p{}XYqQod5mVOMYCIjG^tYX|QGJBz zNL{jUty`PsWAOA}9YtBhnR>U=@m;Odm!0mN<=m?Wo$s5^neLj+4X+MYMp=R|Uv6cO*9 z;SJF>XL@~y!Iu!&Zh@PiOtv7INr(}tWn{_aEu{Sq&yG}3L)V*FS&5rY909~X=~vG5 z`V$oM)tTNv{n=+pU*{KiBW>z4lmEjoG@>CzWJa=Dr&|_ygRHQI)Cqyd$4(mvd>Bl~ zg(dJX)QG^FGa^(nv27vnVK5;LEP*!-+KFm$i+(#}awj#Mj5T@4ue|S85nj}iV|pT- zG3j4FR~vd&a$k&}C{o znOZTW8c)b8pXlq(!BTpt{`)!JKm^17=XyOF55=r&>^DakBaTGsQ6~_=%Rw-ob*`7| z_7DfyM2{8V!yg^$`ki*JH_-j!Qhm$0-jH}bAVdX3%$Y`5Hx$a$1N!1zZ;$cIuE8sR z9UTzF&HIAilNQnzTZfKiCB**E4*0~Q5+H=KkP|@&F1A9Se4cl_xF-L0p7)#X4|mMsP8-9+X^q)=jU7hcjf|b*now}ql4sJygq1lBC~jbc*K$Jtw%g19`S=N zh{R$PoheVKmcVsAg}>RVjm zok_UF-IsVj<|D7YLrZ4XH~_n3t~M6%hcs%^!}@FO?Jy{e@JI&F-XtO}s)LC&A;Kf) z1~%R#N$AFbi@o1%`LIKrFT^2fLr6#$6TB`@N!FbxLZ$SSX!9fW&X;=AqnB_lYPop{ zHZlolk(Z#JnxGbsw!gd7+t*!kudcZa5$$xn&t=~E&H?&^%e;Q6!vv#M=6ky8a_>Z> zxU(+zX7bx>m&bqm=5lXK=X$;672eEk!WbGa_*`CD$Ep-ZSbU`!p%w3Cn@nuUJgx7( z!rNs#^Kdh_Hps(G(ZkvJc+t}{Bjw>TW}liZVUP&I(=t!!?XUD6J-BFbnui%75{2-b zh8Cx9l95z7k2l2akmYT}N?|9+TjiUGm4{x{h6l&xt<5@*P5c1?OpqK~(^Z0*Zk*uJWcif7O$&_6FBKO$ItS`v$uNyM>`ms{|M)UG3cq+KyWS z&7Pu9UgB-%tZe=L5}fX3H@pjJ$sDYYz1G_YuKm=t-j10W@?eww*dp_ox9I3)0~ght zpcWl`LOCHGUN>ikKKwdwy}R^Yz5h~gu%OGSOT8iPvU~NdOTE2>Y9_A-q^L(T+aSx&xYD`>2S{@C$t}%7OP)&0GNjG}C?zK*iktT&C za;Bg>Xp(?nH*=(*DTV=aN{`Pvqwc~V&2(gXVZ}>sl_Uf%%!H(LsFWz+ni+InI@IJ? zC|X+CGyfrNH)6r0UEHkx#ZBITfn6TkVO<#8e><#kH*@sCj0l9V>N2*35(nhMF21q8 z*~O=2wD|lC=t7Rjg@Me^90GMa2d93fmn9Fv<6$2q&##C7g=#L+4!G4Ep0 z=>BaL6r+|}1qH?)Dx>*j-om|pV&q5(BtZ1Q;&`VgxhBKvmagnhTitR*LK5_Fjr@1B zGbLxDWL@?#q@pg50g$950!%f9(<(RI>g9L%T%xInObJ{L2>Yg;1k$>Q)N(kB6Akt# z^LkfoT8NNj4H3)PdOoR`tH=E%JxGtZ%^Ngkwd7(k;mZ6FQaC3f3EX0>9TPb!4_ZO* zt?qH#6{U4Wq~+I$sv!!uL+lv15fNgdUS}0c#33wPO5%s?$XCO7R+Z|4mf6CfO839r z8`bSkLas5PCf5*2C!ZhcLvHu#^J|lh1Cy^>$2_-t?`Yq!-=oM5tZn;Rl-R>id zV4*(gK5v5i=~{j7eer;ycu+%^=47HphWy^!_rHb91HX^MHcpnzs;9`jyx-f7+N7+O41TI+sKfcPS=9rvU+TEw-Ro;2cG>x)l%pSwt8k3H@E zz`0Qmd&c|4cWx}hca4OS7G)0ITIf<~Trrzc*Jy|ljJ|%xYbgOPzL&cce`WUal4rfi zNS^OJ%kG__&w7rS=27~C=e!>jt&MRTE&)X`0w<^0J0cP>JGU$b_Mq8$$|^yrlcg!g zH*-hB?XgMdtJ%$Kp7-iYbB@EUOZ(QqZR|?#{@q8}#B1du0Eh*mG_r5k>7*CDS*3x+ z5v@xwGl=%w3tmI1k8d}Q!GHAD7S?|#42H8h!9vSc#FQrAMT;@|>G>aFMX|qOcrgok z5kIS7gL!lYE6Z-V$e7+q)*|0RWoi`*!(aLlh8!wW8_W$PrGRhQeT+5*-%2jaj0)46 z#C9H@zz%zUm7e)a&skOMd0uG!PXzPy`!9N9GZ)<}Eo!}ln3&vPu^zgLEKSSr)km%J z1{da;Ib}`l#rffPSiFq5IBJsO zdq)Gw4(UxtNY0aO!@CU{?DLX$a5NFoN`i1AV&L3#BEa5s8-n{jHd5_-pZZkJ$VcI>OaCzRa` z`N|2MEkT#SXO_U97+-=orR&l-VjQNECFsIXq9u4_qMG2mp)Y^g>z%TC36a*1zw90B zE`LBzc*W~IY54<&DDh9zPb67*OFm^%9w}=s#DpE(ewDGe5Cs+4{~{x!!v1&BE8d@n zgoZm6+$C-6c&KQ&E4HlC=-(3xWoqj~v6maM+@ zI{UVFSYaotbf6VU0tvLCoy7AVgk)FrrHERIX0<7`LJ@95t;Ds^j_jISLaksXh8aa< z7j!KY4UTQ;ZdkF#CXNNYT>`|oZZ2N$BHkPBWb$JKMDjXOkCC|zq~s9;DQ=YXelD!u zp9%GTZUCB4@8`nm{oL8C-rog+-xkSa)5xD}Qp!QwGwjK&C6#&SV;37p=VQ0OZf5M* z7>aU9e1rVQV;8uxMvNr{te{{oaL|s<;-Fku$Ubzb-`%8-bkg9<|6!b#tl=hk=?i}4 zA{Xu5O@pvHFkl(!VsbHA^D_~&x)yWM zX}b1f>RyJ%NO8BYaV8{l&`=3bEub-j0OT8{4v+c}oUmb8?Qraxq?BA-V9J zpiBajBRM=CY`<=Arg#f`osqc2|cMMYoy=u6o#bEhAJQQG6U z7=nZNP;ns2*1%j{dV^^}l!(YV!UXN+5s)ml9FS9Y66ad+nRkLX{Z9MLJI-05|NfcR zQoD-*DYhgr{jvzV=(+2>ab4bKhy2@Z*6|MOl8MDE$du2$YJ7qG`QZg&$?6PF2iHlj&JCaCFzt+v~7BIcs% zw^R3xK6S%iy#pK1|BS=)uVDC)Og>w?)4-lD$Ade>OV8B(zwr7^H|hiFuYwEa5m_~s zFGhWc5@IAtuoHQAjZg=%3C_C{X8_%0>F$;15un7kKU1Iig_ocBI>GNr(Klv_SDR^p zh*sDPoyf^xvAjtzI8thi6Pc)q*7v^fM!8^PkH2{bxJ&NS$NbIPp`>@j#fz@%te^eO zyIlHO_?6cy3alV{W0_H`N@Ku4T8iFy>ML(Vq*x_`M{YEVRoIrSBBi!gvC4i;Zi$EW z?O%I$J5ySZ_`CNTcjDEaC0`u(w~|4-Q0ITkwEp*Z(=!{q{_)*}ti^hj=q(o|9{RsO zoKX)sJ@lpj@+wC?-~hXJ@RBVRjqm@b9W`~MH>HF@1}oxNj7Ok^L8D(!b=Qw=^ezG~ zzWYt-ITfsZ+hATyrT4<;M5TZ18zM4~ym*#6#MyZ99crpwpRy?C+=e8EEIkTI)XU$b zAUUhYjS>@&1tCT;6PvL}cUg}w(!A6%Vz+!b*e3dg(ziLP8VB9|jyl|N&e6G~>X%vQ z62mUX667djMdmTRds6+7AAgrrO_|3q-A`{Q{1%U@PSU3zqRO_lmS!A5?y+BTwkWkKr=^e6>4isqzJj}ocYdPKGA=@X+cuTBkd z4$-&Nsr#J$^bdPrB0NN&*+VVoYFxeAk*gEyRg?2)eNDY;MC^T_UJd+jsd}!bdWW1F zs+St(E}5^#^itdGyiqSRfokv%ivCn`KoQv~{Vgt8~LIcMlXo$H6AsNZnWT_O>vm8RL z4VIgu$XVyse7BRnLoau~rxy-X4SPIkZGU1^lZ5%53mJ4uq=?8eZg|c_98(ewC^t>8 z3BNpfkN$d~de`|_zcEN1iS2ayU^Q*{mtyI2Wp%Jci80B^pbvqfO$Y~w@Vr-!3n#E9 zE!GbVR@;|g8BZkBC99*!>8z(Bqby@MJkd0>XytQ4_4Fy9W0jg!0R-^kR)ONj zJZRSW+Fmz^@&kQuvf8!;(r+~u{o-Ubx-_3}wJe*TPZw4L}X%xSihkYAxX&BvD5ts z2uKFJb(08UxyOP=5yUn~PHsY5WKJuHAijPlwP$JJ;=4lCAvo|f&KkIUkG!itVYh1k$?82Y(|oI#PbFK z!q}NILKKWXAKxj(r9m(*o+SAa2cpZYc{>3!4MeV4(5{tGc-WDn< zW@fbBH%)ElI9Kbx@1j;BIXyL9?Sv<;W>>YQ?3*(jqD8OLf7?}Mi;4RvcggwOV3kxn z;kYDjjBk>9%nY@6?H^1&2tppXgYh9)t{2Zxqv-m{8EQt+PMF3{*qYr9cGS3E9}W-Y z7>zKwlw{|a5nTQ@xxa(AKGoUX)mC!uV&C1>K@IPIB?SRJP=bT6DLFw#tE^8@#OZqF z?kZn@HE*P3Q|1q7{;;f6@C-+eH|o?Z)l_`5$xAtImfE>^#{{jNHA^k7I^!!RT_!oo z%Ysk7(xdiJO|@Z)!#ss$MkGvj#qaNdcOU!IqCM1j`Fws4Me52^^rw5MEuBB;{GRGN zHJ@LRY@s@oH>#k@W`WYnn;xU)k0;6QjQS()pvCG^d?3KT8J(sm5-lA)aOLpRIq|_Ws%S{z84_L8@n6 zsr|yQoJzY)txq1L>cbUS1T>F56nXPJ{lK9r*H+) z9Fk0&NVa0Jy^@h^gc!k#5aG~*VEAEbBAs7!nA)-Rs>9VwNg^%h{s=+sCjHirRA}q8 z5&rCBL^aGI;R!%4j5$Q&`$gO48g2Vq#rJnf+l~i>Ak?B}Hz5trTOftP_47x><-52P z(B;1Mupg_b)@49O_)N1=zakZ>+lsSrPlf{H&xzngg6RDSNQN68E9aa6{x!=VxH*i$mQsh+s;CcCO9MXpfyZWkh|{H_uiv z`)XVa?2^`Iw8TM2qP4BlKRHtM>{hZJMl)M9XJB^|(~!-n5VM$4XpyH;G$rG*5gA0< z#nI$j4Jwo?!~XP;qf}+I4B=5EUd>=bLs~RgNhVUlaM(L%dy5-A^o_;F+y%2*Nras! zdSfS|eLU_co3J>9VNIB;Gs5bPqCa=wWPqgQI^dFB_O@%dAC8Y**j`EKjyB1r1P4M{RB5h#H9|mo= zx3?(X#t$&em>5&}R9s4g{TF5Jins>SSz^KznCG<~H%A@da^&-cW7S}1aqHiYRR=qq zNZ+a>vL}_Yd7NHQ z=XP+vb>KX;ebW3u5*C&|DzTuCJ5A-C>3Z>LY6b@i-aAc=DimkR40agLgP#Kw_c#GtbS>O7~@O@oJ8st%d5A2Acak0j&`<-3Xa9pis;9SQ8O(~}mf zJBp2ZiX`-}#p(p-9(~-UYNT_dUV5q8RZsue-;t$1mk<5fr3gyXTZdn!&Xs+6-{tBk zbvW|5uWNcGd$dlzLY*Y{S6s1COit;mm#}k`es+l(#K-z2 zYSe*;Lg^s2RGFNC_zZEEEM!s%p07uUI${bFk!{JTl;7dQUT}g%X)~X&h3NBA_v|ZE z--*{lQ^`Ux?;3Ss#X{z2%+W{c#%tj)cP0Di%oBc{{?4`PGqZOp0|tv_F?PIDU1Meb#A2ujO764k8D1HEog1DzvVx4!`k6YF>Ljq2cVPsW?I_PI&* zbNb(Zw&V6JxRRT5Ns<#3EEKp!Qdd?%fVl6?YU^S5eZnfh29O0wK!#OvtphL%)C!?c zq1YZud>J~czWZj?m`-PbwH%X4WRBBoZdQ3y7Y~t99v+;}kRM*s|B`|WX&>7x zn%tzr(>?XJwn_MT%Zh)K1`u&_P%L=Df^N}91mzD{6R zO9y0vn^{Ht3b|6L{1Ym1)QJhdO%>AzC61)-6EBfkxQR;aJ5x!q!d74WI@M@+8P&#k zf$6!{zNh#C%Ez^&vFUZ(xt^6xQND`gzOyMx#9*i_1p)E-%AT#tmYL(Y6qM!$v!gEx zsTi|9Sj*&>QfO5Oj7W#g?!>&%8WPVE*BVq)g%Fn1%=r%zfKv_weHZ`pvu#TWzC1@KK3ahGeCjaT1 z=N?@1>_5+Y5c+p(zHz~g1c{hapP4iKs!_;#^utzNb1en?2onTM@9|Z-aHwA{yMUrY z5bKHtzKbd96>|!g3~}RTcf@|<1}D!kHPyt83=qqpNnT!952(zSY$avQgD<{G&dDZ@nc(!| z#XviAjA>@_BS|w;x2RX4O*@v1`Vs)not^iwCPLU{xfz9hmFXc00w>5vcxKx-5ndfa zRe);hZ(AUnOWw-^IU#JqoakY+?c!J&YMwwp28(MraE}j?b8eNT7{XG>$>RlrTrAO% z`h(x7;m&co?oPEs+OExwE+b6ogYQ(kyYGCUm*1&+H5+!}19>>Ta43Pev8(}#@S7+) z%k;WC)xe_AW7Z{im)b_X^MU+$;9cs+%79EieV1w`S=9Qw)QsxiCewq-ur#HrIa?8& zrf2?E^_uFZhe}PoTM1dr{LZQBDMUv`UqU@5%x(n%QRM?Mbweo^w=GXe{RyAa}B$iyv`eiHUQo?1ilWxWx!z+Lqd$_nQ zrS+lzU$}CmREElkhV3h;5 zb2k$#HfI23(qzbl#3Bcem=%qdh7# zyL5{Lo*r9R#xALpF|xeI@NV!uHcM8+49#wyj(QTrGJ|)b*vx2bt{oe@r%|>LW0Rq| zm4t2>nKP4bA;liDE%WH0t&NkYaCO28S_no z`^*)dU~jnZv2+=NtFq;z6MJUP&{y4~^4q<>PWU|HImqW4$0Eq*n8F7AHB>HA-;&jQ^zhe*$cA%_{5%-hTsH$f02P=ph&|b z?3jXQK9Kc=C38=33)B~cf&jz7%zO=rktNO6s)X#rl&-l??OX^ulb+oSZ>B}~W=Gy! z8Ff9wbSlq@gvOcs4?N43MGK^|N&>VrHyL#z4fPJ86)y4UL~62gl3+$Za<`92>|vN! z@MhmtW-ju82-Q_N1`89lE0flr-=~_kVI6YC{)F>FTMgg;5EhLY+^pYe)U-2{mZtVc zJ>&P#;E(lDzgJ_%ehBnca4oAYf22%uxvZ~Q)vAVUH4bG{`y&tQf_MnyD$_6iUhU8) zEfl2EW53Iz+QWo3{uTXI!05SRMI{Ot0xaR4USJ1!pDIr&6GE=}ZOWll=R z7lgywgKeTTfbb^zTR1;LbPL-|7-g=O=^__XSTH|Co0c6epLj6l1kO)E)(3d}`_AQ_kWXojfq$8qX5PpzI z(ph(^K^UJXpfQ`QWWI4$KG{HVX<<}}0IPd8Nm%l5!Me1`*(6d0Xa}Slq?Gqw$i_f+ zZoX2)SI{wA3IEwE>ku}^ix6RtgA@|5D^*S$hQ!PPpIMw1)+L`r143bdut?-5nGjhF zQ5mJ;uTf3+;sf<~mOv`FT06jMCEihh)kuv`=?xwtLNWRs7g@R{^>p+1SW}6TL_ot- zv5Q1%W7U(&fTmZ(*}w~yn(heQeh@TJ!3$uN5XIqCYnKs96W9 zb~t>=lA7qWN7cxIEVN*w7s9;w22ynkn0P^wzF&S6lKLUpiCEegeAuWf>_}v~sbGZw z1|*loaAX7a5LY|XW=k1e&VY1f{E?O6BL;_{W3uPc$PXY<_Xvq3jJb&U3!|r9POWGbyLAbOIfiEvQj&-gxF%u23jwl zfM}h3vXr05C*^vv%cQcP<{J3~9p1I@cu`PtjX|w{JgyGyQ)@O>t`7E4$f5&^IAl4O zKJE#1bd?!A<|3=UtbalcPeMWT)=#Q!3w6R%WlLp#90(*>@r=~DF(MJc70eKFc$76L zMLMbA0f}5iFXh4e-KzRf@-qomG2CaxV)S-`ytu-c6koXq?1p1!gM-6bGM_`-F=!f6 zD&#BF_sV3D&C_KPLRy;T>46dN&($+V$Zc_qta~&<*)<|~%@02pKxR!Z#i8>1d=%;X zU6Ci{HRJL<^I~SIfx`$XmA;T3OciFZ5z+u0Q+mZ8)PRPv%u>hYo{(x%g-~5u&R3~m z42Hjrf55(8rbj)cdiAoh11&>Qm`3D!%&gM~KcxmF%d)jP_p0g}beExKu;;+Y(tI%0 z6dzR*XWcz`gC8a2NZymk!zLvGuouh~jtd;wXou=|p2GA!RcD`8-&NFk2|LzTJgv%W zOs7dH<^ejP#ohHZZIQ{IR)5IDP?hz#z)eNyH%{TNf!Qd!2gaj8JCz45;BgWjo`xG92;KF#Hzz4os*D)<4 zpC$Kje}o5)xrlsGG-&5Kwn2?l%&ASV@!}4=By;KPc#+V0Ne3oVZUJ#(c%}k4VitUA z5ym9T%K8hqBZre`>U10-TWdB2nChu}-=L3vPW9>e;d;aZNZyJ?$>5Vy5D@sD$b77? zd5++p57+AzCaeB(JHcs^Wz$@6Nve*`T zx&`F1ad?nYAJOx&q3r&q2VwKTjdBxK6iEo1M_|RyXnM$Xll}8p!p(NmzkVLI9DC%{ zTrZj@rsbf|yt{WG!cy(j23C_xBa1lM1V^VtAKgo=K-rqP`J^$WAEK*}d5l2K3 zCLw=mCdMF)k_<@1qCDWw7{bA3;>A!+AKBTZ8vKlvYVe3MrXnVcEAkJUY{^PBe2UciaAoTtn#xomSoS3$!Ln}=0X=9&<*Bferzy8Bt5gs@v<;PNh#fJHnW6B$ca$d{Q;v9 z3d-#90?SHBif{%^{XnPy)JX(Md4l)+T;3CK_zgLRqHK*&MwR&# zGmJq;9*Ci%9{DFMx^}kRSt_%3A|wlxjqh3J?%8R}YRCa(3Ba<`Cj?6_rM*<^>61i| zMURNo7x9=Nf9n7x7%qwb@QJ|Tfrw@5qZP^=9XIwU1eFJSNX)Yd2z3gRTkLWY=OYXSS zg}Jkp(ng&Ug25YniX%PEdK3NiQ=xov{?jZB-_Dn%_<9UWalYAP(yYxUbL=LwyNc8? zKb19?wZN9aB5;v@8prhO#QrU{Fh!T++MuM6 z0EV!^Z2^bVnY)s?w7&Wkwa;*VokzhU<7yh^jLp>p5`(t}eM1SNAEJ~nY2<=IH7L7) zK-L#j!;QVqtN7CE^)FvlQ@STDb|p*LmDIm}4Y&PNz2bFTj{{y)bL-kPS^+vDEl8`; zWsiR)Y|6An!xRMfqv0fFRN-(8h4M&VP_ah!(dk9nXv$P~bx$n)t{T7AEX& zpI)E3xq9=vkhykLE4MuY%+|7pEj06e1fGHtLZ-x+F(#zmVgwMxm}|6HSJ<1N&^don zJsZ+3xgO>X@Q>19$7Fi|qzC_`25(7+0PlKk;Cn}=-#XG zMf)P=4CZ6mYWO#{+oxBn{)3B4*Tal3*8r^It2S8P9Ijd_Ts2?s@P_(r*|{O0|M`aM z?Ica_dUe`O>uG;hyN$;)-hpIccNB6@iudsD4Mu|!N=PjzP)*QNultQNY#@8$NHe)I zF=|vZLo|>!WEVG|?*Aq-2yWa*bh6!$1M&FE z_6pqDIYar|3v)PO)fjRKGuCE zDYn%b;RS8Pz|g0Zdq*{lqCs_s4Kjn6Xle+)oP47>AA+}+BV)7QLDaKVE&F5}CsU!( z6uHbc5_X(zj82sF-9JcV`(k}XP?CG*=gLacr!pPMA%<+i_;|`Ye7}8nuF;*88Du-* z3H!=&do9DMc^5w;6%%>2J?OTt3~KK=g2tuSg-74)>r(c0tUhS5GHIL+ps|oymT*BE zx2WAQfPn2T6a%*aOq$d4v=?%3A`tfA2INM_KDe~97?;2`9bREp!&xRvVR9ym4LsQR zjeT)PFJ+H?^RDVKR5S}QLRRLJ63QTQrXaF#H~LIgO27`|nv<{A+rOvku|e$p9>GX( zzW3C?oy&re5UAiAT&0#k3h@`Y3(c9w3@??vE3ytEt&~-X6QR5~_rS4vnO8m~^( zphl)?fyn^f4(hb)`>OY#h*_=*HNKU?G(Y}aMAMZa*R1v?=@Cx4C*%5NV=}wFjRuNH zhA@2u){vKC(i1F4^0V@j!pbEau+-*~57cOCv>6IumPEhufogK^x>x_}12t^Fb&mBR zb+DAI2GmFVUjc|0B&K7lCb>1*W6)dfpp%G|M7E9-^xoM!S$5ER$NH{x;X~Evp7Mt7 z_mS!~#CUM<1_w@5-XihS3Hr%yn1 zX)-&C*fZ7{`6={0nD9O}ya~%dd=kO7gfWhFTnj@LL_<`n{|qhC=pg0UOx$3TkywAK zDMkhx^EEQq5Yc6W%=wvNXLgO+Mg|)iv@_V?XDkL>w+mS9B-Y;~_kQ*>)himGtwt(C zLPH8`kru~C36+vT3BP81d|@q88bsrxLA&wAYmv4aUsJ~hC8MEc{m@Ta_6G+pCuFtPCa@qu>zo7rd}Rf3sfI_glL`==L!Ay}PmB2#cwMXQi`s znXmMgU#k3%R)9LYRw-yr^qw?wXCiZyu&gSvQ!jz$1eb1u+=GXK-p~hWBF@VMo;1)J z+@?>{7WW8&W_@TY&Jk%#$6|HTzyDGVPl;=bhm>CTrJ6qYW(eQyi!lt?v5iP@COt^* z+z{}CN$!J(AQ60}5B;0!Us!%7ED|jrYfD}jv6(nb7#g;ML2&#oTRkEn^6B^lW@fo7 z6Jy6Df^Na%e@Fzc{UIUJ=+4M)a2pwZ-pzdEKn%rbBX6V+;D}ajZZq`KAN|eW)FIA8 z`jD?UYVxeU=_~a@pIiAm?=dH&QL-Xb+qmAGdQ0#Dq`oX}E_D3ke8^y-?-{YkJz z7C@}zVxUY1*S#+f5wkE;pXK>YM!WI+DeQ{BdHzl{c1p6C#$%#)QGRp5A+ffD9x*AMF_4Z2S1D)3E-r&tV%14w+&Px@u4cVAUH0nuP^)FA z)iN@>?B;8<><~B0S?s{8W#FbkG;kWU8+i5D|8(TlGV(W5?55Q^UGAUkT&d44_xo{9 z`j&G4aA7hv75+r|+^xbt!s3Qv-x%CQHvo6T)N)+dNf;xEodhkTN$@kc5uR(~!cM|8 zXg7)Yfwp$;mcbo^Uyj)o*`p9weL$tZC4}d^O23|u8!G+doS*B)v_CLZbdDtEWnoS>6#l;RW`@bemqM_Ng;LNAR zLg{_d{=UvB`nI$`*7?4EC+!DE{M*{AavED?O_We!>P8w#K)sWhd#T4LOBf!E66?1) zN5!p@^_vSzEFQYgiPg{!kE-#jMOS2^P4-;e`rS^N>ljXOa9Nhi~vo^63hbjagB@UTOR^}p*y^S2!77xfU%y% z*j{|OOL}Wly|CDu$<-$vBAblYpT3y-srxTiAG|6xf=v16tV(@HF5h028s|Kr8(vBs zR5e9{6DQ4QKSMq!@~XgKhwrwB~jk9GhW&9b-%z-ba6k6t=$!NGV2)EAgwYGy9)p{Ql0%`rM2^ zruI@t@&+Ri%J4DR-KXEK^~di0eS==;c9pqUHJ|wSyX5a_Gk!-unDHCjo9@-CGydNy zl|$ZimTO$*9sRRz{s8I}UD3_Ab&BxM2P^gS-TYXcBI}K}&iF39Try|1j_>Y2>kM7h z=w=E@IoLH1HMXKDA#-NdvPIY_Vybq6(;jp(Ki8vs_y?Dgv}9vRTFRoVTKx&tk?%p4 zRfFh6w$1uB*>ZZ~z%N^tuWz3%$0TX#MUs}Fj6=M=vh^ordrG1f;uA4f3IZhx2&J*i zDQVFwXe@dSCyOMoNZniJRDfj5TZ7LnP$%+SA`__U) zJmhhRnYV(ju*N6wB><6P!l7r_XGM{!2*IZl5eT1= z`L>54;i=YUoBuC>*cOITv@H(9SXzKhVMxfwe*r|MOg(d@sgzL@?`X3jZo1T+R$ZM=>*F?y;9JHadEA<44CCdz#{Z$-6mIIHBR6-IdGcII| zuSvYpgzEa{r`R_dV5DS2q!^FDirBSqCixWTi0z$upsopU3B{#nu`5(W2`wvvn^wTO ziMS8$SSPp^R2x~P0_mfgBmPB9B}AsUt8(p`!(KesK4F-IpcnbMq**dM$RUgY0MoHk z$tl59kUSE*#R>#?{+Zqol(mrinvg&IjXKxY?*U}Hg{ze%;5$ZaH#eStI~*2~I37Sc zgxDBg9M$=5Te}khksquP=fNrra~uaukht5kgEB34;%;@eoB56+Bj2it`%KUkGe~hI zF`%Ffi4ORgWyuh7YT~PDmz7YNYLw_&?$)*_9&uVK^8}a?5sGRZw$4{gzIE08zrOLg zKP~^{$A+-*WKa%DZ0%y8C^Zaj{q*#A%-cH$4Tb@-JXf5ZWxd+d*F zvl=ick*gKF$7gKNKD^{?!Pf4HS>`U$y7KQtk?1#GlbQoMZAi2TKK80DOHgbLW1$|{ z-_JEv!AE`KM}Uvd4v-LCp{(<=xmtZ_e}6(Cx>WtmQIEd{OZj_<{#pugnMGpmmsj7S-)?eH`j&t*(UZrHYA}9 zm3n5@@863c{mPuIV+GIQAZ%EF6?ijj|Q z_JhEfZ1?er8a}GVCj?#j4VtC5&inlerOofe>vGv-fe|}nyzzE1%B+M#N}M zjQfPNW_XCfiB2L5V>wOJuKp(PpP9}G-SAML>Oi0i2lzv}6POCDnV35yxy3d~R^31e=DMFovW%0drtVG`&qcrKanu|opbL;%2oPl*4h$2=A@&X)pf3p#A!KGm0*@X&m&@@;$DYCDV8e(+4xgfY)@Fm$++*@AeiQ7j ziEtKuX_Mb?D{KKq?12wudmK|Gj<>{wgxQfi)x-?LPF?Agi;8A z%(6GO8|bGB0Dz#j5W#ttc>b&cuqf_wvI9v4swYz%8!{EXawrYyaNda_OCBzf?^)U4 z;pwrXLfi!FAoZ{{dga#;QkZ(tHG_T(-D@%BfaJh*AK};1PQ-S8PGlbNV^~lgL#Fl| zhb^-y!zu3&nPTFgMW(GHa@ZL%rAz%-l_dek)W;3>x3_vbuA<=XtMFe4+dN~f*{wYy zwh1*8DMe&w{sjb!^#_A}GSF?*ezQMp(8A==IPY5WoXcntqRQS+wy=hY;G$#;!IQxi zq-pSV?jo;VAJy!SEn1IF8oXPZ{r&yF^aWJQb$W=u6E37>Um=AxMB0~|?WKLW#~Mb`zAN8MLlGO(F*&syUg1vCyAAgT{o7nC7Y_GhHP2$> z%XLXF6D-!lM)=<=LYw_xoMWy_c7nEsKM^NUzQvs#+g@>nvBT|E*I{*tJ|q1x&Rcr7 zk^Ug}nRoSZBmJ>8&j4Q81zCsuIIn)xdiO~GMK4t;Oqff(XiNX+rOCwK+a-XAqH6R7 zhkYm%=i4ObJ{U5Ck5+I1UAAq9&EKZOcKzwm*VblB`BlHwB=xkd{8=O=Z@p|QzrmTX z?i7^j~9d(=2Ctaa;*v7BdHRJtbz1y6er;on1s+YcMygx!xuRl8;>-u^6ALIR9k4-SG{yM?`WzQw^CH7b}9@cO?SwoN&lbQ4M{E4>hofG{%+*7S zul26m`3?I>Xtl)}*F+z~oSft&lrcF!mp2gShg@lI);5f?z4vdMLm$3hJajI>>b5q zZWmh)>49G+veMYr`PmrMyR_DacV(?RUgj>9B{j?Z@g#pJA#VTQV`A5b2qq3bOjd^f z?dlnl%yI!(Q#)P0;EyqJ9%k1O-NJfBYgB^z|6)0 zvT87^G-{HlhNu8l2(zd1tMwb21Ax|V$d8fVke?wDVcJwKA`(G^c4qxpYH_U9+jK!I zlYFVg4am4xI-Jm1vZG(Or);5)*2HW9)?|(ItrkVx&~`%qX{F09FN!{KC%~K#eQ+RQ7Eu?TBE#yFN?F92Zg}#b-jLIXMeO)uGj7C_pES+BtPUB z?2zOdT|1Rhm!fzrLh)_pGwP86ITCF{T%#PsLej35A(Z0*SedY?-K1aQE*UmsU5`7* zh2+8V&8uOAG-s_vlMG3zgu@#Wh`$GrPRx@898yb}AFMg@I=J7bC_J1@7JWyee}Izc z+v{CXgu<`%>+;tZ`bz)2t}g3x_LO^g^Ca31*+ldw(NTFHuFMgMRKWRlNG|t;gd}-T z$z5__?2!m?^^Qm=u@f;M4tB`#CC+~k8fo_@D`OMmy^2YQNz$NJg86n260Er5&|2ut zsuF!TsZaT5d0in;Cf9<54kiPv1-0T6r$a0R{JY#?(oB#bba7oU9&<92(Y;D07N#C7 z^6Y%DG`i9j{{~0jbA)u+SrgJkYnhHXD{Gi4?`G@WXLV7TioG$9n;U{Vl5iOoBYVf+oe;NrbrhT~bbv zI+vqHL87p=y9Ky;&V};q77|_-x-bOX00SwPP0*6VNNHgz!w?i^FriQUy~OS^Dsf$B zf~sKY_VgqkdZ9$<7?L;~loA{;whES)38F-qN7z<8^W?)^nV<$ziSg}Gq79HnOp4u| zK%vy}B1RHqD%1sgK~ROZ`Hmdx&FtGJ>^&7ciK&!#N-h~*%a}qy5_V1YJr==ODrFvp zz%T<~Us#4CLk=gHZs?U^V$F7fOXjhj(w(uqa`L<+Kg5-iE+vnRF|%xiEDAG`^#6&< zd;zv5ap5zlxsFlTJzRixuqw0Y+$$%VL^y+&tM%g9R-+k_zJHNpZi(u2w8`g;;1kwtpX4 zL7t7hB_0jirSd%z3>%fYwm2-Wuqdnqg$+E6bZPhAZ><=^`8HjEi&(HvnzvI&esynt6)C7bd)jumEY* zD=eZ8^Mq5ukupn?NIk|&g?W8kbD|NF*=sKL%M^0vybWb@j*;)j2lF#7ZkfC7q&T=Sx978S$VW-+d-sJLcD z#T6A@R8({gsNe70stz*@I?KE7|9QVhnXYi_hI7w7`JNk2*mAmoXu|_CM`NtzmqtwS z_4?P!?(OrRbx#5)Op-A%^Y@OA-YU+jK-lgb-;;%bv|#8M$SBGMpcN4yXiH895Gy8p z6#Z3j_4JTK0=m(;xtEcGLv=7A)!b(rGXn3S&5`=VO`d&GqM1He zDh4!TUoDen5d-w<-(!=!SgU=UF7+~SN!d&9`;p{!OSbcKFctd+d`l18$Jr_w>Pd)} zxvBd&MA2WQZ~uccB6|@FR(1j#dkY_T7L1i?=GsSok@v;~*WKLE1oTA2YDwAdeal)( zy=O^!V#+@g7pe&|0850OEqM^a(?F4jc_>mA89<;YYlpkg*7kl|g!pg_MY!=cgd5-g zci;w8!rduRmxW6EF>wjL68Cde`#G0b`q=%Q;(2Jnz!KL=;Rv!#^RAVFA|%)a*GgFv z*NT{A6N@rsExJ}*ajjt6J;Qg_bFDN#_$qX*lpGFIaIGLL7hEgxylX`sHg~O2A23&;`+)1obQWHf>K9vt5p1!9m%Dr-lC7Asfz<{V{pChAm=!J z-55fppVe=SamHEq=&kp62J2Y|IhS&RW%^)e89!eg> z`ME6o`FgDLgtgm(!<{<)(m3bOyqI*T^Rjv3>mv_yE;pBthR-|b*A90!8=d#e!A*<4 zqE_{z^t7PV3wqBZoO$e#dH)FKduxV%`$*?Gj_|zkD5s}-A8tax>FfH{qnurNm>KW< z?x1|TO+13}-|`4{ZGyJl{H}g{QKoBiwAGJ|cS;Y=BMQ41IEH{BNLeaqZXA-rF7p0A zb7hcJ@H6!P<@P%oR|@A7Uwe#mqLo@{L>;si@AaHNfv`*fF=ApKIu6j8JQ0UQPXBqL z)7z00MczogY@*Y#h$*F_ajVW;6750vIM$hFjn+3F>%3z9kURZ2XP;3>cy#X2^wmw!3c`Pf>iXaCVT+4@l1r!gBJ>fKIb6+En0o#yni-qhZooXy7;FmVou zk;fC+o#&zR)AS9UuK4OQzQ zLV3^VnrY7Vbbili&TMOiUOo-vU8_$y%lU*~zjl*N;tiE~%T_Hu&osvEV^r z4{8#pnvkZI(6dCaK%a1q(@^Yn=~`+PnKvu`wR4<9ImCO&45w@6Fe6`k2cM`2X}wLNqUAR}(-KeEo{veU_6+Ma7{Z&*(qRa`t9Z(hIYk z-qv;cyIIbGU6+J)KVD|G-HJj%Y+kRe}bWublS zI?w3y&U5N)+PdL9C*7p2f1F2K&+8tuoxwHFTbVd2f`uJV`mVg^^@Q2ZHr9#yhS|=J zzZvdPKF2v8!T7W}><)WPUpB|-%gFDT9BHK7l#KM(h4fa@DYGtayTGX>`|8sdIKz7srz6zD zXm0&^(6YD2=ph@P0ioG>rUb1kie>+K2oD-gg;>%B5Jml_zO;jpnn-~n=r&%zX;l{m zbOrs!7X1p&L8@c9q94=aSyAi_!joZ+CnOOOg3%&SS~Xdv_z1;9SCj>_F8ZB?;lQYb zfD1!Gi8Zp6TDE#%shZS{8`F zffIfJ@}+U1Gesbmj=fbtZZfT=;yF|-4RDkY^A{RmFt|t?(N3#U^lnunX6u+W-)Wzk z7iT8TnqNiKBe4o=^se)rKm1>W^(wo7(5t{X4py`Oy9gb@c}0ZKtFc=Y5!xQw@}#yN zp}hr8=guol&!^iaKtAS;HcQpG@Vqni=mk#K|6`E1w9_ejsaPeYr%T|XV(cx@kW%z+ z_0q{xtztE$28Z>fz>Y0MdWgkAFV^^7H`QNhXIig^q-zK{39(jT5ECkdvHn4bp0W9H zi->rlzWh?BZ}%b<_iZU(FjAEglD)36+a8&JzhNttlqim*6dQL!MU`&2*e(z>yEax~5 zy~R0idn`N}|5y05(17cIUeK z>&RC~LR@noXg?w!=%<_y)em>JUUR$CN2=(2hjWmTh7knKL6gSjJ5S8HChI4QYPHsP zIC~b&c%``5DuJ^J?{S6abobeNYr%6^A`#Ewf@M~^Vw=`ozX561tk`LboxSs3;wV^* zj)UjFZD%*0tBo?VH|^hq4P;v~Onu^=PVapGl3`d_*uSLY#2}0)T8H6f-VeY|lQ1U+ zuUVH#qL{)0c{czBnz;c=_167lxR?128qpj>3(h$ZRQeg8NMNIkY&OYJ~(TlmHo`1S#xNYFZ}3hl0z#)Wo+w z3v7V{8WW%Yw9_S@jUdWi7BaIadl@$&-bXBL^Lr2lA22tvPb6Y_nN+VBz*Dcd|mlWlP?|(Uo4rgw{7}jN%-Qi z`T7`MOf0tXSoq@c`6$RloS8r`;&X!c@cca$Gx^~1WSkyROnUT0SlTI;j^SM6t75$r zN%fBrvH!DP^Nh1ir!_XqLm09I2I2D&3nBDy`BeS8zdJvJcEg`_e&DdC?VlrV|2jSH zIp_Br3wzIV;Pf2bxYW4=1g(4C`4?v+J1;mFC*EpnRqLx>a1N-S&BkZ5U^7Gx(FeS- z9l$8bBCp%M=p5RV=S+Li`O~1;h^Ri!P`}1I)~w4QW^T@7hcCW#79V>m{Wd{GBY#Mo z_OR~13~hVo+{k6l6*g9}fBwVSs`g332uG%gF(7EKF~bfkoW$ZC)Q7$7^yqxO@%lqo zVyqBwW+G-<2wZ&w$93qxyzGp!uP@W@zK%L%){D5?O+YPardTgg{0}$bdT}I+RY*B0 znWvmQ123caA8tatGzFSb&R;R$Z-8`-UoBz9a&VsJ9eEYbc}==FvF1cHHGP#*POXb^_j0beYU)=Otur&8eqABn$RY0 z#jH>#Cp|lWbL%A*wLN1K4(l;{4sz-Lb@Fu6i4<$I-g?+X!EC^qjYy^UD^S0|vV-caDaF&sy%( zSTavnz7x*VOCLHtbj7<)L!t4uGBv~AMe19vv+p`x__^v`C#Y!BgHPYZr}s{7#Cy(% z7Bkc5eP?g_nm_U-Q$b%V!oFVkzUk}if8yFWTfg>C=dQY3n0NrQPsqN6d$O*|y{q-L zAHZm4>W(X&O$r?-p(dw z)~qbHBKl=v$EJN`I`*fJoe6Y3ZbxfR_ zk#lFlYJ`D@^z7BnEPeN9tl*pP*Z=y=*|`7@Q2})DxwCiSi5dByKS#E@2-ZqWfjI~b zD{^0G7N%^5#?hGo+h~`F>%>~ZG9+*jixxntL$(n*{<5Ltg`}!!yU1BgX^hDwrC(aF zbh5~A_WYuR-`GKs-<;X>MUmeuYWkwUZ}eNd$mSV_UCLS*fK%*}VJ)SdFR~V+UHDjY zp)chopFJnu!HAG3;Wy?Ne#6Xq@0kik*kgyd(R6|1v1vVJjdMsP=V}XU+72Pzo2lPh zgX3eB?((HGO%nSHXpA6_Ot+K1{Yz&EnEdgVPM3YZCJs7oCL`Q+1B!@)$nuVopdgP_ zP^qge%QEr$!v}iza~7N^)xvw2GpQTP6qmL)gb&Q6G;zRJ&an;mC+s-sZ9)yg*vM9z z?}DqJiwOn@GC&W{)n9z&)E1PNU=>nv!H;O?{fHkIawxEhX5>oLj^UyN(vRAhPV?!@tgdp={qa{~5hdWW?{2;Hv_SnG@~zyAZ7l`AdZ zy7>JsdmF70Y%yA+@h=v&Moh-5_1d-0B{usJXMe*+K7Jqg#yK4|d#i8R*07U4=3AEg zPWs$$oxXWVQ}SNPA~yVeeIH4?Z1@s}z5(}$DCGqkQVDR8%S!wri4ACyrFLkepPH^j zHXYgIR~tGlAbFAbBv10RBvLE7H2%{>YOS(xnQdR+{oC2T@5&{t-WajJM3l-|uI$E@ z2SGinT;PXCnN0)ytXZPRedlzld1=~8yw{nS|{T=(u7e1zM|IXZSCjU^Y5O8#DINglw2XMBqZ?;yR)4^A#P-;qdlwA(qHn~5x_CS($R zYG>84NQ_V?{_~!Ddy_ae{>#(LvFJU`^>ZY&UMaynJ80V zBKYQR5E_d_p#rlZpGNOo1?TMb zxmSL1_Ok57kLX^Oy8@9_**MO>(&KG+H+$g&`d-`ZWu2qnwcU@b=W;qyAUI z-44m1q0Bv|_sbSEre>QMXZXO=g*x7ibaMnqYTNu=G=c9X{22q}=}Y@=x`dDK~4cTdjXdxgDHkyj%9EuCH)U zvS0aBUsU0a=(O@v!FAI423&<{R^Fi48=vZ+(yiSlSYh6e!i4b(kA;}aBXdF5%cA%4 zJ&(ihr6ASw{pfrT&B1f@QOZRK{(ufTx$W!~59s|mxm#zaNAEK9RT>TM2_Hy^Ww1!D zd)p22{JQYkm+LFTYy8_J>r@dbgjy zT1IO6DdIzOfIoD|S)A|wX=exN5iXl&}o#7@Ethegw4zkASW4gL~kvsRnuI^aw>btpT+6!msE4sNo zxqZBwd!4;-rasz-kB`gE^W83S`{xhz9h-0x)~31lHgS8Hd#9JXt@XVg-pidRuNU`n z&;HHupuHR5o?~*Vw>!>;$sN)mP`KYhEdvV;QA$}~wV(8_D@)wy9zsdbzs;}o3 z_H!S#3GN)Xse6?5&)nZOby2(9$iPmnpV+Of*Ta@aux%;?feWX_mcGuC#ceZdZ zVBE)U>Gm$Byf?>aJT~3ytRLCR?c-d(J=TbMxzD$9yO)HCmhLrgRbOSRx!!YYw?lEf zrK_V=br`?Nbz8gp5LEa5*6xSa82#Qh?hg#}t!>>Sc01pdy}pK3LUxMFdgJhE_I7U0 zdRqT(d-oyh=>*?I)L)}*_`{}23GH@k``trctv^cKPV8vDi>6&0g zceuNYHC6w9xO)pfKM!~RKqlCIe&-Hpx#Cs<%vAjB@7&Yr`=}A_!503I>vwdYm99@3 z>5eJr!2fefr8b7JR6&*VRN74LexuxyRJWxLy#)=^4E>&q4xu8i0u`6#Z((sjR4 z9UT0d9Xuw?0Nk1p7yGqwbYl0N-Q$W&bmQvyVP|)bVjZRQw5lIXVnSLp+_a(^k|s2@ z+=!^T!Hn#!s1OaeM3DMTl<6AtHxyJZ!l?dkH+RRD;oK^IA$`gHX?J&tRXeSW)XE&F zM;H=kuOn#7p9&8?vZuR05q7uj>3(mm$=$e@dxveU$nCd}yN8W8{KkFVfrmdtHrj+Y zNNkTBLCiX>0BYIb9G>FD!(cixT_SgvVpOZJ!C=&O`?+VuM+Z0Q$M$nS(!qi5X6!?l zav;LVDY=^ubg#Dvq}k(OcRF$LuN>@-ECQu;A+@SG0c>u}A&7l!%DHc>yP5#}>&L-G z*XDj4=l;n;C_Lpbw+p=WlEd8Lm1|KgqKE}=tzJo1BK^>}>OO~YZc>eLXsuIr#ot%P95$pZFy<6%9z7s{Z1w) zXusd2#=lLB^#ez^eRgXRUK_2(8j#Zd8>ktc@6_Nz+g&;gkvjD>tS_ zsbE7DuFq#9KD@D#!2ft^1?BWlN4cF_Uf8XoyoO@#H{RXKUh!8wZ@jxJzqxnEyLXlB zi!05c(F!D%oB(v}g$eHX-M){fFg47PPxW!c!Jg1hvYQ{7Ek?s2Pmf_`tR zJHC82l}4wr?KzEZZmQ1@f0j;jpOWS;KFcKnWtu+psCY-c_AGaDhkRe$pw~#*XGXH@ zw!ut&`q@}Z&ekuS?G6efYS>v`8i7_Ov516IOGK{F9WIm!M3_mNASVU7GjHodM znnl!z{b#xRVZbedccjoA$q%anUN>-xFw3~Nd5+PUsKaTE4P=5_c}A?)$O3*BBVJ%9E>_bp;_ zuD{6rgr5s8b`R(0>x)4rjy@d2G;jD8L&bleUte3inOJ}_ac6N4uW!Cj5?Vd~jU(#;B76zNE zy41Z^LQLCEao`knj5BUqoaE`v>#)t%019U>9;3-jGW&!+1kH@KU2 zm_f!fUW&tIu)!~Bak@U^26r^yKYfFH{T4HE?tt&ij7f$2N>{+9ZU zYk!0N=De+6?{(?g->6>ew{LQXXCg2XYJjUU>`fGCz)c9nu{XQz$40%0!VGwqhaoPh z#Z9)2l*%=&B1A@pyZdGg#)sz?-{PKTV?^wGn|lvLWyNjoB!2e3-5pawWR8TA)?h8( zDR=MfE_9nzaWJ3X;js;6OrFDJR&7|9Urx z8z7F_ul1%7eGr!-1{^#yw4YhyQ47_Y7V^{|k3SLf@zl7|CQOMu`KLrPLQranZxYQ;^ST5%cnlH$_K(hrIxi&9}vO({0~QmqWA zD9e@7t=_GgQ{h&*>|ezqe6oJ$UiVDGbPviQ3m5{1AHI}|KYE}0M7URsFoZnhSwY1W z&5aq;#glrpJB(T5zPO;d3H#62>p{A7X|xK`vY>Na9&jgE|EId7>C$HU4-dIDY*RY= zA^a)U+}uSEyKO9Y7Gj|7?V@jd1gUrz-SDW}#eHTencsM}>!a=;dG_?9Zg+R?rxKDg zR)6^@GW8L<=Momp&w7s~?r`r}jzpJ;IuutJw>M2+v&8LKxsK>8sIqLeUuWs3mbkx9 zE`i2Li6eFTF}Tfi{p4frzIBL;1Xl35%qy5Cr}D+kxrKU%Cvc1{(MLYPLY=G6dBQ!Y z+s$*u0ECR&SKPiLDv^3_f)E(Q0q>~=PrCi|7LU6Pn?^b9Bp%P?pA#y|ZeX@bia*>M z-r)6#E@k4U>p73RLC5J(RpSaieK_gNIDe;qU5ZS0dgbG=xaqp;33s6G_oTZ*#Md@Y zxdY{Q*i!`9ypTKNDR+of&Q2?-p_2U{k3Q`Vmk^qWtdKR}Azk%1w`1QWJQGTi^vi^j z$R%fO$hIExCi%(RASe!TIDD{1@AWsgQ%%!KY_>(|y$-8rD=~T!FG4apDV(p?go1=P zO?`sX`EmsK6^t0AM5I+_y^;hyB9?HtO0LZ_?txZ^OW>}Jq8f3&mv>2`5msQQZr9nr zyS1qrvnz|}0dMErwSRXPTSv4tp?u61id?uKe0mYeI9mFh}rEZQM`}5=)O|^j;Uy1 zqc>S!xyIa@UHOtb zwt=(9yrrO56Sz4+oQ$^Xf$yp@QpA#fewabaFevQt&hCjYW@AH~_mGOhyQCO&ni7AGKB2=!{ z-s|obolup7g+Fpu6Z&b4v01@f=`pBq$m?#mwlp>ZBui}*lf&$V$Su?JUPlByO25hb zFklq5E>sJ#g0rTh4I$iwqSDYe+>S>=1$e;JMq5Bs$$lxmH!P}DdMn)p(yCPVvI!)o z-*DRtbG_|NDEu7V>n&*496jzWcQ!k8R=m{0@U0rMGyO9YaD6jCNK)AwB+G_dGdA z{_A($gThrx+u`K3dKkh>esvh7^Y|;n*s5g}yySeSl;0M(S0UcEHOn>Tx8qE_oU_8+ z$Fgd22fpv#YvEU^`M`aNiCy^tF&XM`67j+{5*H7Bw-*x{eCWRT|3YSIl>lf6(5)ZA zS4ZhpAAv|KdRX;n_J($3Tm%5lA*_-8T|2WJ`^n>2x{AdPp9vGb=M}xqV&T01ODhx* zR!_5oY0X0!IF|8OXAcrI7>F-Np1;GGD$|C;dnl& zE7?DGv&An6w1nS){Im8js>X1;)DAjF;z^OcnUSorIATy?s~|x9Fb%{x4j{v`%tWW`qEw9w$RuL!ER?k}H&H+yCKXJEU|J*L0xZk%M zC6bZQ*$k8s@hHZ zpXOIFY&KlQA?+%cRZI+ZeifU`a1~QBzluXjRxYd96bM(bDbQ>cmzv0%k+BV|Vq+uk zvQ2qc{p`OGXsh*Q^Q>Ol->lrtWmdyst)+VF&)kC>s{Q&P5v-UW2Y#z<<^*Ob8~6Az z48dVfWDw(UzCBk1&T9S9XYNwy+})pJf2h$bKX6nPt59m{_ilSV?0ff-h`2|y5klSj!S%CWlvzqbkcTy99Q>Dtga|bd5+bSjNh?+! z%zOflZzNk0OEatq4$bwBl|=0?0y{es&;OXr|HqJH~8MYz4crvRq z`=je-Qz9Izu+t*nmj{dwB>R06Q*tHi@=HQNCN6&v7lyx zk4+t=!7&RemS#t`HzU?GtZ>4YF^gKbaLQ`SL2PSV$`g9cu%pIhhluf7c3LnhM} z1xoN)Cx3GHE5lZ+vU>baZhvI+-f@5Ukh7=XD5p6HcS__Q{K;JxC&lc2mik3s9ao!m zk)3klcoY>HFoe6{fEmDMBgJQNRky>5!sX}-&$>%F>6Y+A`W9_N`v3P9sbcD~|Ftbr zV$3oJN+CC-QmGFuE6(=9aDFEOQ~`axB#wU)_el_A`;^S?T1)WJ2$*a2C$`$AW~~LL zhQ*jFD94j}i@4gh-z*pe#KCNOGZRzPZkVOjmTdarc_4CyKCw(~j|OmOnL2`>4vy+0 zG!mw=H>pZ%%nL1Cw6sJGgMtl8yFKp@5s4kRsa4g%S8lBtla*%f~I z8GcH#W;;!GYO-6c02ET&8_xsc;`%!^q1%O>nkv6jQywO}kLSM}^RY7h#^!)??QwCByL)WIazoL8l~0`NPk)VT%2j7c~&!c*IFeB)G4)sian zGEeQ&fKV<+()jLrLU|jk5J|JR&{vo0ifYxV3sQKwNa3*CPzrBjq;N^@f>(TawHjLe zm7Putf2&A$XIv?gj9yf&cC+7~uHUa#+sm(CqdL^HKN9In~*>cG7 zxHYPQ3{R)kr~!lCv1}+N`~lLNFdB%_M_7&P_)^yJFjyiwTtyfJ)ylCW?iEfwO0cqCSrMebw~Nm zX_3*WdZNChgX&jz5=x+Hsv*-Zupt_l>cF#<_ojZk1Av{QJ9boi@H4)nI#x)*YaLZL z{qK(I8t0lpShIF#$CT>4<@6tbwiso1Pj?C~ZYQYRDflCH<)0-3lrQmNu;_`%iTp64 zDDTXgTJ?~9OiE9!Q+4{qdR3`k?W8*Ex;n;ojUHL2{7zrunSinSZT&W=GYH3<32L?R zzSP+|h|)s+Zk-xh08K_rb-nA=Qt2wSch&7XtF7f`&(3Nz!?>)o>f2!sGi&)BcZ}i+ zj~4dk-LK#3jJcYk>pH8U)|^^(myuk|`>r$(pWj@1}aU{O&ycSvS?A(0@;A?CPuWZ10%itF_Xd)6;5mFlTXE z9U`}0Mu}JYhl~=7&E}h^W8~@8o2XITezb||&riGVYDeq&+yUK{vawnp-ct>>9@Cfh zRGX?31he|b&dt5pljYU^aBbA zL;ch)?eC3?p}S6`qnIzJi{Xp9S9k8OF0{Y4^&S1yBpFX;fZEUcLZ3E34Y2OhHxDor z;q3wHDS3JArqq6-t{ljiztDdeNYP{TZ39(5a-qG&L+>pFJ+u_8AZ!?qc{x335HGLN zhYV7KllS2^sHD;3^%aAVZK&_jLF)I>Z`Ury;vD8+V3`K5y?Nyw8cYozbMldH=*ul3N+LGN;pEgRaThNgUne3 zVT{G4WArJTt3N`LzuerAWN)yVT|i(%l5ZTWwt^(TH&`9Y?&M$#l_vMX;ajL(g;L(R zMMyE%Y>}s!AYOrDxTdL_6h=0RY>h41Q9b|zVIRyGPPv1ENj>O9QWQf|X zu)3r`wDPQAy54qc)zH$rSa6=a>(<ig~*_{}q|?X<*UT3}CumxwRUYWrL9?b{9#_ zAcyNQYeJbt6@<^2V|_80G%@~kOpDzaI%y-1DQ<1s1;t?*s`%JRP-* zI@Ow(Te6GlZdteHKHL?t6obs+yF(Br>IZjMr^u=vyoZ`Zdczy`Q2nYR>L&?S3=w>P z4^?gT!TM$95%a{hmV!9A!71K*phdZq^V66-$Th*zeOGth3)VDIkKRiiE*-mVFSP}? zAMB;hLM}dPZ#4^^{Kej?BLvC)Ju>vIxrx75$5`|u_xe6`ul+k^vI{Kc_k<*%5(2`6 zw_G2yuiDajTQA%f&U2k!v9B6wE!VyFQ}1%;j3F1*7kcyM#oQ-XCoJLLa(6wDK)IZ+~@kHF(SL@^f>UTt*?{b3uUagn!d+(OtP+t{|~zH*S>@qRz=R>?dT-Bku%hGwN?z6ra(wtO#wq)k1aY>Yl{MR>&R;@Zis^N=Nm2}%)&>( z5Y5|M#wCx8M=k{kZ~MERH&*S!u}8Q{F?N8aky+ZfO67t6cC5@_ii6Vjpq63;D$^EfycK#6XDJ==ae=NnRCOAnf?r_9uw$fYLlY~~9zE+A z&MH%#4miM;E{ceVRLpT^#xAeN9jdwsvQ9fxHT0y@Lrw_d*y7}@13@1**p5?F`587L zMcR}r#rUdUJXHOztt+HGMR!7R&Ez)gahS?vsYF3!sNZAQ(6u&Zxp=EA;mQVEc{fD* zLakIT;FF{Lj8PX&q1Lp>L%&Qs0s=~zNg~i-U7_R;fuxS^9QHOX4C*pd;9_@4>!%M> zU9*K^b%iWP2+>TBXc7Dtc%soFItov$q$^a4!;NusLI_P7F$@_k873`)<#@)X$Gg#( zF(aRbR6+0K0L|bI>b5@oaMiJcR1wfzfiHQV$RW$~4p$kxu6G} zBU-D08Y|mam%JlXckdm`_W+nM1qpvxp+_8{_RHqQO#sU)Kwvz-RpPTrgm(8Tv*Hyg z0;E1_Y{U2N-cm%77IYG4QK)wB}xEkmW5Wt<<7 z`-6^xdQQ}TJW8FI6+VHkN3ca;O=%opNg=nrMl^D%&F2C))mVQ-d>3uJV!qt#ZaTbV7X9O&v}j#dMy>GGphAAX)X zT5WD@=HXuD0+h;+L5x$n-!W=B!x2SVWHo*~gXlv9C%G$U29;iRjOv|K-a>4vqH5ZW zsuytU)2O<@7&pCvBw;p2PP$-1#iSR0N3o}GCx3>}-8P2y?-+n7x7g%Wo22OjpkqY1llboN4&|pLH(;C~2A-M3nNFU7!suB^CjDpCv1+i8!9Eaq41;ox1xtbp?|49>=TE_E}c$(&JUa zYCl(7SlPe^a4PutQY*zNAvfzgPf$HOKRGiYM?P|Yjb;1@tiMnbed;s)^$BYK>T51T zP?cnA5+nxGyjLGQN%b1A+%k>@urmSP3zAYzrc#o~MdvV^Byw$7j3klMcTG|!R7Z>h zA1a55zsfKPMVdcMGZO>%L0oqPOL#KXdK`7FnCHdrpqO+8)BuWm z1O^uki=OZ6vbhsKDLXIowMD<*9Slx2=IRJ-^Ak${3J|^4-`e6*xZN#ioG)Qx^ zT0c8O_3iY^N-KDIrC5(P8=a}CPgk>QlTi9Oy3I@o(Zzb;Otn>+1m!Hy6KAT1ju$5| zI*APy=AK<@(N2d)p))$j(w7+TFwP z&n&?D41NvdCYh8)`sP`xU#GLMirfIH_P}X)RdB@s@E!Be?)vjtYUiP=D}xWdhOqIr zyAW~_tzy9y=VH7KU2kom2b2659P(jdpN2Il6Z8$OTB1)mSM}Ir8fSM`h&AmHp(lc< zg5nMgr%iDGC%mJzN6%F|?IEW9UxB1C?c203rhTKaiQ9j<1$70`wShI+NO{yB{OjA8 z_eZ_od8%*wMb?C%5=-D<8V{Bk!SmxPttqIa5&9QojCJ#Dt?YTq|qUo#u@W7V6DKgl_2>}G=Xa{RgQ zE!$fF0mc4lvI(*K7gZxniV2`75E$U<%jc-A4nXxbVMkUo)thrVjSzwCOWZ|G)Kdwb zu&`WV6q2b#h{5uU3ZJ+5#*M|-q(Qz*_noUYKde>tgODV>n$j5DGuMz%y4b7*Y1Tw` zl(s-*2hLtSXf8(2x8|yH4B{WoRb#BI9(q1Ty{!J@`D*VT#{w0TTe4Eziy}u~Ru6Fk zEBYeV3Pgmnt~p=z%NQfB_gR?)suRWpetc%aUr=O2+W4B@;Q}?Ko|y;VFjc^oadK0J zivaVt_l|!40<|0Qo02!MzufHw91E&<`aZIPs}8C)k7{+ zSGo7iHKLbZexVwd4|Q`xz6bik_gvAoj8ta$o}PMfod4zR)|M$HF!?9CFVhv>Cu4-I@R%U?2gTK$#*Sl8=uG za&i;%%y&o;rULLNA$Wwq7tXR{@F*d2(Oue`ueRtDIYGk>60}(q0k|=skV)fui9UY5 zIw5}umnk34@vnT5x zh6)BW@eQ*VN_EaeBj!v4>6jUD^E093Jds1gw@m&9j?*eVx}$XaWUDNfCR@t`3y|yA z=${s-KJHgDnJaI+9-!6m@_WcSXhO)x>(g{$EbU~2t$f9tKX;3xJB(9W((+=&A;PB z2}A}~Ft#?amSPBPl-ev}_r$#Kq<$BJVi4sic~pftBr*sVwSkR&Ge8yYAFJklY}6=R z&@v>Xi;>&J#MvTGaWn;l0=xtRGx!nP@AM9p{Kl zJkZbIFzvLFbS)mtyMFoG36A;*&i+wY+KjJ0o0c`L1!tWlnzKhX)#=Yltw@vukXU>X zi{ionCCkoK`oX)-l4s{5a>)nN5+f_Kl4jhr9uKOKcx*}=6CI;Af<`+;q1dirHR9}w zM+WMQ(?7O52g!;^>)lMJIaMQ#Z5CF`39WvaoUkGG$zN$35**LcszCv)IxgGDmUm zkj*7ea@e9zE_#uNu_|@W#Jw#uB&m*J@rw&o;y_JXp`d98^RBakxOW?5m3s9R;Z2Cj z7D~?p2?F&HFXH;0TUC$ji*!Ej4Xu+wB=Tvg6T$Qus8V9~oFTbzV?lfPV3-e=+|p9g z1X;k)^gi> zEEnsz=)><+yD{BY2E>q17~6?{7sIT0wx9~&G~OHHWaV}LSOs^v^8U14; zGME>_88J8dvPEiGy)8g|hSAIKGE9|N&N0jKGg`lMf;%v45_<#N2FYrJDvnCI!feFl z*?gq8e2(v8{*F|}5-5_0np&R`{XJL~=d2gj9<%XQC*E0!xvBEOl*hG2@A}}BccpRP4&rNbS9g6@T_jWX7g#`mWmp{M* zNPE5HyoT=bQ2xk6JA7zvwux2HC8`?IKSnHtHOYI9bCUYUlG2GG<^Y3baUHyb%VNuz z@;4DNKLostG(?V@1d7)@2ED^7VTS~7p%tXk{4=@7?O-7z86bK_H~=V?{b6NWlui}Z z{_6YyO{|&VkpwYTfJe-k*+Rsa&6x}#*jPq>n@ufJ8_G|u-0~T!wjA+W!4to|JTs>p zLIw@hCnm)X-oFnpfF2PT<~0SwJOc(G2XF@)6bR8|aU3dVa74NT2Js%zjKkzW6XwTY z^sd!57OOQT!V&~33o2!V^Dq?Q{5yA;$AQNd)}kPFRkSY3K7g9;`E;?kZHn3g&+(C9)h%AeVvxFqc=z zqsu>D2r%RsCD)k;yJ7w2$`q6}X)W?LrENoH<;-RFwUnrmg$A0|{|5E*kNSNM$)6rW#f@+63!yd0eF~ zSB3>Wqr*yXpDOE=O;`CHkuN0(a#Mjbb3uThm6*6HJ`o_0ZrgyqZ%)Mqj(v4?i zJlF+gNf#jq!I+?fuPZu8E^deiwF`xSeEE*lZhTWxyF>_xG^kDvrv4nC#8vIdlZgf5 z$rQHCt#i$zDL8-_Q74geD~v_Elh7km%a93d32_=_uY>aIvCsRCutt~28s3u*cE|+i zBr+aG{K?Esg@6P6nSj+Bc?6pE3(=2leVX1 zx`?4Q>~WpnB}hyT?-Ptb?p1WJqWg;Ip6x<105%iIkC^$8f)i#O0I>)mO!v|Zm3B8I z(Zof_SJHdw_=HS5^Hn5z;`Q*mZED5v_%Tz4^g!PswIx+<0OZsVk@gh=URyLCW>G+^ zWTXi{i;f^m-B5o#;d_V|g?|z9g(QhpXKWk#t$$;af)a3&@a3c)ffd zZY&UFvgx^x8Yw%ASYj#3v;e9pCc>qBHa;mx&}e*^FZG4TX@y@&&lB<$inDx`Fx3a9 z|3YFMKf^pV#MG9tn9%1)D4oSh3a)twvNc_GbEOYc@?AKgAQG>MMOv>9 z{m9x4jX}i(A}(33{IdXrE%HAzCzy$biufiLcH;G9%7iG%j7it1pJS?_h6U;_l8`We zX_q3i?2+~9a%?L`oXN|9Qak&8iRK9GtZ9SA!4egM2_6tsk*CCryR&ql-GoeD{1;L~ ztTx?*67iquCa5gMgkVGU44%pChsbBX2$9YX7K1HNczQ16xZ@}}3qtw==C=TR6S_kD zg`w^pIXv3vez@yo^ANO*-xXH6TskALk%LBQK#)ZO)sU2VXezdOn6!rp@iR=Ot}%mz zg~*geNtcgh-G;rRFI}h*=e}qP#JLI0XlK+PN*ICvXf9?v%ovW~!XVhV!tAavvx{lQ z>~oI!UBWGcjvNF`!U=H`$1)uZCzhq0WqD*2@{AI$Yv$cMi;XTURW-pxIaQi5vv1k& zfO&%&_*gWeW}kJ4K9f{sNr?>rzJ~0=i^G-J88I>?3q`tM=p=*6+A+X_*KPO87^CLo z(-v#D3Y`*BF78toq$&i8FnfS4tx#3IyJ3~TSz)%czaqU#UywxLV_{5()WZZscdkf& zaLPK6dr^F6LBH6}sgSptsTl(lZ$pJ0po}7wnPnd886}g8&UiC^N^pDdJV8i@YItg_45ZfFjKkfK)j_+;e8G!XC=> zmH|of`ow}WnWlClv-Rn2Gzo4LP$I*D3bEn`0{S{Jeq}?Sth`0HVH8o_;EK#@SD+L} zwSY1f-$9e5^KDsc-5P!QG{bJ|V#&7I6oX2KC_;r3u!P_Nod64FNc3rEn!>RisZlUU znW8QdqiG!5yBbM6CKJJ|bYNC)itj9`F--!{)4loQx zq7fsANNQSvQ4lAwq{U3e9*5tqGF-9>Oi0&q$GSCCfb|w?cLtw3?#3X6HW?1KOjuk< zUj%(+dJxN?RmQFfOA{?u=v(NBZPqou~$cxph#hCJ%+#BFF&SZyQ4848I`L)-!OCn4S_332p!U}bDjN=yjA zCmV|U^8`Tb>p+PxrYnhKk-Mm)2-el&sqQ3tzJ$FY&dWrKbSxTuUOE=LY9)j&BK(qC z3sg5UoopWEvOMfrx{7O=$1KP%?8=boW#DSm0Si3_m0zqp< z9L)}+tCVfb7#&cSssSD_q_@$ifsc$Jx)pHA?M{RUMUUVYzfq#?21;a$l~iq@NWBrQ zjYvyK88pohPS?b)N#}pNp9R@mXjZ<0aMmS{7&8m6W<+RTWkIMB`pIyCf=XD}JT2f0Bv8I8W9!*e&|y>2<;YED zrMn7kZuzPEF| zbb_}HBBUy@*@r8MsWg^d@`iyCh-WY$o-B(C?XMN7vVwR>(8erS_)~j%O*FLVGNgth z^3^8*6zD^)@rLk&U@a<*WN`~uAN^UM_5m$tw3v=E$mO*xA!#Y2M07=O0{S7`jJy@H zGcS7Nmq|Mzc(a~BD*px!Q3-L7(NQ~cgwVhBRv(WMOo4^aQFFDOnA`lG!s$900|SaH zc9PnHW`1` zXegFYDn6Eg>9%Ih8G&rx6&Oni;BLs3M4|J{1-w`dm>9Bi0A%1RRW6Q%@pxWv^3Z-{ zc^kS0LJ4Ba@(*DbDpCnFAQ?F3oFT^i0eV0UDOD*?LB+%bzT+Dq>Xh2EI*vdWD#&)W zcN`+#Z}=~x>%||*(~#DSiU}um zCS*JzLM&2Wnphl9XH9Qcpn=4PF=ZYw>vmE`#(SdSV=Ilo*gqDNOfFI&^g7TX^r$@E z2+Iwp7z_$E=-pvUAg4sf3%&`s{aTq+`BLPEwme|>u<>CSH88|6sRo>5Zo)Mi>12XF zQg@zVPzLD_YiEeOU3k4LLf*;-dssRxf!E1&JD z6c~)iBZ?NK`^U-~{q~KrjiMWU7C|h*KPD&*KQ_s(m zhuea2hN?|@VVSGX~--fe*$Oa1#HH2iD_SqyQYMcR9*tv2k zRO}p83ffXaRvlOzVXaBn1r)%c!oad&cldyjqY5_Sv`9@T)&}SG{0IXIO{U`Y5kAgxAz(dp zPol$EmFO79)``1VFfVVv#defzf)6CvfDm%q;hTCsMT^& z^r4!0kwcZ?Ug2>^~{_N!yDGzU}{ArKzKS_nlf zg+QyKrkg;(CV)skv`qEwX|!`OM7??^j95s7VZ^b3*^iiUob&A~Us5xAo3bKxekV?AeE6H>IxMBSI z@BdIo`+}LmQ^c%}o1aw&c>qh|?8)iQO4HL{Rhwi-2!1k6CX%#leTTl;=qwKXXs=BP zGG<^92C)Pglcf&*vdE#I_qWSFwC4VNvp20Q+svUaPX(3B#5HMD5EdUcrT}$PWY5x2 zRC0v3*iOl`lL|F#rNWMXBozAibv3jY=3N@s-ip{xC?D%Bcf=b^J8SCJH`Ta2q9uYS zZZz#Diin0jV1k(lcGH92QrB9K>sQ`V`}U3SE&8M#l4)L>NEbc{BOK$}zr^SP=V>HVnDSx;A0K4X)gm&dB!s|a222jjVLlY| zCDe1-RaPt`N&!-aCN{?QybTOdlOtc?k&+by{B$2 z|LZL2BhvDCec%eUx%=HWF-(%<^(8CR4&~Q8FKuC98?WD4q5fED>VQchjd_33hrh3W z*M~=}Dv3^ohnlL%Np_RvElD6~NJu6fnz4zga@qUpz0?J!y%jRX+ynnqsd#b)Xa2}E zjMp!GsD>pM$q_)~8M%I`cY^%ieG)yufjvJ`ZxhMe?_>2Iry*9XQl|=*%~++jEn?Y5 zu}1yNDs^G@z6TR&+aBiiG|VbbC4<_Q($}uI zZ62=GZT_Wh-9HZ~=C~Mb)T#w8C$h;X%)$0gS+-4Fsze#>mcQrbA* zmM6GXOiN@R{qSnlJHMP$!7W!B@&Ul3=k&hJ1x#BZ5YI_r3YCHxGUM4O|JqG3B zp>XBiK_<|fJTMY@f#p~Nn9IEb^}Ns22w_^UeMWAyb9B$o)xiVcM5&O1)^hR7KQP_5 zLeW4agsljW=GqYo^ zagD0ASt)0KrN*^IgoPY5NV;p|aI(DH^|xQCi!1+TnSI*~D(1bX7ksVu%7Z2u{PPL} z8ZrjvLE}cCNdlV6wd$#mg*U+KzLB!sxiDqnzF0#-Dx5SNIQQdP)!WLm{A4gwz}_xj z9)nIvc`@qf-M&?$dcB7b35A5{ARNbmP=j$_$WSD7J_RX)aXYztzgHL7oH0If9f@m} z>GRf+Z0de}^Ex$VY#t?%P+D5Nzr^#acPbq!UA`4fmT#pPvKD13nlE2H?k82BUBc=Y z8BCaDaj^=whD|5ff@#)l39BxwS#iSV*Q}Lav+}U{nw4kNo?o+JmPL7pxyg~iExG^R zpVfAjb+_LB7jnXVsjvS3`->!nH~MH4X2pZsfuJDl9Ygs5YTvD&Ws1SRc2EI+f$-V4MxTjnd{JsD}^XB3cJ{tkczxbZd8rtAx ziFSI#+3BH&o?6{uQ0fi~#lY;L5jNP$t*b}=_SRJi1}dteC5#<~twa?K6}I(HDmOf> zUu|+Lwyz#hn;ek*a0p5PGTQF?irVCs*-cYX(h9;CT(4K?FfX(hbS_zlW%-3zpC^h0 zHkQ)F>L$yuhD;`9i!#+MF2lC64BPtE*)#kaS%)0*RYc0N5*)!KX(R-6mx9btAdeEg zkSC8$ei_Qc=H$_YIXKOhp**Z%9WuxwPL@^bK{FD4_WjLN#~`mzT*-%Ewg^Qt9&S|+ z#h&73buc2_tRDDDb8Z+9mJ~Lta}#b>N8n!X+^~(?tp0jk@~Y0{@XSXeiCleh=x;8%_MMYGvwwerkG3XlPZ=@%j_G`JMS;5sFXOVsw-mi8B$Gh6rSl02;Z{3itnC`P;Mhr1-Vv|i1v z?UJ-5+hXp!uE{cMlP35fo!S6)6w`!9sSHZG{9j6CPyj8bW5kSzl)9v|U6qZ?UN3#O zpX@g@50k(zAplOE0CdX}0AJRcUC?RT=LvxBnof2|$%+;kB)IQGJ#9jwUA8pWG(GBoD^W!3Ct1O{)Y=aTIRl?2%@_fiU5fzV>IxY*VD=E4jMKghy}CkLUc4pRU<4V zfgM=NELzoKB?~@8^BdE4MLVo z=0Qo-t_Urr4`eafy?e65fHniHK4K^fL&QuDSJ|Iqg5gEQl#H63fdC}X#IDj8bx-yj zn9s^5$t6vGJ{;a+`a&y}!yfpNwxb|YtSNdGUuCJ*ql04ar@y%M+hr=F_zj8mVGjh| z=WQp@PYPKyzs&J|$Bn-SXX$^*pbN;>ruRo(U^2+}36b_okC3 z(!5gQafrC2uac6+G$w7B>Z!cDd|nt6+ca=MSD4~-KaokAOU9)#m681&XYXcakaScA zC7z~)iPrjk82lK<&|{61xc?+AF8nF>Yyaqui?a!+a%!IBs>@U}-s<2?{&t!*M zc~5A=}fQ{s70w+|Gj6jkGP|mi%{Kw{ex=AY(AXktAEBoKOwSY zj6-xR53YI-%$JNdYrYkH6(+>11T?AXe}ccmGMu(L-wr;uAYWp;oM%(Hv0`3lgC%Tx z6nZr%iD4vjrCFLA{f8-371!MTi8KM}swTya|g(N~!R86Ww=cdFS6- z#=n>hppDaP?^c^dV4|W;iXkUVF(d{dIWrEHZww}K`iYXUs^CuJUz8KWB?J66G5m^c z^wxcnU9&=O%-nYe)N&&RZb;m=);bVs__V20r+Qn(kB;E$y@Fjqnt?PlX~q~L&=~l1 zsom(k>_9Tx1p_4+kr!0s88g$v3>cOpyFwZX{;Ez_7|OcT25GI7{<2T9Q+sfy#)P;q zlQ8_HpitV=Uf<+4){}adzR5p?q68#9%!-7c5m6#ajKfVRXnJjv?L?H|0fJ_f7>Aos z(B#Q_S&>Rri~m?kWBQvh$duR6Nq`U9(7hDiJAqifd-M8*-Qxk>O9`CJ+q@i{TCaO0 zV!`^tSxd56stJb_0yILWaX5(P$%o#LU>pu& z1IdS&*P?{^KZ3ELVQH{ZU?x_6)?qoZ6NWm;B!_`|+^cGbu|$KCOk752;eCiPJSYmE z+!&03taBMk&y>vPkK`FuN1`Y<;RKliCVynMIJi6&tn!xt#>fT5Yg@ENYj#TBi=Mids*si`cDs9H#XMk^b^8jg}Ii| z)_rR)>CQYh0QQfKA#(!Tl4W)XbPR~au;ifLl%y<#2IGi<*lZIU6Ih0>knWEPKu~Y< zG@DM!145p$VY<1eHceV~yQ$YE8vDj$6!`y`dlLY;sw)4#UM=1IUR5R4Nhj%~19??6 zqyq^_AcPo#Nd*%EVG~3_QNyBOSc8Z<0u>ODO^pIxRKzGagb@TBq(Kn_I*7|C2r4o< z0)hgf!iWw!2>;Lb+*ehv)1A;^bbkLpQdMuc%Q@$sbMDzL8JFun&;E1$=La928$OfI ze(Uq@-udD3?0ugftn42CG^a05Eer>P?E2dVKffsaaW4Dp=iK|3gwIo1E5lG8ddj`0 z9^SCce=3=d06i=nR|Omx1XTf0#WQ5hZ>$qR!|FAcZp3SMwsE5mIj-;ST5 z@+ki(HUb0j!?-Z`TDjQ0c4b(t{y30vBhK9(=WoBdqN99SZad}JIL^oo=!#prGMqa8 zQ8}6*S)C(AHH|pvjt6gC8P3dd1l7;?53k())104+*XT+HuY^;ku}M0xgb(csd9(W1sYsS`d$ zb2%*QPq>dA8eTZ%1}k6@#bw1>Y6UVDI9f;L1~>1G;kn!TckrwsH!A$-um(Z}KB|qM zyfJ*Yd+PP!8?%QM2Uol)%x8lSy8RCiKM*`T_?^QU9V1x$mT)?U!y&2Jy%pY9c|}$?G_rAwt{Z7keFRbOv%id?&~{_>2nYBPo#c)1z2~*G2zkK zvjcZ?sbelDm(PAj_`^2LQWmP}sBCj)Jy`V4aQ>`&@Ut);g67GOs0SP=4y&Me-2J&J zia2FTVljC%s%+)I2S5AHa8?jJ=>GlKaB}dx`^~Z8iX&PZ_Ouf+*W9pg&IvjE|o z%Wi$fyTXH8)uZZb)Aopbb9yhg3=(VOp%#hZ6U>h=LGuiB$s~zteP-PGrm_`YY|Z!` zfWB?2z!T!9oT{yrShRfjM03i8=9DdbVv{NBTGLWt4_@iszB=sHl;6KP+_6noDZo}o zC7`S<^P{W7(>WpIu;arI1`@me_Z)SlE+_#deX-ucBH1<$ifu_=aiEnupgH zrdnY36I*mMviaR}nfjgX;P-?(y&gdV)4~BL*39yTjW@|P?P|bwkg~aTZH9Nrpgnls zd$6s+A|E(C{8<}P>2r^V+3!YD5q0eG;M4C7-_3jn-}e6SLs`xH1K~~kKPv`JA`lkO z8`CDjSJj34)fwUR77ep^ZmpEj@d@$Pmd&nP#uhNa_O4nch_v!EilwAo1eKAS-!>C( z&PPxY@4oiT@Sw(JRzD((@T!?y&nQ+_tT z7v~5kLZ{)woqkrhG`P&&eikJ7Gj~KIT$z2b!(G=1uMYm(?Y}lWyz-c3>JbbfK^s&a zbGNPy_YTf+FRcwA61a2p!fJayuL>s3`DBshvoee76_fB_jm)x9VeQ1xdL#Dxd$>2;&F6}P`I)U zz4SsF74)=_-0$8zZrgSnuPV4^u;YSoZZ>$pEx0J$Df`kx?j09}@xJUotZd)%YKmj0 zD=$*jo0w7lLZESJGaOrm7YFaZC?xveYB%PRa9VJ`+xe1kaj;_Wq)WnEgJAaH_8$ok z=hHPl8Xl7UTi!kR(eR!6T(mBn8vM{5zAii>xZK^k4psaI?r-bD>PpPOW;d%W#}3?* zCTaMMni09o8B@^G)fx%XZkZo4lQv;_KHBhPSDjsl~QM=uY5)OE+rG6S;jdN~|F zU=7b7nk2PUBMAY1~MwXn2j;I^#@A>EsESBH5&QCBYl7sFkAfG=pkU-%ChTjnZghOMI98bIjS9%4rDle?We*S z!Fvaf`xFw7130E$8E(sx8C-N_ct)1rw_g?hgpYNf4WG}xn0M!|53BmTZhg3G;|raN zk7BnmhmCzIy5Lo@jwa((d;Ozok0M1r5PG=hHy!Aw1~ZjwI@`pb!sh5Sr*!RDZOi9T z>mfM6J^VSm3@xVdcMvxPsY!~UlNGT&-YvC!97H&L{*s0*fYRc;${|zQ?Y%1exZi$0 zt$n_#Hd;dhhD%0;<4sVU)`Em%xBlwzOwM)N_L^{6@R`A5t_dgQMiybC5`)&{?bn9O z+ij$`O{3b4+qP-X4dJ_xN7rr$AJ4Wa1Z)f^5v zCNINpd$wC_@Ri$>>B<~`R|M69`^JrI&1bv$H-!fs)*5np?T&g~wAQX|>$3HV^0aUO zR?cz%c~f}6$SY>_hKAKQhf~`tCB5oK-9~GKn2(1tyfg#d!i2}P>Cm4 zkx}ex{I;ewCYW$#lskwa8;E04i(@EP_fF6ZyIzJpB5p@zyb#YDocyoho&g73zv&is z!Jl)Vy(K(v)>uT)1y2*1h2D{*2R@2fRn#T%r0ZQ3U4eKnaIgPLIHh}xY_59Ah!9JU zyQnz!hry$RZ!V49K42%kwmkNy!K3c5F=H2_DPJ*W>>}!=|9H&Uw+9~_+->aGdjoF1 zR2h2(X;`j%?6L`u!meZvLSB?=L1q3F_Ua#V&vlR8rK($u!tP{rCsX+td6MEoI%SIj zt7m^D{0_aWyfyqy@W;Vj2ie(k`0shQg}aqj)Hi%8t0eGz<#2b;ZQ)5OK#SA1!WPFiHP8y6NJT9TS3n6{oH(Ka+9L(DC!UxnptvPkHbPX*#>Qr+imCKA z!j#JLcUC|vL-kKgYi_4IFrS>`PP&8b(%J5Ncd&U{JNV=s;UdLaZ~u+(uGXTcFGxWs z+tkr_Z$fCnPza43qM}!nY?hpOnhsGb+3AVhb_Q}_7B@EhzTuemGSiI4m43g6Dh zoV(e5UhXcsn_m~Xr|%~G=wdhXn_;h;@~!ZS@!uM>BbjQdEsudXs&5<|{I_p~#b9xB z@z&?0pxKI&o85%w91T3%ijwPXLeq`CXOk$oIroH<+VSYP2ghJ7Y{QIDG{3D$3Dy?O z6y?^0+13QZ`fZKg7R(5G8pCw3LVy1r=;oe57kxYY9tXky*HquJhs5Z>fxdy-RgYekYmNt#w7C(7K{Mv?gGG=7>N$-fOWr|kIl(_fI zc=E8&{2}~=%p4nh+IZZ;ytxvR4ecxX9N<&U)#9^6^tN28Lb^%43{`pw^y4t?=>G7! z;9hsj{o$9Qd+l^{1MmqyB5R{b`>cmiAU2I80oXbUSk9eQXbI`l7KAB|xrI$$dP8A; zv`G(y`)zYC0Zv5Tbg2qnE*781;$g=bbQC}2);FHFzj)j)8h|3;p#sgGWZAljR&7_Cl9^x zpuh3sC){Va(bJyQkDtiMgU-m^_qj8$@m6DYa5{NHOLbh-#roqovpXtZBq-!b^K+L7 z=z6r2o9XuWNw~94Iz0X-;ZMh(%d4zK1v}Y+dc=LYLw_2^Ev`WvU((h2KQ*r5?)WLb zmq*;3hr(I&{{60ix-WzYLJ%0v4@BwYLQ}3iWEn+ z-{@(RV%%BnDN!rcqJTTAdhr{u0Fi+SLG)CI!Oc(;@2^j7ubD#x7)-p!C7XH#@28KasL@=w) zfP3cQaF>S7H$^E{LWntJYpT^<|CG%e#nDsOH!1I1@E3=?L-3t{z}6^J2kt{2AV8qq z=;hWZm!f))*uVn@O}lC@xtsqZoY440`zbx7uJd)fIHYA1IN$Yy*2)jG98wQ-X>Z={ z`iHh!EC#mSvt8WuokhHq^FX*Sd8r;yemtu0x?DnKSU&*CsumejIQ!?}_}+xV?8F=f z!NC$lzt;a}4|n~~!+A{>*}l6`cR#)e#<7v?_6<}Bp*zCJ#XeHlPAM^?bN!|a6^aof z&y#v5UGD9_NL%yLOLYrd#pHg|3xk%-A!Is{IfbXZ z%-Q3qaECTiPP3d*87z$BeD*JhE;5v2EjV9MiiB0RQ~kZm*{a&-t-i z^E5#gv)yG+W61fc``vHD?cJQ;vLpMg+n?`^4gZ6^CuWvUDpJfac8}qe@b<^W3x+5~ zX(ek^)`66gg{m;5n+N}zsb}1CzXb#5y6Q9G!d-mF6p2vBY|JY}*m52+{KtL{P*o*8Co~;eWWBe~-iI8WP^aJsY?FP!%Z{`;CNurH${YedQMP$kgUx zh+o|{AC&rqwMUD7S;2xlD~HSfmpxaRFYeMPrH-i_{G{t!-$9=FFyNVw76 z_lIz9=LX&9N7u8&!`hnqr$d^?z)}}kJ$D;h9(Qo zR3;|+%GN*qKbbh&r+O9j^W8bmh5LZ@?>`sL34ZGS_FNb@9trI9Etp84gWJ+zIg#cp{1t0csTNtm1w5s3ytlRXrzZb&~OunUq@>Fo}g_(*tJHakg*u#i=^WY;d zhA#x!KjqxRFNHq}?r=A}9DX-A`||fiRag3RI4k=Ir|cfvxt~7&^VrUv+%10&SGEI3 z)2ZGRQ}ZJgzb`LR_U&;Aq>P#i%#7OblC$qO`fciuwveiw*d^Zui`Ohp)f< zlhNTL^Ve5YcckqYf1MLVC>-w0AUg1W+fV@uIL>-J#D-_Doq_TaAN zXj$OK_C%lIu+bZOqSQg85A;Mkx%Z8UX0|7gUX`Qvj=0ChL<>e<*`sbF;iYko;vayR z^r5uqNxQl>BLe5*K2M47Ollz(=LZ3C)2*Z)79%q8S@-+#tc6>~Mo%=73WG}8X;v6i zde86*gOne!0)$$Ps_P~{N~)-vxRPB`Q8x}*8&Y2{4ckJxyk221lQJW+#$mq5k+_bz zx!%$p9p9kDB~x4SYFtz);0egzsf*UVaqbm!S;83PM z+Ic~byQLQ09b7W_-tCxA^=r>?zG7u>Ns(NgAIiGSksCpQan>UN#%|;GQO~&RpUP9s zm5fwG%^_?Au7Aq?di!V=0;XpNTHD}$xz2lw77!Zmr| z;CVBn1NiM8oDFv)B7IJ@P4#R%JXgG>xegi17k7`2#63}75beds>lZ`~KJH%-y{Gs4fu|N#Vyuyh zrQA@a{j7W2YoZ+*mJ&xY5-D*QeR!swM9B}I5=TBjGbPUIUEF4wyMo^FYu_v43~-XtAkqytcV=A|MiNfHwfP6Ufw6V#zUN<<30(IZ6*-!QuZE+-%W_y zSD%E)lg%VVZUgZyLEIkj5Vr?5$>vK3u57ZM-webRxZ)PAjIP|_u5*GJ87f=OgR^`m z`M!wn_b1<9$M>HQX}&U=x66MLbYDja^Z!+TfSItKDWa^YXh3IDzo=95k|Bh&v~}*7 z{h}A3|F`b%>Hm!VqZx1YRuUE-34(0fyp@DQ4w3{x%lhdg=Vt*F3iS$jeC50@zLqNc z5dLppsZvmRCtG!BT(yz01F_Y-c`$nb^fU2vDve7PGL{S#)p7pUIxDBU%MOg5X|aqV zEMxGJgQ9z~!N0ge4vF3s+&K94L!u)BSjdz^qt{M7TQ!iRYi8;*$-~N-JS{>0S*q`y zc4%?W;H`sSKD4+)FyURr;@W3(xz{#2&&r-blGjZI(*51)L!-VioSj9n=4}2feLmza zdt)>`=yZ3yG1|6q4VlwA-waheges?0JC%wR)-R$i!tUseI(NFp=Og4z&%)I zoczg<@@A_kH&ES~uj>k{s|)ztz~^iDe3thY@_8PypNp0T)z{^gDE>D2uQB-6 zH$}?>a%p8J560XWTpD~l_*ih-h29cPJ8#MYfgFRJB~T}=%ZG>{cUeO;w^7J{IEB@@zC(~2OY5AiWM9O zzqGz&L$LU@doEhIVE%5qV(s&WosJTPt;XnkzCJ**y=Z01@%5e)uiu>n3^W*y=<6zd z-alTda@=tHS&lmAW(@Dcw#V}s-RdfTE-2}6Yify5z~S-3qZx1LEM3Ee)SJFpiM9-z zmvo;Q-phJSmacBTRMODM;j`l+8H=db9r@;H#n>-WOj;1xt;Bi=W zjP=Tr)X{eunI3IUPvr-h-onhs&4b0)k)BenZtFSqIy)d|oHd5AOQAHET%lw5=wKDJ zc>Otwr+y^USY1(Muf++W#KtwvQuPVw;thPj#tw>W*xPRtWvX6lvxpLo8Q!vtMYGI? zvSXd+VW0OCy(6%unDQC(Ia|b9o5zRMX$k6gd@B>r2xXPpxmYh$w`U)?E>|ZxW=95y zXLq3VVFMrU9|pKye_Awt`^p6d0*@238qc$It~RdRBB{y0kWdA^u}Z5d zXSmJ63`f`K46l+dmdIvB*k7sDnbkX>B<|cb$R4a~L49417V(vvfII7ce`_>p#RY~F zIU`W^{DPLdT+LQ>>1^7zp8INLp|Ie)(6TDUSoKI~SLdI0*S;-!4H?b3YQPhe`u9b% zOP{9U^wL+tdslrUr~TH0Q#GznwaBc7)N|FhM-vkoNRcEMh&!Q630U-JO;yPD}ROAqRSY-|X;u)~kp-SPHl zza6esVq%UrXo(ST_;`)h@xXe|Kil&W0 zZ30E-Arq)&`U$t^QPHH;B3wfVyzhMi8LXTvYnEMr>Hu4?n;b3QRm(91p(k58$)?9O zXsTF0C%?w0d}k|<<=H>czDXjqwO1)YI=3b%ygALF8Tx;CFn?A>HB?aH2;I74}C}UhRI>PI9_sw?y78hID;=$9-=nb-S3Fb>sgx@sRBHb zmF0KW1MV&FjBX6=#j|+PjXyS;*&W79;>8VXhsXKl&OR<0-;-a8uWWJgY~8^5=HGws zvC*`G=q%?xeQdOE|Aj%Zx;%S^7hN3MqVeYtm6~keWkt^YVMh0q3Au`%-8*|ma~h1a z(=9kITGEAnu$Y<_ceu63MQa)$0r(`mu*FP@l|6-?CVj8ts}`ts#~&4U^Q$q%e3oWd z@OmupskzC5|ERUjt0ljPnyis>V;+5zwWtanLwTfed!f16M@JKOv?l!`qb(*;NTz8> z)4U4_7~H+@ing!iDodGNYe~UUy#&?cOZ0e$8@rl)aHl(Xb@ZLmN1EfKn7o^QJU0q% z_3_cJ4FpLS$j(R^N=9d63*;3unnq~kbp&8Qcm~SC)f8ILT#~CI(DH>ry$24bIf%J$ zd@%#f8S}hklUAj<_M?bgY^=6&Tm$8Y)#Bx#UhA^gE*|z8^|3Q1x?l?&HO_n>LsOz? zl41RGhj4ZgO)-$xToMlFS5I~*^u?HJjp7;(YqIrWt736nu*GpG966}=GwFNRX3@7Z zb2WwJB0Ncf@M7!%j2$*8?kkLP?;9V? ztvR(;bpL)LB@VZ7zdw=fsVS_L%6GH1et-5G>LLun27bQgZ$D$|B%I4MfM$u$xW9Y> zqOsbqAAIUN>Kh?R9zIk;JRY4y2lm0%Y*}%9;R+^i9MS7!`6{>E#V19J^Bsr;_k)w7 zsgU(=Pl~2Dx<$mzZIZg6pej(XPiVBzN7pb84FQyy_+)30DGJtcb0U(|JtuGibG_$y zcHMT%Vzb1Q+c(sR-PAb!^|Ag9=8tJW%EJ1SqXQ<>;p;NVpQDPLlxX*8%#D3Fmepye zM7z$|ZLIHbKAyodQ6bZRtrHv7nAYYp92?x6U~d16-Q@B-V34N*@yQ3P#n*&Lv7QT;6o)wLhKTv9R?-3M8Nlp*ic2n){TmoPgH z+U)hV=Yk8~6ZO5xPFU`*mSk!!RlZ;v5DyK&HlzlYDtG6LF#NX8YD*i|&qFJ!V`-Ak zVlc|@soJA*_}Rj0(Y^aU(egLgv$cfo%BLrTWx;lpn6$bf1Lu0)6TAYF5q9h=&v%^H!cp?}x)=hhn`)NjL51?%n>CdA z{<1c7b!&)GcHlaS)|O5XWRqif4@2`kWpmXS#j|9r<%q6-KTNBYCT$`qQPuneR*E4n{wwbcnxLg(#0Q&m!4N!?2pE!v879c zH!>U!wcW=A_~L6RMnpR-EDnKIi0RaL$!evd}APNNTr(+y{MC=m)im`WWCm! zypc4Mo>_3ZlppfhOSK%8b5AAgt2!V)m`(PQv@e>6&zxpwT5@a2L0Usd1Xuh3qqVv> z^*FfxjA~td7Ghcb+4r5PS1Z;ydp2uFm1GM^i~feFm@86qUjCo#8ozzZAwrRQH&mBu zA#%D#!_dLu(>GKXv!t`RhJlb{i5qW{(u?tA@zTx~G6b`Gy>N8m+(<3#`>zzmo* zC@x9cur~SUrObZiV>#*3%wZk$w;T+1xR*W<4U9*%!SSf`J;c3Mz)X&HuQ>zX)p71k zXGGghJPzHk{zOJxaG;OP{ZU5#?&33|zD8&1J%S|WfH#{;$y2j3zy*t#s6G%BdGC%u z92vl|gT4b}u9c|O@;(L2?1Pw5aTdrlTV()xh7f0wJ>R|`bQdyHFbf8iH9&ro+l}Nt zq5IRTFGVOT zJ7=MO7B&Ias*LU`j+;|E-4X#gS>*D?-R&02T~7B~chv&F{WH9qm1RoD+nY%W&g(Xu zi(=bp57Yw?muJ2V>^6-U$6HW3r6s6K$zG1)+XAUbRU;q=Y%<5pd16EgKmcYW)b&~p zxWm)!Hg9z?wH%PiVGS_<5rr`8fm?Q7H1QBtN^@9(L_NpaX37Q1pHRV=$7FKkOZ~kY|)Bv1{Mvw zlGwpQNtzfkZu2f@cglyN84aCX7`uuH$#0y+i6NFAb;#3W0hZ#sml0L2^!;lyT*JsNa%mENuXphw&m+KEX0gZ2{} zdM>e{H=PDR#9PZLF25Qq2oZrGPaC|Bz1(;y-PNyb${QgA5eZaH=~$WHOC)Ev8GyOe zn?E@h5{T$|^PE64Bn#5e7#c)qpdc>x-wO1E3BbT z?U(cQ_pQ+pu1r#y;1q0+gA=rLvLyRZpdCyM*izE(F8hsps`)_4F1*mbKnZ)^An&00 zM2}tINc-l6Ub{ds+2n$I_QGhJQm)>``OCKaif-~n9JmY9+`2^i6bO{$W?6UOFqPkz zi<{Upk*58^*o&iT-&X@vc^(g>WTIa}H)yflP*2{iHgXpDmx1Xy|Gc?O6Y?p89okt5|o|AX8prEzu{3p7IZOmz7T_o!BH3 zq{KkcoEp9p_veeFxDQPnZl^8ONhmYCrpCqP8S&gpqHWk+L-A|ThT#g;E`Tar*?ybv zUG9WSqL~eEK=I7fx02vcG^=`rGrRMCsD?x|5{mQ#b}RJDgl_oo+A zN8$Ae|6v}Ib_xH%6rHVn)lL3zG;MDj)J^^((6{+Z!d~7cgNOn9L_}O_`PB3{+DrnO z#)qRR7=HN0`qKb_i_=dUkF7E=2KHZLq%F93@=O2Mxpf0RPIOLx#mqN(f{MDezqz-HXt>ES=tlgh~k z2V7yEPM8ESEDJLXyL_BBE_UR=+WZhU1xqqIgaGYZf?{Z<*9bgj8Tr;vVy{IJZ`(mZ z?Vg^AH>+nW-^n(QHqZm|!v}&cAY{6Ejmo;Ww`qAQL_9?#%=$wN2GFn`+!%lq@2gGt ztC}$WpQ)TkwqrR5^4*CaCDvEc8%)~w>p@>!`*_O4##On2pSm>437)~#BH%hX8tc&*q-9+-{BLrSZ` z+beCA<7j?%eQV2%*TO`Im$4M*?y6x1)0SHB!0XK}o2%N_;rzI^#t!1WYiilX9)Ue$ zE*2n~2V7m!7o?&{PYl}?EnzQemyjXNND{~Qq zU|+R|mL?`nQ&y~n0)2wY?t}s?E0;V;RkP~bt^F9}exi8RA}wMCD*?r4JfSh1Osxn! z1F2--j@=F-A<1f7UBCH{zj*HbConGUuOSWklLObUEWoU$9?71<5ihH2tU1%?qx$2h z)WE*}WOj9tSpF-YYETy(Ab?^^pwG~iG+Q`|kp};ic)`YCiiz^BYh`tssg*=@WhO}* zayXTnqeE~fX~4ow^xNbd2!7n*x-Td0Vk6g9()i*y+Lf@k!*oCj z?epGgMQek+B#XLK6Ue^-G7HvXgl}EB0$Z59+>FP9>lP1Zn!7v|-{VG4+#D*z!Kd-^@0B|hFIE+qyl?&1Ga zTeJ<@B_*t3z=)n_WK44qt1&mwgC{z{(Sqh?DPPi&9lR~|&fcc_7Ua#}fEgA1%r%$n za>WZXg&G?h%}cKpPS$`su3wrxe`(Jd)y1L--;8HT!?2MYXhBat-gWU(*L!(X5>jld zF%&6*M~XJoAcfUJm24#-8)EQV+y0UzlJ|&V)H1KxFChlP1I(Iu6|Sh$r!hW2k;V)K zE#DI2txxRTBj&*z9nr%>Id)Wnh`aOhXzE)e1wAzLke)!K77r5B4>am^#qT}N( z6HOikLZq#ZF2qy|mB*EiZ>nAHD_2DQcoZMLBAQl2K@^?93_4x@lhGRn=!&^WsDk)J z+CXSH9A{;^mz7s(xnOx*;2wQ#ar*`eyM$}KaFTH(zRwYDBxVk*FZG-56q)L&{*$T< zhe6hJ_3V)AHQ`npUCm4=&z)j1IIB5wNxTQc498*t{o~{EYOch=Nvn|UTgGVu6k-bLWxI%$b;u8tYG6-zUR@=a|Dv$pzs z*@U89$r!-U5sVY7-D+l_YRkEwRQjZ+f$W1=!cCN$#z)f!)$$D(PW=iy0UMn2;!Mb) zv0uKiG(%C@rP29k>f%)W)4Tfm#8Q@E`2r-RJwFgc#$BsfVZrUQn zMShcyWr#kKLF@+1i}SMmL?C5o3Et9tG1R`-C0aL-pp)X8!6@s~M2W zM`Bw-$w)Fy*>TZ7N3j%*5sJ=fsso)&=s&IgXvS1}uKWMZ!UT$>YqLhx_&6Ikx3M+Q zzlb*r1R4Y+1Ip?o&%972@%7fqVt{BhM!{9sADhm-tCN5!4G`89XHOMa(E4;CZ)?u_ z?zeYt1CY{v^l+6LRV*InD{6=ff)kI{xvL{88my3lI`i7C&76g6@Ahi&AhEyJZSUwO z6Y8(^?v0wyGyH&Q7HWOOIyX^WKNjqPWSd!t^dMd~q_;e7@Rz zE6YGTg8)>B8rZ!M+M{nh7A_6-u`w{56igUugsk7Vtl)M&;=KFi)zQQfBZhYDR^A2I zV4Fk|9Og-6fUZR62}}i_thm%15XzpVvOb5yLXy@Rw*hs*rD@RrkI7YQ#dz%seebDO z7?KiEAdsmm}kE8QjCR76KTQ@PB5T@q297?&}!_uBk3%wJTR zaHdS9acP!?gey}lr5I1r=%LJBnz)rfwB+lhSt6d1BW(E!^^1C!Q(Oi$x9AI`=Fu~F zuBU3NE|WAMB84d!>!6Go4-6!CY)NM750OHJN0(J$rd?t-XPPL|nPmtgV+J!Z4%oYS zaF?k($A?-%B7k{TJ7Wf%Tw#5QmH;EVBbTh$EB&9#Wl+!c$_jf<96npQnq$s*iB}G9 zd#cihHH<22e8{OWMKxNm#1M1t1B+C%0Dv(Rc`5Lz!Jv9tJP&8 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

    G^bSb>bXhXwQhximcbtFc*$Lj*}NOI1PQ~F&x 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 S{RnzjO%jm4Cs(^V?f)OE2HREu delta 401940 zcmeEv2bdJa7H*&Fp3u{?Yy%4{ut3j{79@!X2!?G$vVu7ai+a@sQ53T{fP$!qV55bK z1jTd(MOPgJR8&+@R17F)P((z`a79IV|EZpynO#}ko8EWd_dWP_y1TlaSM}nJ z!=9Uch}VzBT_C@ z_v5q>?l00b{9df?FH!fGs(LO{HC(QKUG>{Xl{!@Y_Ek9#Q>FT8q7$m2R?l^A-=Fa(7{x^9#ZwF-$Qh7g_cu7PIgq5IkuwK7F(?vL<>jk1TCPLw`M$uR^(zJH_*R9)K z16W#|(6AORj(b-c&0Cg+1V#|;N5iOC)Q|D_0A@YhUW6%J5N;6mmKjZ&3mugdVotQ4 zq978E6@*GC95uq4u7|ad_k+ekheJ&Zxd zWa&Bv3!sKDi_uu9X-pR=r1c7gB9RD1EG=Xg2#OS9{se{-V@+Y6RFn_}!YK|#gdS?B z=`mfmW3gzg0HYr(2`A%8Z(gX=e!3CX_4;}wEMmIBvmMh5kjKzOOqiH{flgxlNyI}f zi!ksaqn2-gK2qUT;7!hHhSGZodMI@%xt$R?rx?!L~R67`hYiL?jkP$f~ zthb1j0TnQ37!y=0!l5D^fQL|PJ<`Is8uc_IDhfqdgrdP8xRP9#!*k;Om! zV3-Xr8SQCcQAEAdq6eav-kfOL6z~kleZIB{^F=g4Oqd|TCZ)(-^6e^NMII78Xb2GW zaBXUcj?miCP;D>`(|$JTNUb{^r5!>?YdfNJj5b53W3}I7bewh)9k0zIIzju|pcA#f z(Mj4gorY_xV$@2zBPPnrwR6PCa_w?)db###$`EIiYdcJFX1R8<_*=R5B#E=iwI57z zcDeSwDb6X^zB5Hdxpux7Rjz$&iqYkoByn!J_KhjVlxts`;=FS0{jfN{T-$DnvE|x( zhPa?y`^pp-mTTKgF|J(OYKn`>wJ%I@ak+LUiA&10=SW;yu6<&P%Tndq$ELWvT>H=z zE()8XPr0^{#G&Qd^+NP5Crunyu009H=jLbTdh>1bE%Qxt@O*uqc~AHmYq@nx_zrWE zIW=Ye9QwfAV7_a>0H2-csV17nlMz%)2h-`^`9=R>FIr3TL)5xaC#>gj;k0T#N zK8$=2c|Y=AL#=P46CN$BUV9qjk zM}Lj}68$;4EBcS<&ge(xx6w7B$BiGO-$zs5MJJ1|qT8Zh;`&8&OZ4;T=ICe9AEI+Y zpGG%DH%6~`FM832=ocXUB?esoTBL*(7a zJCXH~Ypp5PWb38Ki;)*1o6Yt5$JR&I2i6AbUF#idz4f-W#9Co3v!1lR3EgkqXWg5! z?y(kHcU$wVdDdKOs`aV)nDwyrkhR!aWIbr@H2!WqVBKXcuf_`qy&iil_G)ZxY)kl+SnB228f0A^dnxu}>;+_9zZTI~AR)v;@1znH(7*TsG}pEjq)el;h= z_L!4nQ({k<6Js~TR+y8;WU<^_W%m=AX|A2Ju4i_8bj`_22z zd(Ef9lf^xzXWndnMKjGA=1t~w^G0);S!ui*eJ8p;`d0MK=o{Xd@e}*q6`dEI8@)4n zNA&jSZPD3L8ND@nSLl}Lg3w)|S@`v$H%DhiXGCv`PLJLgoff?zx?aCNdR=sCbbe@F zXm04*=#=Q>sAm);Q@`u$^&cZYM81!F7x^~wP2}sy_Q+R}+e6zTDSaeP(@XO%|K1jn>_2(ncW$vDhd}4iQy&tpQv);1awBE4Rd5a60rM}jm zwN_eBTTfX_t+e&K{)F|oRcYN6xhe9f^@w$cb-Q(&HQSQbt=28pEX%WQwq{y0tm)Q` z)->w|Yj^m1>(}r#*7xD7tx4A4iPi*bPwcnY;9q0khQAH}g311heva*m{S^B;{Eyhq z*pAqbu^(dJ$G(ew8~Y~qb!_{Av9Ds=VqeC-h;2dU&tscopT$0nZHjG-eG>aP_FU}Q z*vi;5v8Q8C#a6_Y$Gq6hv6-2^e7MmTDv0G!e#Ad}}pFBR~ z1@GNDr?!|OEGOh@y=jhcLQbeu%oZ+HbjO7sc6dh@_C9#6NJgCS;RTu#=EPNEs8Qya zeJ0XL1r*m&zErFhPIxdfm`-Rvnk!By;A)ZGw9oU_78Z9~D-sb4&yk@8nmd8~YPe2n zl3zU38HMA7obIA!Ua@^`YTa_9RA?x)VY%T_cQBzc|G)d8dUKdj=FVTnd2r`g?#8)# zcVW8*ZtV*Decf`WZZX_wrl7mjFNFG5s5^IpF#r!M{ReGO0a=`-I@gfcd8M~-Hbc@aWSe$GQ_Ty5U$@3_igp&0)`s5el1J38m{Jk zsM+ljre4Om9m6dhoea4fH+XZ4nuwJfyeI1(zt7qYMunr7ia6?YbT?j+2*<;g6Llx- zp^A>0=EQ@${_@+eLk+xP_3G5w%!MLcBIK^!;Ek@=Ni2DvYi%^+eWM~_I>OO9Xj+Ba z=sZ`9bC+!OUN7pq&m6q_)23p3Y3ea9lxb?t``&pC8hO{$ZzN`XqMG~ee>jd%Za zbF)6lHMjd?)!gKwMzqnpv#4pKm8)uQZ7tsY)2(ghLcut$LTgTHV|MnngyC*iIFb}T z8cvu8G}PRBjs+adyh{kn-KugqB8y9?#K(e2LfCD97N`pgfG?uVouINKHRdh}a4@T!r9jCydMahEkCnEQJtOkXY zv$uFhG;EaOXN^lclvzg%8XZ<3xHu9Q1?}=Pu(~42+1(B5!O;eyPTV`H4)<-qg1-#% zbDE>MyHx^~I^U^`+`*V?E+w=~dq@g;o8M|ebtBWZqmAOW^IPErhJB$ACTSQs&2EEP z;NjcCpd`_i6-GZJ#m^x}99BS%NRVFUP%_2qDM_w|Dv+sv(*o2c62T*K@F|k^{H(8T+GohzD*o0LEdG>b|<{`8z#=!pTSd& z&U$KZje1UTqaJwWFopqa6yY(bq2-NLTK2{iH|>O^pgF$HHn+Xz=I|6&_X0A2;np$IqU5-$(nv_Jfepy+$4Fn}McHUUqO$$e~-H@9(d zD#+q4*^~vwK>>fpwY&-6l!Xjg88XeE>`fWSco`BmnGo)ZO-9hTW~5Y35NfV1cN`Ie9?b55M&0G%1elKmmo8+r6io^rh{d-gMI0n=_es)C}f4YQBmsfv%zCnKhPDV~tYxG;dLuYcJ@1Q}3JR2iI6Ol!0|{i!M}9 zd1Z?|1WC#v$Wbf-0drQVCrCiJhX6$^Kxu&llt+23gv!3F^2x+3Dw!jWGs?KgY{hF( zq*N^Og|Wixq-}H@sL{wZPIK{jsX)kNN3b zVu|105=eQ#8~Z^4-sXrxe$ry4;(q`2{a#_Ka=O|Z+o~I#>fPJwpcG4+dPdsRnFr^j zO+4(N%(`~LXyf2#j^0r_9$ir+8yR-#c+eeTm&S#9T`Dl5f+bVIwfT~%x?Rbb!g;$3 z3;_Cx*Q>+Gj6s$&4=ZSRNRHiz9FwaZyAfbF-czmHrZNB#0HPc~JjD(;M*xtz4FCeA z0zf`-S`7_h?*`d{-y%n2{&YeeNuZBC>J#u&^;_crY*^7PW{ zsluCH+8*M07B8{Fvv`U7EM7VWV`g_z%!A3u>1{7vK<9eX+c|WN_i($DGF59_bqd78 zS_m^yN?e6$)cVl)KEMCAXHVofM*fUY<7oGR^XB9lz~Dn#v>g=ltO7a3T;3|;#NAX6nl8ksmfq27-AfQ#m8{1VarxoYC82J(yPv2oQ$Ajo1UdZJlPM zCb!ocrsyiV5;M0_S2G75h#V{lfXXIehj&*Mh1~CptVGmp0JhrzikW7221M7d1VTh{ z^N0jX0H=3f+osrX1NWX=u=MTDSnWQ5c+}jjT1BEEu2ZQZVT&@oOn7@bH;|_s7e1k> z5_>=Z_iKU@+_2eEI~oWPNf_R>UG_7)z1)#!! z9VJh4C(&50688^)$#az}ShV8TTstHz%@vqkmbC`>?1LN|`isz-Fw_9w-9Q!mx(sP; znm9JlRo_S7Kz%j*JO8#>?p?{^+th=mZ9MdJ08#86w{LqB;uMX=_!-`H`}R)}qg<&t zArVpiO2k~2T__O(Q84=BWvrvt(xtJ95W^l}XwW9pUyKhDl*$YoDHX-sAzX_x;AYqc zC_q4^Q833g@Bp^a5-ouKl!7+%;zj0wOd}06P_d15cZ;G_K4H!yABk}O>I>Jf`j~OB z2vwI@ykY}^;hOymG|Z7^>A7x%6H#<3+)*>#R$~EL*skEw4ws7KRrhdH1lxKUL#%kv zpZD&c=p6G}P^W-I=l9Uc@1a$j9)=m)ij|3idQ&vN$CkqQ?&4CO?ou}blH-z{i1Iui zU7+*jm;zlseW+F3mZgSRMrw#TkS}sl10H;-L3hYIxLe~C@j||pun4t8p-XCI0j)sa zwu*{GA-6UqPtmEoq6Ic%6gupw)`>^4kep_f{Yg}DKi#4(T%u`{)zTWl}_v0$SY2%DwyYN=AuifJ>a!E z0C5d??4X>Mut2)}|4u#B3ncK2?xk?zV0cg$<@JKujp5YkSD*wne_1$nuq+r!oIDJme=8q-wRaDF zBR|9LxPjdDA8IfS44u+E7POue-jzL?rXbI92Vo{fi;how-8-)18l4LJ1dJ`9!b_%# zJe5A06eYu;v!EGT$o*zFSwPefs&SOn5GbGnZ=U-*;djZ+!XDQYYZev0@CtEm;H(&n zq#`7x)~*fGh|}y01dlPBgSqttw8%zJ1;ao!e~@yw5(W;*Ar^TzDoIH(4foT{NVf;X zG3>en*2p7LDn29t=CP%5AX~8UkFyM?-A)iB_e+q*6K?Obt^MeXPZj?(Qn`&o9kj-yrMkbs4 z;N9dtvYt^J6PzH0wV7do4L!9aD0b6225*Tf7GgUC2{2HFo0t#a8zUelDL_Gt{3C-$ifp~8G<`T`Oqb1=|oH=1J7D7wMS)d*Eb zI%@m+vt8e5WbeYgk)b^c22lXAfU?2b*U^y&|- zXS;^=kW!tyv})%b$ifS-s`T!DusI%$`G6I}f&Td;_eQqF>S`s{WlF5(68n(|N-Pj+ zOd6x_vqjZL<_m7bJMy5e5M!AGL5K3D9n>Pl(o2$n+@%g8bllAvub^2LFq;ZF3ok(pqWA%eRAM*y3Yu^~*A(*ucWY%iOo6=i z2NxuxNC)2Fm*x5+f$&Yh7?ewan<`3@cjCb%5KoM86-jUfBdN?nSSki+G%lzcVh66J zVgoFhSPYyR2Nf0EZk(wD>jbE5SLQur4t@l?FcqW0$`^G*XjQeys&9s^b3x{qR*E|S zp2N_6j<_FSR!(=(U=xG#VkOZvuy`IbnDH^Td{>GARxn}t?&n4zCxF*t0hXc-Xb&0v zr)dJqA0YL0jIofi>-NXc*LAz{z|@6Or1u0AkdP8AXshZ~D;R35zm8C$0Hf}{4N9!p zhb2SoPC&Q0G4Gf4K3xDJE4L}gNWMslhiZl_jJ|LRO2st6bO9uo$#~eEWQ@fh3liXO z(09}w=oLgywpS^=3RK~3W}jQhZrj8GQ0gv`V#U=bgZzePrW7k5S^&=*D0P%cFJE|8 zgLDig=9SYS@i5K>FIFH4sHa}xigzos?^t_yGUqU_b=ilFtdn`ltO|k&U z?L%JSmKiZY0MyEoGna~X43Yi38jdL2ywzATYl9yfLy57K-)%7($sd-A#zXO15%;PJ z8N^5=R97~crgQpV>6&NPq-!eU6>DQy7Ldu=E|PDW;sowVp03HO8T|>h)2C7&?N~s7 z2fGa7gMDB^+&UoAGX*3(+7V6FE8oCSm+4kr5FTxSl6EoCx3ET~C>pabX23mQ`bFol zgs$|t9uQrrq;NV03OAB67DhCS2j5PsZv8PpUeE*IE{gYo(NX2_?V`x>r*_d=so!~S zLdz*Ye_;{<<}nEn$1+JNz>IfLD6!aXpA2(SnCA*h400N1aCdPfE(I92{g^hf*_UlE z0Rd8U`AS~AEA@(2KuWJ)zx(MS@7sPYnx0$0)^;p?weSV6cFo>mFg=&O78=be`}HS^ zY+K)JBvNfy!XOVxIf&XjC7)^ zkxtm1z4n7UxdVX>fRqWQ<2G=ghQUs->Xogc7|*|O6-BsFc0L>V*v=%d zm7$tfCf{0JjUYGKJ4IHuck7t8hc3{WZZrVuHh|T*ItD&)a}5~CG~H&hqFFz97acRF zWirGZ4fqHdfn8&`16M{D6f@WBw$LoE=-8#S!+Z7EGPo1))6{I?y9g=Kpu1@P9&4R0~`=FV8@< zuzdC2iI>B40%>{1Js*C+He2_VUo|{V`Qht{DUiD+mizJ~vN${o-F}%R+Mc{56n$f@ zEE=rBsC&&6kXi#NfvG$Z$}FR(D&W<9wkQR~4CZ1Jk`wxFx>t=&#G!S@(4;XgSpdU; zk+krJ%~;ANg&JWWg+)#RmCDq*I{TarZExs@%M3_6F(~wqD)}OYkT2$sKFgmtxIsiPQJ^%zI2S?PrE1du$ zeKrZ>8saW7KrlbDsWHytcLpHg1Jo4|Vb<8h2)#iG_7JUMtUycleinpM#SRyN?L|Q& z8IQcFCwHXb-V^F~^U2#i=ftDLHOswmC%zx;qM@L$U-OP1(astPFPT49)4UH(nf;$* zb~O^eP`-6L^k>8`epk$I{?a!kA}`?f(*23)~6TPz)IyQhD|L35CiKsQTGx zEnj9-6zcWU+R!-fAE!B~Il}#d5M#!Y?`(uV0>N>&NMOdh;{r7WbHrjl6dTUPqzCIk z5lT)+00D$z6w17K42(-v5d;Wu6+kvr%s9$a(SPs97sL@~fP_9!aUK-jg5eK&=ZriK z@dPVJay-G#kq4>hRUnyC!+<{dY8W1Nct@U|rYW9zMl&&Sy;pih=gM^>ZX@sbGtxBQ zD?BqHChYOLp1DuUS^D{|4rLft8D-^l~OLPz(K`fZ_VB?1w zJtHn54ZKT@FOv4sfNIOXz4#%Hgvwl|hAdwD0joUw#O!^A=s+3ybfI%e!V@a#XL^`if(VPT`3t`7q8(RaO|pQzl`Tcksl0S~Es* zfb-sq`gN}MrcX>Bp>o2|w)dQV6&Z;W6=v$(rL#j^*eMk_AnYX!J!;tH{XVgAfxonX zK)kZN!by$#TQ_wdde_@MbwvC@!T_^!>dx5aoqb&ez2m)g z-HmjcSAPAq)UWc(>(3(E;2k;b6#CSAXj&6gx@OuDpmmjvZ)`|)FHP#8J+N`HTTXKy z{Lm|#-pf2YUZi?I&bxYgJNnIAJpB{e?cI3OH2S)-$&5n)S>;JHN0LB`Pv6{)#&|#8 zd@(An@D6P<8xerehctH%ZZKY2+(uRIZ4;>SC2teaZ0~_vE~JMmo87t}q0S@aczW1- zU7l9|f$1<8vbSa*cD?{_?cJ4Svs>^ejJRzVeowspZf@}R+bi3Y!zu>)rqCaj7n`4% zckpt683%5E4A?2&A#)t>r#t%5V(;KN7m9lfB%I(`cUI7P@8Ub(6U+3 zTSF_nOXs@{&xR?$N`_&6!KOLLa%(XQ6t{A$eZG_`@(zM~_dWexN3zjO}nEd_xZgKoNZm8F)SYfSEhO8AIWn$pHa#cI8_ajMb z5Ti7hl4D=so&8928suI3NDKVl_sF63@s8s>k`a(8h}5vPo#FlVNU^WnGEOPw)~9)y z-8p#h74I-pvVexcSL~bCkOnfSHtMJhzI1@9{$N_;{Wpq-YEZGNj(82qZJ4|D(4(ya z@Iv|Eg;+d-J`jMXZUgY3?dF3Q@}(r?4ZuT&YPxqQ54>syf*QaJF?gdYCk2{>kq@51 z;K7I&fTwN)@L=Z42hRX_p8Z%=Brx*esTI#O7@R4OogevnHycq0c)vZ?wcrGnew7Ru zx3BgNeEfJZmAvs|2d4twjNMAPFg*w>Y9EN^?$LvNAQJ#={zi~km5m^*{OXI6vFg#1 zDl{)X4B}_piH&!xW7W1UwN-@mek%n^Ha|cIUi%8qAv|SqBqJhJWWw2f!?Yd*PjcvW z_25ZPL$$%)5TODmIT7@eyP4Nsf%oDCC(u@}#f676;~aD0J9s#3+^E8*!wMKB_4c$s zt$b$Oa{|nC(j^DscjYA`OGacOr;C$nkrijAS;ZuIvmS4$4==Q2VI?*6);-<^Wb>!T zANQK9?B?SLrozV&$XXCxGC{p~@K+cpf3U*vGQbg}VTExdw|8V$W!Yk{Ku&bX8?!{M z5Jd@B+gCQOyn50x;6cxL?_J%U&hqSQ1{L=QC37LOGW~cP9IyiiNx2i2dly_Y6d}3K z;kUn6Z}L!qq|+z&L(<hLvNMlEB0H%i7`h_GNA8N$=TZSJ7mzZ28qRxpLL=llXOur$^Ed zZ_?9G&{FS!XF4I}>}MYJ7Q8%HburNk{LJ#V6E5TZRea- zVjy!*4$KT86vBcP9=wL7Ha#P%DWez96Q_XCbJ6Tn;USnR+y={8O;u1qrb+qTy`rcO zs@VHP)k?-w6J@PGvbJzlpE6qqn^WUq3jY(i!8jKdl*Not;*Ns=>5ojmvl)!1kxkjatK|*dY1g z&Jg*OKb+@6&0^NOQ4^%CRitvQK&?@%s5PiwuQyu!=Z5Y-0M8F^wEv%i=kYgNH5%L1l}X;o%ig%Pzx74+a{X~s=CK}>)A8e4%Yd_R^DmPwKgYg zLsTe_khfq}NAIB*?FJ$2Glp^ zQ-+OA&yVITLst#t*SD|Ay;i0TzoM1}lW##7mHh-kx>z;KJLH8!DiED51CcacZbuAbCLmu7FGqq~1YgDZ&@ed^ozr=M_OT4X0sKh^%2yuy2nR|WJ zA}^>SD)A3R!hRz+sB!`M4Ky9akes4l+CBP^I!Jru4$P?a(?HPt+`$YVtDS$ z4ZKg+)XTn9D*zZ+Ktr>Y%{g^V9XI-_CP%dK1O6&T)b5_5fgLO9W_lW<0o;W_UQ zJ?3G8QR1I+fCF`jDNw-6l!)R>IDvq|{_p=7Wf;G{Rq`ctn9U}TRM0qYa)#_U*RUt* zK3Q{L_nu$x9}n>-mczMt!^k@;=_2pk_u3BKn=r-#t8X3WRpYa3 zwe=C}nw2mX_YPNnD*$FJhGAUUt03hK@;-a-;L7vfZ$PxjoBYACt=C}KGWJjyL$5&T zkUd7(5IHptVOF=-czZsmpfz5_hxgD!a_kh*#_Rsk$vtKp+;9SRnVIV?nd=Lg>&_zT!1-D>pd-C+HziXQ8A;jk%{Uk-B?|%w6`_G= zbm_0{_CQc%1%lS#EYFvw^KJNij#F+6V@=UZ?1>6kne|&8s>hP>I$sh7aX~2318TgB z5qzWE(|vLIel3;`OjPd17jbhSZm{Ngkz(W#a-6KkQ<@4nxOT(K2X{cd?SdOzN?@Kq znPRq5aA11~q4zl*>%*eqe{yC)3iH_tf&&D>{F7mP)5rOSj$ zMTw8JEM;J$h>EnV&;DrGob@uNjyLnOMr~P$fSZ^vS`sHX7+g5`&ulH4ECM_6R({qh z_2S)RzebGOIsyp&s@RnQg&vi#(-p30Y})9FH575UGOnN$=X>DNE`eelwf2cPU-rQ+ zm>^53)&b*}d+LJS0GX!%>;|YekwTOK@4pi8h3nw|Y!={@VF^=3Sz|_4@6Z@R2nx)> zKK7ps%l&z^a=3uR!03sn#}eqq?llvxK_uSA@U4RiVS@o8`RD2IG9#-h4{r(TV#k>q z9p_G%AaCzwH4zD0zD9a7l_=nT^akX(^x_Q+9kl}xsD=yoKZ=bE_BdFUi^p96SAG<~ zg%>cu1_D5BJn8BU_Tr4=gII!o_$!fBvyNJ^yHaD&PzD=&lDZ2L*)(bP(uN^CJB2Bq zud9Fy-FxApEztf z*n+`f3<{CZAuU{5$4fo*zhr@&5<)DYfwiM!aiQJh%9 zKgAX2V!;8Iag3d#5Dy3+b?jc+5G-q3VUY6L!0?VV232=M*l42qu)cAw3&>7L#z85Bx`4FRx={BS#EGj>yxZbsBnCd}&gsa`KlK33*Io+Q+vVWAc5I8-^6a zm2s-$!8b;zq4tF&MVEcEEM9{NDc`!v;9HGVhH6&he3y5%aE}_S#_aQ!#ZBlKSX{EF z7^pt$HM>mY?@g$=_sduFXn=S7_G|2SzE>t*jJjTi6=rzlQ;IA5eSLa}eysfa4_As} z<+WuJ0GmR6#t0Z~_!c|q8+b?WYz%kRxjT#D#hJ2m$o^}wK?C%Fca+oz^E?w|1$Wof9-?@xw!)6pF_?^#nXe;^9f zKzJYQIiP7LD;Y~hc^$ivURn{qh#yuE2kO50cxU<>(ExcX(Yd(v*QvE^C#VPR%LR3h ztigsgnAhc8L6;+~u}&TRYzM@yFGQCo7}#|ruh*#qt&(Y-`rz`5x}*;>uvHI_?Zb2w zF5|=0hCY)E!_<~;kZZ#<6qk|+HO8fTg!F`H2Fbf^$UqUrY5f_B@eHYa{xVYemS*$i8~S27^MB%x zB3=8vM5M>^WV)bb&C=2rHlRaAZbp{YK1)VHkZ-iO9R{qwA4u~LE z`)WhAqP27$`S8#F1F6K+$#J? zAwTwj{ z!o7)|uF#KQ`vu%H?h=r(7)0=aw@8VfvSE^r$a$*P!eAA+jIcL8@YD$~mMRE6_AM+i<*zDsoIkDe;{JhP`s zgac0%Csy}VaT?~gs;7z*F&r+sne|jz$&eh`l6s~k%F}4-QGExB|Nx|eW zJxIVJjqoDH&<9LT-TI3ZIhDoT&kH6O;nk@!_^VT80Fw*n+214Xe%a0fyYf`6nzrmm zn8^)kMYq#(`9&*g&!mHCIE#S+RDs40@g8XaMUisDF@0?vQoD)lb?oyj5NgCxu$q93 zN({o8km#_%3mZwOJmU?{RvzMXzstzmy)N!qk3b?CVt25d(3*-|C=*#PL*9(m?&Jmb z|H^-~rd!a-X>F+Efw@kGs&^9N5z=y4D?y_ zHWGzonzL z8hVefJVO5x2%3iq14Rom(|6Dv>qeny!WIH^Yomnergy`CjOlWJkUw;wLurES-jPb_ zX*s+jO|Qzse(p$JDJ?s6qIR@R9@mN51Bi*8=%5k)+;CJt6{4RFPpFybmsTPA?Hssq z7bQ!p6MfmdGvpbZ8K=w+tny_^Zn92rP-UIHka%dGSrY%x1S6=h1a$zRT3CJ7YIb`w zSqF3t>uQI5sx!3~^OwoZooO(QlwG>e{nl5&UPz^oHNTRdb%7W;DBWgXdXTa&H2bUc zhg~T|^p*T{KN>)n$$h%fiURLt0(-&%1XqFM%HfklFWGs28b`0nh5OS!bcS5FKTzNS zS;DcN&j2@9qvVogo*jGN}az;DD$Zr3nv#(uCW9xMDV5)CgFQiheIQ*#Ps-B|f~dG6efvRFPP9z!J{WS| z5wg)CbP!FK#~wl+s`(P9$QO>p;lxbc*zyNApd4IAl7^%|E2Ajwe@_PpKPud>4j(_z z1&5B{xD5C1J9$FY0SDb6RADPi-XhR(taSQNL;79z=tKRF!0I)*dg$V6_2RrA zUcD~lO|^otX0d`3nH3D{4Ti(y6^un6KooROnO{5kJry3Q2 z0@mIIyqU;R0RQwlL_+3BW96p9X;ftOZGI1rK7ytqvQmC@1l<;SJd-$nD7g3YvS=7k z^m%#kFbL;rEx{6`h(0gnoS1?Ke0gIrZJs{L^UjYdTy z$^qLfc@I8&(`6QvH(nGm#ntP8b3oh+*{T^M(@YHLpqhat|!F<47Z{$0&3?ETXsN;*m658Mgjx?e23rU5K?i?{pd}W^a?1*6^>a_Cu*QNEOCodwqLoP6yp8s!7cXs=?GLy9CBTD^7AiwEx|*-g)XuD{RDw6prekA#z!k_;+}XN36iY#4H2 z=*976u*)=63zrWffNLb;KC3_g1q4a!n!vejE*vXmTxvACmT(Bx-s+2ID?xXe=$7yW zUu%-rpG(I&7zEXM_J25_4lJ8x28Ct5b#l+SbT@60caMQ+dbZp+hK_8p6Cw-S?bu9< z^YYm1lHal%b{-wsbPKHCpnegAG(w73FvA~ZxR=;x%N6H=91cl$J)iCqsQdj3=tVG! z1sBq_v5hzB{h`7{-EFe#IJ(7}IX&}y>-6-S02(LW3drZesw9e zD!FyKj))Y9V<_R@pep}no80Fzx+FeL$G%sNP6^qm^h1|Xh}(Yb3c8twr~6+?;{}wQ z7p|g30Stz_Eqz6b9wI82?I+SrkZqSuq>@lMB+aPoG?6;X*d#gy$!ATXxsho&^bg^* za_)F)D3e!HpU9J;yp)Mo(>%tKxrW zx(RNst{FniA{3$CZ1+vLO1#EG(K3-&x3qswArfYh?X4K$n<$!RyxW!&e;G`hPJ ziiZ9Ga0UQOJoi1XWw~J*xbkTE(==*RFgnp713%fLW&0b+*=IC7#27R{j-*5bzaHXc zgh%xXu;pCsP(rSX{5!QnjquBi@Qx$Os8RJhF4cG$}df)at6Nr zO~84+UK?$ZzVIeWk}o}k<(!G3#`3WlAcbRO)0xz!M6qaukoc>%L=9_K76yvJrB9tn z$uM%%vlpc&&!npa^de&x9Sn{9&{;Gtem9mR9~kGv?7QXjv*>$zQ9gbP?VBYnZ0nUj z+(O;5DZEKF-St*Fj7m@%76RCO`3N|_9w<>AfSL9e(v$QOkpAS^)B=n7irF;2-X2O8 zvOEsu$8s8BZ48pJ+i2f?K9=OZdK)>2yn_*8Y}1g76cC6mkopxRacB2L{jBKR_qW>+ z*St)ZXWtIH!h>?r?eJa9lKLGq2$v)7AZ%`u6Yikaz=V76fN5z~`X6_|djSw)cPiQ` z$K6RC0N8>%skCSji%~7?r-6SV0OrH=(VbBB#>i%KA>n*3`_83yYLJ;IW~d7fZ(|HO z5YgT&ubT@|?=JcDTzZ?2N@VJ0!k-W3Qj%2S%l3v-^e-(sCB>019PL!S`Wk=pah?ozzhby0(Z_X9NUOlWVa2D5@t5Z zPdI22lo_bB0w*wnhg`ORHV)W~5Ed913z>-H94p|l6T1LQ2(t=fk?J8tNTZ|HIT^CI zKq|$60)AekrAc%H=X@fYc09heu{}vkaYXwGdhvkYf2gpnf!K5)pIt(IVza2ia_V4AEIECu zXkoyDFe}~V5t>avlQoahzNXr5#d@{WE2$l?+)kC$sL|W#7S;vvAq8>k8N$KkbX7Jc zKaF^{<)Y2?E734TXU=zkRCIr#;Q-WQ?( zJ!I?u=$55wQWKNCKb|M0geG?xbqON686NPFTEpY#%?NeaLe(&DllPy^Hnbjk$w z_;Rq5UGk&lble$_GO+8_e;45ujQjof^m& zpQ6tHQvgkWntB8P)wJ>BKd|qk_I`rXo}vF68$W6fP{Wn~V*tIjl8T#QBL|b|1P}y1I1s^D6Lfj>votK2=>OtUs69IFxHSK0(HMg^LI}EG1mRxJ?l*_ex81Y|KYw> zv>(k+f3S)=g}Z}of*Bx`GiMkjm(OXzU^zN}tFK5!vj&`i_&C_P@{m`k-QUhburz>& zeM<2d)MS@JhD2vre=fpA2=&%)1J&i)P`82cRq>nrf*kM~G^ojWcZM6t&t9Rrx$`*k znNKyV*Pk$-u4`%kTpjs4iE32`?`D+utfgMQ1qVFKXQ`O+To3UOuvFaoJw(ocqarQC zQCVOOEI2BIvfwzpF)`=a&F^P!L9`GMd>|O@O(IduVf?F*{yWKquhQZ9q4?mj*-(7k z0}!>xKo5e?ctoW08jVY>W+7JjOjC@RnjhHP$F|$ETP1KjyLMhYOV+hn7=*L%IrDkZ zETJlnO?)+z9h;%*j!m`iTFz=^)T_a}i2+h;5$a4frX#!68Y)26yQ#iOz@I|l#OeVo zoCYIH)c_VwWD~!woT+l*>$GpfX&`!WU$&TrP@l)DY)nmeSVtC}8jJ_x4znO7YK>CB z0`>^-TEV20B>C7sM*m_gBw@cRXT5O1vSpMS5QWj9~EM@s;;wJnLd~#`~oIYhyfjUV;-tj3N z+w3v_1A)BjO0Uab3K2MVZL!@6gSm8@EclF?oseCd`D0z}1d_ck2_Eb0ss~j8Ed!s$ z#uc;zT0iMCALrixj6MeLrI&4{1oeL9S5SoDJW9dNyzEJ?I1k8u>Q1HU|M4(bw{n|o zxCNYNnmlL=opb<%m#9Pk~zpT+1urJ{Q!UQ9%TnaY8a zFM-x#ksr(0v$uNkX=yF$f!!dl8rkwEYS&s>dP-rDo_{U)WGmcEcoTTyxR$c=gw%<@ za_mpk9w&0hJAb0X{UX>s<}T(U95AAa*x4eCTC#8#wMb^{NFn!8&IEJb6pH_mra3X}Ym#Q*L@riJK~-ugX($UYeOz^&#lvAVE3h9|&-JIlV=Q&-Hp- zP^o~~g7TxV_#w{eILKGIp3)yg#A$5imc32Uk*^h|m{Y`Au#4GmGwElQO=99p<(^{W zKfp@YvBYvwLo?0g&jn&3+t26K5q*^*{qsWc1QjhufVIuD+zQ_Yh2IGaY?*wht~gP) zZ!cQXx$=ni;x6ix{=PlF97s###*Si${HBBWo|dF>KSfZ5JgbY?mp^ICA?&#gKX}S+ z_)!7thz;;J{N%}wa2gfEYhuaK^~CR30?zR!FM+xBMeD)OK@rc>3-f75t%+HNy`(oc z5T!(?qzf8}Q;F`Dql(4dSq~W~=ALwu#$sqDj0&U}CkbIpiVzeFYY8er?=sQqc<`wo zLJ$J#hXPFfsulqetRWgK$d?~k^Rd>NBoPRPqEYD}7c|5hmK09#ewpw)tR21F?;;O{jAmWvAxiRgRQwF8YMALDjN7 z*|&ulPSev1TZle{(9SO$@iKx|A5Dk@Xsz6y5Emhca%57pMO?`BNzs|Ukjs+d1X?ZY zw?vl9Fm;~^v$4~>_|t*u4- zEDossInCRMok43AZlm*gL-LZXvQ=BLCYw>6`HPHAB|aK=2xO{bN(DCN?~!+vir#^Z z@W1Dx`6FlA3u97D<>Gdt>tBh9@}+iSV7OBPXh8CvE~2$~db9kki};m(kw5P%`sY-h z{MA>h%>s&ZU)5D4>1Vm1t0-^z4vWKj8M78J6xR2#7uV5`XC?#oqS;qRWb6Gz2Qev< zK6*d#D8c6&-e0T_#`M2vV9%ME*g{f+l}UAITz9c=K0yE9?)pcY1dH|eZRsHh?%6MT zieBW5gaaEkm)^u54}1d>G;d3Phix#h2$DTgy1m4KpcA+>kX|oreD_Q6Ve!^dxw4n& zL08G2dx=;10E^YV!5VS>skgW*aK?t*muFNHqOl1tBc?-;e&#^&SUV+fvuyqe=gpVR zb9t5OC+8d_4x|3^(}P6!{ptZf!Tur6*zNhO3%irGryj*JpGAnkQ;hxa!I2LU^+^QT z^I*|31)UOY?d_`v34)(^6^^5b_?l)U_~1dredj&w^+Iq|)~BpAjY#&}!0LO%{0S)r z35#YRAX1-aBz&e%V0H0-waWNIKI#}E1Q{@$_o3u|xNx|_`Hqz03jCB*;LBDfm<4a7 zLD)9_z>*cEMCewrGI-WuJcUm+Kxo80@2@W%U6Cx{&tuieejW>F z4rD%$g*#A?M2ve?$3Hs)`xWs8q8MU>AeEsSuAKv{RuISw^nd=?F<<%H&vAai(deU+ zh!L2b63EOZl{yf?G=ycbn3DMbG%U8@0f@GNB!XM@fddOMAK3q>`pWL+Fv8p!_=*JL zlQ`(zNMUsF;Vo4Xn*eM{>{H;bF*KPmMOXRD22`37mnPN5KpZ^MnP$KZ!8>o&5O4>T z5FK+H^Tgv~4|JE_E-e0h&>>^_d2!B%`V<^125Jc88zp83#NB`0PYmJDW(79jj9=y7K6JCn7n=Vit6x^S z@|TWlU=3(4NCz)H11cFpFBuIG(~~~{{#aP@?!KaJndwgpj;7{Mh+&F+?Fu)UkCL$H zs1B~i3!ZNv4hVp+asZiRqQ59+L{VXMIEh0I4_BuYb0k1C&74V!2VXQLKC;92!ysp% zm?JH4f2a(8B(2I&Es{2Wv{;M9Hv%&s8LR1o82P50fYM+buww^nA*8Ax}p2>K`NOU#&Qqy*WQFB*OizZeOx})7Y{Hg{tQ9b$;}WRf*HcC-w)&r`hm2} z4DqS4|3L(<)hJgVWPFJYQ}geRa;*ebHOiSmW?sTup^k0@%<$O~v=FuHoL@Mmd~g6X z(@ygB0ir{rfvj!w###LO6bI<%RLFV*#r}t{sEKDBi6zSTynNaA1ZQwyf}5i(|dBK?gM*>-|S%Sh)-m)hyDC zlzY*5sw%_(S{N8`E9YSo4#_;WR~#J_(kP?1<*q zRV%?TAIuy``9!%E!-o$)F;z|%oh;4}I2-D+Q$>qLZ-)@>7wf2n{EsWv=krL4>}%!2 zrwTqlYRjpjV`4HT8e6<4+U){+MA&J}pOvn!#7qYT?8)hFr(uUOJ(M;_0GDtrE*DXX zU6O=hi}y}kBHND?UuSK{d{kq)<>{iUpf}RTohhy(3*QC{cOoaL+i#?|{Y{J(bcsCv z9B~=8uDx-NnAQ|W!$KKkD}!N|W2=ep1M>GNU0NZ^BD@jUv{Uk#3UNLR<}=5OeWJSk zD31HLSIg5!iL?HY`1>d^mOtq?k3ScJxySJdvjqn=s&CCNf?=dWebtXEh8SLe_RT)? zb$ok|Wo>mxgo=&BnWBJ(cjx*gb072L66&je9N`gUdn`X2#JKy_hn!TK{%8L1mA`C5 zc>JgEm?J%@!0O~XKC zU=rt#5f}4(NuIA7XG>Upv_xYyV-SBc=O*EUj0p9>6!6A7wT~KdxIZ=d>5us*2l1Qi zRPdzF=1IpHR-%u*Iz0Qlt{a4H@#v>=OiHwIu9>0p)FM?)`#QoW0)AL@UuRG<16GTffZHAmZK{Vfcra7<6S0{+3iJ8V>C1F-c6%?>x{W+j(`In(F-LlhDtb z)0?k`$Dr;aJsDwxB8-F_VqmY4|F}kUZ?gs_0O*`!aLOBAflI+1&Tq+oLVSYCd(>no zs%zxali@y6hkQ?@+49FJ==H<8=PoWvceoZ_Zfq0t&+V2Qr;2gPM6Ho*4Kb(Sx z9rD8K#36r~>5c0^vzN%h*NfITqHyf>Vt$}0s{nC7vK{t?ns*_gCrbTv`AB(RBHD}o z$%~kCktyo-Cz+F1|rr&wJ5epQJWI3TF3!?yd`+m#?F8Kcj==c;Zo*DbPin`c!@su=Wf&Vut9{UujPW>+>ysz|P!6C(-}m<42lwuTEo}P6(d7^UnD$K&cDp97s$<3q`Snb(f9k<4MunsE>9e5t z7bJzN5`>>1swe2x6O8H!q3Q|Y>Isqj1i9d5QPlD8szV6@8#6{wfxz)bINA&@hfoFX zDj>G0uPi>eMSgm-XxEUzO!6=!!+0lxcL`6lIhMx?=SgcW>UFp)d{8eB3jR=nogLg` z^;(5+`Yq~Qo8VM#FlneUfHjgo?ucgRcpxgcKJAG+>)jGghTt4SD5%5or)DospF2yu zKnG_+4H4n`AlO1H7%_uTLpbDoKPKBX;Rl2?Tepuhr4P>Do-kir*~huo?j+B@RSeCE z*|FRTfU7a@=*OB)*^lL7Nw|J&F9x=1_8V2A3G-{+o9(;-WHESyfjN)?cxl03g&@(R zr8vcRz4k<})^Yc`1>Ni7;`89y?qR=pXSqR&zXhJ!i2M29k-aF$jws5!>>Np%K5I58 zQE4WWGU7geAM&&NRE-`&DRcSRg(}x>h!)GYZbOvX%5>Y?ImlpL`u#gZ5rI{IJ4ZCH zw+j9$H-b3>uKLd6@ zVV*LV^;;;81i_lUP;~ywh?Ol15vR3PcE3j)l&X!#QiJy9e_{HF!Es&|Iss6qIKgvb$`>c-zN$0LA)FtWh^ zOD3Q6oCm~slFvRUI^~RJ`C!*d7*e#Q8LHgOQa2j)&FW zM)uNG!~zdZexv-lU6^L_>pQQGyNBy&M4;^=aWg-D|LS-q`(B>8I$r93cSt-xI?8t* z3MQ-(D=odFwe_Zalp|)8b=1P$!Q^ojmu8eTE0Zn?+0cd7r82TQiC%c_($m(KvtnBC zGIFiwFdSzqiVcT1nPM-N$P|;juXMszUlK7Ar}64?>>urkCR9U3R#NA~O0k7afGt)} z1`ev8)Ox9IkWWjBkNLFKIqL}D7c1uC=hH>9GU!+_>sceOo8c z?Q+DAB>2!lK#26WH~mLnwt;~YGh^FJYFCAYO2fuGrO_XPumHq_(NCFrkm39e*Wp3G z)&YLoTal1@hDxpl=(_A!7~fvIEG>*T)h?;~1{VM{EWU)01sXup{O2-(?6yO&A`z#Y zEZdAO*=}iNXhmoW3Ucc&vvHPuIWcGu{#T=r38Tw(RS23nR=Jcw7zNN&k3-PTlrsTo zKyl%V%#?|eD#>Js4yG#waO)i+07qdZjub|FF3uE0$3kTC!I{udpb*4d$!!Rcic~Gs z-^ydPeq5zWQmckYqb)-ia+VMvve0+KGK*Uv{)LZyrQNWy7a!sNS26UU}R*i zD-EWW7!GVE84s^JRuiw9vT4AK9u~fsBGX(7p(|Nw2SqRvJQ4}TtvF19buM0A`cnkD z!s<3h;Y2-u*SF$ljy&hKOv*UBD1^p(C9G7Oei&oqFKs}?f03F4F(1<4FBu^&Zd)c{ zvg>O4mMkxfP9sVD1vkX=2yDCghWNmG3W!=DJ^%y3YY`UQ1Tz={_eLH5Pv4Gr`oEyyZkMcP-P`n^ zap!@DSegTnroPnI%!dEZ_gIeL<&6;B?jABHL0MqZ54XHH5vBpMq-oIxWn~ms?!dXY zq==c0C4}%i8$zbX*w(IE%ruMe;>=us*LULm<7=PtGjEI+O@HJm%hip5Mc&km=!QU8 zWRNJmhc^|=Vouo)-54*AZ+Oc8{Koj~o}q74G=hs*Q3czk6g~c?_-$o9!83pBQ|dnF zu2q%VF^Nv9L~D_PRP2SD;`tMKZ!1)K0~d5ZQ*3KZzxkBk^}F!BN1pLlem7nhZ+gnl zzBxW4=J_=@#~z4SqIaDTw8RL|z_W&&z{LZ6D zrX>zqvi3~-yY(sm?(f9|t@Oks3f}lHe~%p3H-<`@WRm8ZB}HFLVZ5E9w?F0I@{4$u zPre_Q_Br=iwMV)2b^*^wFMc+=tV%+Q^a3u{T_KBLR<{%-*qx(Xk6)YKL(q5AiK_9^ zXKRf=?LYYaI9c}iA8i2mXwyf+C17GQ6ay(C7LzpR0X_XkvwddQwl#_4sb3m)mam@k z4}L$MQ#!{n-s&E0#CKx@yWm;hb!)t^ZA9(<$XnwsoMRunH7@h>*;`|FOh4;?bSwM9 z&hgLR8h7$j{6Rcx3eBlWnt%(_YY9`Y=*&U3%BLHC=MVfr{JQQ9rY5(R$#?iab1j}O?{VYcayGafei-*vH-+Jf zg~P=6>k?k^%+@XKl0dVk4ptVlelBe4?qKRdoFW%t+Vp-ieNkg>DahX?btKewGnDK^N9(6<+k|Uqd@`5 zBtSnjcgwZ&C$x`P`4BT>0O+uHR1&r*vkn)uK0^-fqW`DDv z{j+%WKker?e->XKx@fkudKcp@y7=Lr$JbSATmqk{j8NheT)u`+>=57hq+kCF+|RJA zYkq-emLdM=7xDN0XQm#fQw|&cBN1i^*9+Qf7VQ`+pU;Mu+?crYvlZ(wE6atOK@(ECh|({TA!J!24R$ zR%1kvzk74EV%Sp97*(}hsX{EO>adp^Q@b=8bhfJwvwGb0G8wXl#?+XAXS>GKAf3bS zvP+>uQ6avYp*sKhsy=oL=Zgs*=e-ggG2F36L(_IihK+IgIwYHpLAk8`!yWtQCY~)j zW;UJ=yc*3Ip1DS-Zq3x=}02E!48~=#|<3azxUGdx4fWGu@S)Ax7`Dhzn;q6EOKt1zW22(B zB9_)vTG)yR^UPLY58`$dMBLGI<>IB2V@Oy>NwY0Yp(1FNBzQnAF;kB7SNxjP48+Ee z89FWC{)$iy!=lKC5(1F|#_7{2fqL1yBa)6+v{?)LqODmpm%YLdPycX_l=CbKpp2P> z@`m_$ z6h>{in3E=ks4I*xLoLx6s(AKQw{}THN=MF>k%>&tN*Kg2UT4$Z)#XuX#=rdQxVw5$ z6OM0d3lPGMTO>%q_)vGE_9mXS#WdccahMcK*bg85Rf_eO@(fgEhInOt()j&rbE<{jYe;>&QtzG!HCf^g|yo z8B;lgyNfN88jAJ+3f5^S@N7ySxiC&kr6p~#Z@&i{adV2|r9N{Zg9;yaq=}BT=I{`7 z@(>M>G*C=LOMNOlfL>gGOJRvM{APiwOoOngVm@bjWyA9 zi}K?t#WiI+f4VnmmQ`0xP>?Jdz5L)R>=Qr_FmHy;1^9)S#RG`$_$VnK1hE6cq!GbY zEPXTPEcdo7TLA&EW@aV_OrMS*9-X-?dLtuf-92fuEuD2sL`%Bq5)gp{@P?h#E)6dJ z7M#=&Pd(-tFYbx*{>}Hrvl3MR z*3<@OQ(QX~r&z{HS@4(N7r$wsV6mS$O|9TOkeRKYbheqp84GXPEBQ4025>I#C*L10 zc(V!tx?D<#Lwl`kl2?$3XrPi$3Ui{q)U8gV)DEnG3oU|TI%UkeCsNz+9EDY=xjAjn z2Nepj3jXT*!p6b_C=@F%a~dcUKp#Ns zaZsPwmT@|UW6Y`F3{m}h7E;%!mA-_xaFYdbKcx_|5$5*w`#l)<5jM3TUZqb5L7bc6 z8j@Z1PID&-hx~~T#;+qI({&HVZ;vmGeaAy__by)~W=)-h;}E`vRv^;g=BqAYD%z#A zq1f45>&pg=^4v>D*x-+U2!Hkie$zv7$Ea&<-deB|!OETg*yHh`<_`z!ES-;y2jyFq zHS}=?@WRIY6X;N6I30Wv!H;mql~2aQ$J1i0w&Q7IJDyfjs~t~ERNs^S(kJ8L<7r{s zuU_=%_q%=jQ-Jq;Kl`b8QP+QQP`!x0AFh&P40*A$1ZWY1e%e!UB^ZRT3xv2QL>4rY zT7Vlj^|&W4Hieb7>EQ zp08PyN?*2=KH46BhoA8by9&PMS3QH{=@b6npCQKNMgQ|>;=vt`8UC7McWdSohOOw* zG=uegXvaCdD$q$k=a2E8b?B1u3f3N*NChz{0@JL`|9x>5RZ~Hs^MYk;igVKTn6faQbaxV!Zq^or~WCPxXMBc?Lu+Fp^rRKi`UNKK z9^dwtc*e*VOaFp1k^*P`CEiO(MSuR620mw#!>8STxBrg!4K`vZF)%QRctaL#Zt50o zF2fX1vd+MG#tg`!?VtZne%pHnx7z~i`~FG}lsW$Ge~qUOL#t7#*{ec}43AuO(tu8$OUxBrXy$e;D+zR0efqx`R5j3*b?2;G}Y z@9>*nj5makygusqzG~~OS4J+xp%A-52xhzUZ}G-CWGgHLi3hV(lE44Mq-_T$#G^oP&ZjM*YGI+k9cFwql z22ZLtc>IV4Ihsend^!HXykQ8OE6^JV&KjD8bt5MMWsdLmegzab%75sUcygzWwuMLq zDLhd!9uif4la|s${^nQWqoap>`BkRu-i-&n8h;@Qy*q?)>kenkS7hDfUK_KsF$bsW+;U0I%94yn24>fInnvH>R*CMx;Yg&s7O?lqqt!DWCl&ACbB?%a5I&b36xQ0d4a7V32) zbPr4G^@!C%s5pG0Jv~bQ5{G6oG^34lFezrvJSwcoYVyZU&6#~T8Y`5= zif<7vQUIg$^?RA8K*Ee}H)q};%`9ULF2J(MrF|z$i1htf9G^8=v6m#aea~n&mvf=7 z80{t<^E?vS31vjtk(OhP!9*YfYte?3Z@uuVF|l1)=09EEvZgXNSi&-uPU26><%FMW z?brr3F(?z1b!kETh(EIAb{Ngu7oe(B5)PYQz~mEHmRAJ8>7m!h3>`XWGwpfV1y%6SG&k+M-5dVhJLcPl1;yz)doO}O(&t4 z-{Idh*7a8J_)ffSlTGi~xNMx;C64kNs}tNSQI+Ft7iVsZif7SOE@g8C*Js+=kf%x{$1x^jvfO7X zqm;vok#f^(sy!D)hDRNs4PDe1@=KXjiqcntue|*o(^r)JBv;y3j3^Ww$XpmLpCG^~ zfve19bZ?p}SQq)WNv=FIpR}w-BP2@m@N$8=RZ!*9PB!;F&G)j~?{4iCsy)~{P3OZ|V*eOGo@9dSGvg`(VQE3MtK_ZE!L zl=P*bDiz3%w5x%4cLT3=#Kya2N0@%vg-|s~qZIF#*|%nWm8U%qR-p`KWGx{k8e!An zv%MrzKT)3ag25?F5krzV3pN@op}14=bj+GG!ek(_u_+g9R<;q(De#sH#SB^P0UJrrWHwGS z#14v<;i5d)EGaN>+CI#t(yKb1rgoHMP;Cz4yh04Z7(!J`tEJh~B!OGQi^QT z8d4|uiypgjO!p8Te3_BJZ-o|hJn-f3<;GU?Ivkcm2&oY~!&KKAKroOI9bxl?k(^Z8 zLzEJjL>)FS2sW5eG4u+Ffw81~08ksJA-%8#Vq_vTa1P~U#K(rPKduVp)|rfztK*XK z78u6N7R$^SmisWzBx$Wpw}0gN{J7$mz!T`NnSr+WSFX=bs*VoRJX-xKvf~CSEbzmm zXOq$Cm*5h{`n2aZAU#*dVsEu!a~+1=GGf@EIw(>N!!8P`xeqAuYCwtc8mWf!Z}G7< zQm~P69A6o)(qU}+!Hmra5!j36(E@}n3qmmAHTGl?0`~D0>2ETnuSIk?;(%TiVnPCr ztBaL_pWNdnj4x;!0+2y?Wf78EiPxJPr+roO|G=NWQcO-=xKK{YPBsJbzh_ z8z>k>09gO49yh;_ZuS`u5KHZAHT9x0UOX!dYWI+mFy{v+y9w_$>Xo-+T!r2;b{nmY zS~I1=jV>KsfrUcz>CZCh&w<`RCWn`yE6_kePJ`p+7J!-*V_npYGIr3nQzHZc45N-q zihk{9o5of-on8!<8I};#2QTxj4(jR+#uMM zSZ6ZII(cOzunb^f1O)7xvvQ30t~i~L{`GT4tZI@&l(Vuf1)otmvFv1DvSgO&pMI&d zm04Ms5FhCPIE&$lU(KFYY4V`)nB`3wBk4#!&5O;_4kieokj7%mY4aYy9pcNH0HKg& zSO|-jW{WTBPWS+T$v4oUo~cj4knaTj zx;5FKTXE%8datoA2e`%mwy&E=)?|n$zg3o=UXv~U#acDSF9UX#XZ9;-yU z)f>Ic?pG;f{dokED0=DHnn=n3Djb+ zc^o_b(HX8|Mm|(xRVZZMw#y=4Cb&Qxi;(S}#fo=!uR9pW)`Pt+8Dx^^b$ZFB4D4pM z_#O%V(6C_z81V8i5e$Qt41sy&+x}^;T*acNs2O@g`C!qr%V5#tQ?uxiQ-Rl5^ej`o z6$mZ~D}YNP+h8(p%nS6-A`KuJlM)C6xOZkz1nP}M(9HuLNvfa z0>6y#TByF2;!{iSX{|`?8HJmjT|`A@;@Fp zGJ4&j0Am@_R$*HW`-;Pcwb!}|ln_a)8vD@H)3(IVnBhhXx|vk;o|$fMtl{68 z>87{kWz15+@2kKcXQEl>efuoeA7OHs4Im*L}0EcJ|!|W!ZZQ~1aL_C=CfJ&m$%W&e5JD(0~g&>{lcfI3Y zQ);_qyza|T>T;p|-TF}qu-yT8T7-`d@~2i%0_vvS4X=q~j~?eE65o|!8? zs#{v}8wT8*(VTR3o}tt)~z26t|t0&<8d?I@h_VXqw2r#h zVL!3E(mXeLCK&ePE$T`{iS_16Al;9w_`&nsl>C`2>cY2E=ehmI1`0PB!KA~|={f(~ zd2ZLe@))9?%dDxi^_obMDUT9G%!zKrm?e`!F8ws7C{EU}mQA~nSjswfEpn()j^R#V6Libz6*BV~j1n7p4i-_31)o|R`874vK6yUv+> zG%jf)T7gjQBwKnb?VDncL_qutqM-2s5#rVJ-I8o>W=!&s`EK_Wk{h-dOxs}>xKDVwv+45GgKbu{VhAW@i`^dr`Hec zxAzVLpj#EgmTgCMQwd)mJ-&MP&m&OozgeU3()cU|Qm$z+d6xE8GqJ4$8NP8pK zjM6$~Nh;nGEK+TeHq}?vrU!!9Cn#WHF*!5V9Mvmmb0 zXAJz;F{GT8qTI@|B3Ld6_>?ZOPnf%#F`DpBRS1$y)Z8WRJ8i4VoC2nv*xF#Br z_YkD1))Mg;Q{(*$Bkz67F7EBX?D$<=|0FtQ4VE@!i(j{CdqB0(+V#7*Io;uPzu0N% z)u!Utti-Lg60h!pcPr=5e4V?Z)liOwD8qKYIj?v9^?n}p`jP!a8?=5hq1MmFd-b#7 z-v8kBZu(?lzv>-EoKip>j63wQc~`gNG?mc;!t`cJ4}w!Q?m~R)USerl&~yIiUEM^i z*eXg2UBOjfsJv{WHQh<&L!e2GmDY49!^AIX_(qTV*4olS^+kgUb!r|Z_uFFjpw09b z>>U#r==jY6BWP41iIiR5_W2qkv5#I|J8Lt|0*(FRUqj-G6(jt1_`Wr*7KlSDK2SXsE@% zD}~@*@gGUu3V?ahuo$cMK3c02IOt7~h>f?ER_gsnM!tvV)eD997w}%pLa-DNtUntV zy!a8fd{FvYws?LhHbJ-F6Sy@j)&F6=@T-@(9%R0zbP+r+2|Y6lPLoutF0xK0!BLm>rAtTRN3t6YW8>}zS0Rv zzPJXZ4}VPtb(wu8q2TSA<4Q9umQtloPMi$4tpO1`|^KG^+exQ-CN}K%!%iRpnYYCIkvAXnqh#^~iFLNuH z1P-Z<=VaAM}C4a$i(NP25o!n40aKVX zl=TYRNMoyL6M9HxV&x-S&WDy|{gyQbo~4#qT|&zzG4R1iRA1Np60sPtp<{}Ial+6~ zH1KGgpB7ocduY(#v4=swbx&5poZn$jH*vJ(iI9xS#y%!m{X`Qz}!J#pjfJm0T6=i^x>jkhuwFpx$MtM+XqPjR}NjA)YQyD6K922N6Br zyqB9lE|-3c_?=P6>ez@7uan-=d;A;s!kvp0ycZ~*_aENNP00cD1q|+*z09P>R^+{0 z&v<5Yj7Yn~BtS)P=h8?0t9!W#ExGg>vk9ZYPubf|z{ap}Z#S*Y5Ciiyq6KsG&b{62 zS@x*cxJSSgttN&+%)8`525yU1-hY>x2Ej`S7eOczTgawooxzq33FPpj5(Hg*4=7O= z4BS3$D#KKpnbKvl>K5O{oI;?B_hAPpxr|ApRlF7*`CuDZRD^5A85!*#&G&<$~o(|HcTHx2+CSY_?P0pmUEHnwntk zeWyW&VeVagrv@1oR-fz}*ihQCM(*;!?D!t=uiDq`Gge|I|I<(y&p}8@SMTe3T6vL< zHPEc|zuwm^?x>Zll?{tjNyYp2bJIo?KV&}~^o$w`wFUu(tz&N+?pM0wh&OL-cr(!0 z$vT@i{_fIwrI(tDN2_pHfm8fQ4MS=uJy(|c9aa1&6)&u@X$U}2W%WLBHb8jmXRpNO zVf{Qp&sZ6=#kbhZ8*qjOtgjnpP%;La6DXr9tp^ai5vhdTaZ+`IXryYGp3r-4mbV?w zObg2OuNM@-!NWt3&{OVQ>Bf$gO3h#ky?hL6h)?>zu5^_*N<~TvcsarOTuOF{+i|bb zz+%=)C7ZaNhHYN+rA6|iB?_*mJ@xd{QToUaqcog5X}H-{y2`J9gIie@&Pj|YAVWhK z@_d9xYFtBb8bU6;3ipRbY_wRD)OHGsF-$tlL=EqU2P#T45ZfU6N=wQPVVw`qd#8Xz zGe+0}ijc)Ph9rA@=|wv$Du|})Om+l34+8*#r;65FI!xe{hMAsMr!$iwbN-4|u4Am4 zuY`GWc_NK7pCP<4I1{tKdVnzBe4=74F50H40#6(scEIWP4c9`Kn+koYH)f@ zld#u(Y10r_Ti$la>@87)E*uh2hdvOGFobRJtMzYm9TRgY&ZQc}?WM8HyubO4Zj#yZ zoUk_dH6%ibTQB=^>L{?Nc+l{8!mJA_d_yAvj-VRD3e@5c zev=zLF>skWAq|!Cr@qN`bWm6=)~HL&cz;@8a96#_^`cQVAr`LTFCt!T5(G>J`k;U2 zO>TDQ-`E@;WQe`mR;inhYh~7@pSM3I?VLY+f7j9bR}-A}3uA3iJM4p+D$eIK?26xdy#C2T~<5Afy_dTLh6W! zJK>AlPNx@=nye$O^xUF>FrE{M;a45xW{l78so@1drtYT9`wI?o(~mTuo9nlY_mC3q z$>#K&A9HZ-k3k@uk$5PP+~_neVB27T;1@iUZRVlO(l7H+O1sr214&lKTxK)I_Jgre zXlIHU^f-6@t5BTn&?1p6aJ?^2jnzcddkGp(v4CndC<=%_cz%qND`4H zB@WpcRnN1bA1m+IXq2K+1d3yv+edR-Bai=XDvAX|3@mF#Fg)Qv%v@3pk4(*mH2xYF zSA>FzNXNXYrh)TuNU^#lw4jALZKHUzKB%S@~wPfFLpNv3}5v5Cl7IRrfbQ% z7OO-n3yx-u;~M#STFi$rEZ|C*dN#HRlZ-2mNn3%=P&P-t1a-1#9;P)8qqz<_k4~pt4e^tTiR@n;HCR zhNRJv**mKT$opzX;fzV8a^OkMBE@|dl=~$CG&AZ@gvBfQPY~Ivu)&t+sxEP?H zaJZXwi0)FIWjbQW^+3S}olmnvLDA$;ELe!UFeRtiKqUeN8HM$i9PY|FYm1fUa5rOL ze8`%=?f`)feu!up#}C0uG7+5n+X#>teT+i8I~iniA`2_09y?He^Ai**?dRvc#T{mH>*fV%&TSG#Km!FyiU%>j`ssjev5rdT(rvbM4*Q|{;@!pfOj`hR zN74KbsfoUPPJ5%T)%Nn@ZdxE%a4KzO-*$wXJf@p_Ti?nPjO0-AUU!7)=0_iaw>_7B z>Nx-m3nd&rDt9FlEFf4>tf1b+;KE?^b@v5}M=6=eu7)R~N|#(1*vQ8yY!AXnA4FXp zBg?sJ)5l*`jV-Nc))U$?8Y0h#X{4~#yu7WNNxHy(djzHwLv+r>nm2ADVp44{9golm zYlr=D6EwnX!e#JlQMT^a;u*@J4*LU!+=RdYE3kz-E_=kk>gG}g3T7nizM3GWP$Wc& zMNfFe2ueWCP`(-P<@`fOy4NM=MHUdqR$u4zElOFGn zax*6M;9If8;dQ64g-U3{=d2!KNsp-5+8v`l%x4ZjQ)#Og@5~g;Wlf~@&ZFJ*oe<)P zT@xHioE1czQI|dhFhk*`>i!sclveOV;ZoA&Pd?i1Hr*K2NqVTnaARz$7H5v*YK(k6 z3*uwAWROR@0h~!9%HZiqCX`4j^j3*)=_h6xc4_XxnitKRqqW4P)Sk2hhthY$4t-mY zW#`evsk^inykBrdko}xkoMDt?5yQBI(Vo>sS4;u`F##$`dZ;_wrLFA;R0>O2;<|XY zmfb0EfTVy*eSn6sryi8v+bKL%A1W>B*`J8geCbDK5G6@=N{Px4Fs0;oRfj_%?S8Le{t5=B5rl9%0JJrDKLH-Be#rB1ouA5&n{)o4`4r1^0W;pJoaZ}@nJ*wN$z<3#Z11cujLx)H%kY>4F! zRnXRAO~3fU59!93^bRq-#CQIid!UObi;Cfzil%3l?RufE|I4?(1EX1&U-%BUpqjs` zJQXT65^Sfoc0zSDDg4Z7t&HLcOq&*GR!R_(qHWmrBPKk9Q>RO$RI9K7f-`aZ@re@8 zxio!{(#*yE8HkJMx|;Wi1&f1~2kH?qEttJn=~!Bu~5mj=ElmZ5`}V|cC6cZtgU3t79Wrgp;%}5Bi6Xep?Pr%cs4A$H&AC? z*#MUlSVEBnOV-li$E9S9RzB#D?1@Y)yoH#&Oc``0QW`)h(SDa-{!TY-?ssCL94dnX zjfnyW^IDTGgKC#l+%a}JM$<4dQyA({3TKPSAzV9-jqNk zhhD>r#MRi@=7mXnSg?hH$RBP`P)5@{9?ZDWzvVbgr^opB9p`o*K{|^46U_{h&S;*D zu8~f=W(_F^hFvF}_J3*C{&mth=w1Kvto`&||6taR4zt$2jag&a;0XF{&srg{YumqK z;o!!qnZow8Rm9TH+?`>+*dulS>_Pr4-IlS*J->~nEsO4C3gTyrtMH1FB zu!AbJuXA}c%lWw&vL_pl~N1 zVN0<-l-ry?`vlwyW-d}(MZ7cs8I5Onbwg{QA7sd>#q$F8a21w0Ep8ZwY>flMu`OT- zx#vDPSy5p_Ado8CvQEUaTAh9G(qO>}+cH9}Y$;j8 z4jDx#RQN-n6>FpQzYZ1prA`zT1>4$&9$jvhBMPFfLB?X9tHR!GfW~%p$mUaEg9qIj z!#FErlF=#-QwCLN%f#SzHd@zBa<^iV6CdXTTU6=YxC-6X9s{t~K+H4Nc43ph{3JJi zcuH$C8Rj*_gEOJPcnIPaply&ubQZ!%TB%Keg@meAGw!jlRM2V;0IX<(+HeNOf%r+@ zgl|T}`hqC%-p+#r$8qKHLqi-d$D;%`_V3hefru@VVX3^q7MM%Mm+l3q$S4SkB$krq zJD?9c(u*(l=bh}j4*5${v0qOnrRRPkSaVtX00n|CuV(9&=>CPK;w-L>;Q51xnkO^s zZ~xp>WUo!*+duowC%cY*i9!;Iy5S1zq0tgjsDT|Br9)W56t&e9EWh-TS{6q4l%3^#Dkb?Z(G8^ctQ2rx?n;8sGmqJZkPbzBRNw#oT7d}VtSzYcj@{{~_;rj^5J(0O+V=Wq0dfH$6KDS%j z2CO&s&JPBsSuXFaXaC@;g?!rR@sUAiXe_Fw;iOD5#fn>VTe z3i#WIPyEJTk$*}j`bR(Dx(IB&_Hw;LU45G`{JYy>OfG%y5uTLZhI|0XKy$y(zq=__ zw!XpkzCLVNEwH^0!zwW-EJ~a{kOPF-^q0>HgP&#TXp_YiFtlmtprGk^Oe@wCh?NJ} zPTCa{+^(CT-PvW(?kH)tlTh~dDuwr{7Y@b~D}nKZc>1Bu1?|HkL3z727qk!CPQ<3H z)A~UH?f@?9&44u>dm41OMzg%hf);M{@B5%D%X!dCr*MCL(2c8Yi(xP;Fez^OAO@|x zf9!+onLp9OyAaOm8&$icIOni!D<%eat!%4-qKj}W&uV&F#wqLDk`<0<XP1 zo;C7-*q$}5IohvWNPi_Zc$&6x7t*<`M!Y|cgI&UdN5nAV)TupuZ{UJ@&t5%|fl(b> z!qis;t&>m|8HkQ?mWu^?^cPj#U=M@LRDw(h&>=Otg@((IwsJgNB}Hfclk421J>mV` z)&>R+@zL~}KV{PA+xVm#*4d@Mi%8c1OSpU2fFE1{-||sB2)7I zb#C&cFp>Oil!E_98@*<2vC)e)2rrdHDWQU`M?-tPb~)Wm-Lac}O_iG5SWr2vy>y!} zpPJM$W*{@#;@9QCkmWJ&KYqH~VF3z2FC)6fN9k2x6t9ccqLL>gH-S_^~x>N7ZbY;wz-#*hV zn%F}OET~Kw(Ox%Of68OH_l2|EoT%F`Jj-3bum^!yd-Jfl+J--F!rGLV>Jio^ zO4jZAJR9Ed$4yw8tiTp_{eQ6UE#!G8mkyiXKu7qH6jlhk!LC1!mGcDV6`qM;*(*Ya zA^h`=p_W84TPD=K+!fTt=3#ZQwr#mxyaC-qyn!F_hK>)pq-vgO;hoS@Ak}#Q2t}C^ z{Gz@`X%UdmrGHo_JPjxxgsoiqefURs#EF(Q@oZQiuZu}I_O}!^G0#ZSeBD14HAgMO zK}fh~;E(h(cnmA7I*<7mKICRaxA-aNx@o!J46-Wh=l4F>?SjemL+85LWJ&wRxo)xc z0X}=K8<-?Pw9=Kd!a0J(Uvrt}{Z8k(Y0(M(u=Cu^z8*mM2%fCEY+W8_>$czrTm(OU z1iuaEiMRTno#!TX0<8AHT-yV4Wn6*5e)7X^M$36hIif}JD!;>r2~=g<;D_;o!8mI= zc9IQ}-_VmxxlR0*iTKC6oLj7Opp*#}$V);lxX`drAufZMKM~bZ8_2bP)PxF`^w3UijgH&OP5AH`yrt$euV&3m?zUv$k@{i$J4|^U~CoK&Ueo)J(SO$)3&L^n0M;wQ) zAec7?!!)A_8fwt?jGFOEH3gijYpJXq4f=bim%c&Q>USXVN{^J%AV!Z)dbAwp5a-}b zd*DwoZrT^vX&bH|*eSrMtB8h?z-JutF;1bpKlK7PqsJJx7W4Yv4w#yv3lXxB-*36V zJW4-)MpBbW*a9*m;|nbui0LwlQq%-WEt#@n!z4@0_%jddvl^?WkAYRwGn1o@RhzA@ zBzcsP*y2(mi)5x%))CDFQ(VO|Bm9E>)EHTFBO_~;kZs1Ez{u>f&d8`YY`hDMtXaZ^ z6{s^Z3T(m1nzxj(du!IWWLrCUn_*;r^G9&X)cPkEDvX^rhaITgg#MY?r{2HdKn-Pw z9jKJ8_m2Ww=l~5#!=SSf8;th?id#7jpuvGEj5D~RXekB(UR!|#Ab>wL70V(9Q^^11 zANZ)7x@$vhht@)*LdWL2K%0-%cgPDLiaav|pu%QCI6;wAK_*IjWTG0L~ zP695wOKYn0$3EtAg}fFyF_+JN%%rUAKgPy1;{s?4?}rlHYRMX-&Bh(1mhbqc^(b%o znoXQuP!yQg66|tQgL!&-M4By43eQ3qv*g|U(Drc*D^&6x_6mR@m|*dO)zFR1IfiaS zmA44ta5dE{Z?Vk_VMZxjSL;GUEy6e}9A?xCY%!xPTVmWlL%5dVl~WViX^{?#%w!?b zT_nqor2C}BkNUXl@CRJzO1;~Lq)7EU^N{6AzGc1Z{I~yAZ~{sNPO#=}(LrDMxSLfE z2U+xS*WHRM&{jHn?~nYrn`lSfDG1}WlP_kWF8kK?FsT344*&me{wG4#7SF~XPR;=l zz9|vx2LIwkZu)+*sX50AMTDf*8b!O*SLT|@%TNdHt*+mblY9&PJ`Z(J;4Z)BV%IJA z3h{fU)(@?~A;U<+3cQsCn6-p#Nuyb4;7e0XyS1Pl^R!YaJST`ka2XBb#i&xKZ6U0M z!b`bMeC`wMLlXsHs>SoHqUapLqkN5tV5;U>SaiUn7Iq~%T0psf+f)MdOu2?m<56}b`ft(E3bakg}_$ku}N7X__?kuPFl zvXoa^S+z>#{X?H{oilO@+kPP`PA1HV`D0v{vo2V!!s2ZaJi+a6VYHiPV;%C$yHSwD4KW zvW_kMWgQLvvZ4H$6YKsmPCov}{<7>ye_53U?2?*qt-)aikeeF)Wm{y^v}F*ieXYNY zkq!CF{%JN%d}LG1vt}jbFw^HmcOZaah3k;h>{s3`nSzrYlvKc;jDyD{VLOi$R6b$e z1}<@v76|D?cG*hHRkdxdNHGwb1=fKXE!ctTiy{<-u&YJ!nswVq^3kH@G4HRs#Jzc` z1aeJr>3Kqwv&D&uKnt5V46ldZWr`DQQKxLJ2)!yj=lA@STNu`9>t<8hx5j9s*3%(2 ze8s1bgDt^EU-%jC+dl0U+Oj+xP;YQ5wyPHeT7z2tZJ&0PC5R8SE6D)_yjid;l2{X& zlt=gRG`(AYGNrG8zop`+#zFY#Gj43R6|lrURz_#i(FA)A)x@)(M$7q%@A{0pWEZiY zfbxdgP?KWVM(m{^8Uhf|A9W){E@hTIhI-|n{fwK>;Ce50)0+j2@O1x6-JB_P#$(Vf zRGMD{o=e@lqc&X=0#k~l$U~rzxn(SfQN*-BYJjAogp<#m<1FDMIrK?j2deUH(Km$@Yqw#-Rs`c$XC?J~Eh>xW+; z2G`gWyPu^*-Tne2<3aj2-+8&~O*UQbOv?e5>`IZqpGi8?bMWMjmB_!JKjLy%?tcXH zs^Fp7PvZ1Pe<7h~X)s~hd7eg167^%gq}U_=>z8Bk{Jy{Ia(8e&?YKl~tnKjSVNsf! zx+u+M5WFnoRuJ`hRuiTDbzjep%(2nHBg)&AS-nAaZVkOI@Ef+Qfpj>HNChVCge0gY z{bS9f%NF9rBRXBJ38UPFUOSZyy{2$oLE%|lF0}$dT(kmPC@77QUfVH-s^-7J(vs17 zf@g!Sa|kOo&tdn%zgY9giVb;y%jK@Rnq=iUn8TS%9_ep!`R`-U_UT(mDO#0QN|b*Z|%XpThFY=!Ej8 zKpg8^5O0#W^_pzdR6CZ69b2rj%EF8YP)lQ7NPqnYad)2l{7H!_>G>B&Fx zdAHj*iO29Hv35y!Dw^|meBLdGgeH8UPD1SS2_!_0ZLqO+*fKW(8A)qgM@CB4k&$O0 zqYhg3>%ZVeX6|o1-)lS2PaGTdIQK=jbMXSgNyV0NTI}Wb`J$WV@A{%U9Rth8gTLga zN3yh3zwGvkKJ9<>W%qI4z9@TG^oW1gqU_i7YSPZx-SvCq&e`MVKJsZxubXlP5G%BU zhmh}^2tn4-^oNB`YB{oAi} zUyP3MEnjmB_(}QcJ%W>aqM5EF`!2vlEcgniHm2l|>dTO9mTskY`_FvM4Mq?9pL~rq z_6Yyd*GRr`gn#2zZn8h*>+VRdZ}>W?MPBqzeBB-Dj$pIx=^I?PKY9aUJGFA3-QbSl zI=;#+$i5iGOZ_cZxpCp;EIvHtDtBnT=nGf5owj~v!WKpZVH$?oEsV8xX2LtJb|2n) z9hpW$L`L@AZPhV&jr)tA^!512)*nei1>-ZNGyR!gkLQdc*Rcq`qmp4xQ(w8(y_M7E zKDs&5X>&K=gN^>+-*lbZt>xm6+3vN~rL`L`zmC-S-7}syEn={5f>xB!%c4ICiC3+{Vs2v==ZzDJxamB?}14d`y;;R=5eOTh2L|#@!8$q zV=sw5!<@-yykC5)JB!9|zEzF;S8sJM@$jV|xOYyX6wA3X=qW@&0xrP?$L(WEz&eAyg%YNckQ0xysasB+9zjF%*x%|| z?K2t%2w;@VmY+;{l7blJbQ{g$BwdtM3BkyO*>u;vyULh9*#?h5rBxiJ>6VN_ zr$*zCHBwK%c3(zm4<)utO3^@>RL(nFoA{oexz=ie3#iiGRVkII3j9=d+go)asJ_+YeAE2RS9>GRy`3boRY?M#yY?QLbMhTYT z8En*26;gnOC@kt$f1R|Vrm;+(=Fg2L6=i{Du7hb+-W&zQ?ho=B;r{y zskS9$ogLP;jPsDkF~fjU}WJ%P=4}wV&e!5lgEZoF=NuK0^@RS?? zy4xxIye|AKCjbNXMvkiVIe?4UEZCN2mZvd&o%G8b(z|feCQnagiuO@(@8|Mf^0aarJoE^3b-7Y+38pMGMJPs}|w|^j2<#DbQJe>C2Q(A9t(E6PTg01*3ty zw2eq!tdKT%F67G>NE0Ly!OTH?KA|HBMzWGg3+B5O>~|bUv*y{yO|+siMsl4Ts20*C z*HK3qr(ii2f>?A{Nsid2#3|yW`y~+joyhraz@K!Kk5_h`6?T*<*~q3tV6si7T}L%LP%jdwrj}`Kp89+&PB$$jUZ30fTG*4n z`cBso-R^I@(^aB2|Ky!+!I5QkgwsQGyofQ8L&DEdfwLUT&sfE3*t=ESMN6V%`1y?? zlg`WJ29!ivVpII+!RQzhRYILKS^cH!c|E?o`IRR8f9661`qod&6g$L~LaZJ9se_*I z!|^P(K#;5YzF)fIswLbv36r0sWMl^3v7kXJ!{7s>a?(K48$&NZxIjGv^N7O{=Fw(x zFq&rtm=oydfbgRs0Xv2(9AKQnrsKGa7seXr>G6`x(bQ0FqNi20dJ+MSRGgI#3Qe4* zxD#?3GP+7(5Ec*)HP{nT-lc)fiq#{@1c!Q?HKy_jwS`RW02o;ep8KlfpnC$|4Wy;( zA~9sEyKko;PIcl+btQV@g`%WiQ6o&IV&moH{9*!w71C2K+LI@ z>=y97=s$Y5o1~1~_DyZjMFmF;N8D2XtNurKM*P=QJwM$)od54Q?@UeU-NLo$q!d2hQIztsD9x+ZpYPi!oeLS z8xV|bZfM%hi`QTb*9?ThDcL7kZA52+tA%vcDHvGC>FK?;87TlZv9OhvnZUN_=iKXv ztQ|#S2$j{5$SNxoP#6-RtH|Hmn1m#P^9v=1S7B_`Q(JKY6d~ zc@xodbD@+Pa$RvL^2iD%*ch#JH7(6p=V6Yqe&Y1pFCt+u1|5dXMra*>Ydl~@(h{Gx z4E*(n-Uquc`cv*hYZ~wy?sHu`&cW9l2LZ0)_OW%pKpzNQG<2G?Eb}Ht4`m;hwm<~S zGUYk`rTbiGl?1k7BA;_m{4zwvtIkR0oK>D<#wJ0R{h5I!n|R1=DbTLG6Ujg_r*w(GpjfJ2Fx$9yv34|;1Dzs z=8;(xWyi_*J?vCsTV^3{6GroP79UFo4-iG;{WQVD?nt`~<|Rs+C>qKlis~%BP!>tl zcRt`+-wF>xE02ebK#j-gZE=|Bw$(bRKuTb(Q6f5}kLTq{Vte!Ia;yL918&EytBu=T zzn}D=+Y^oU=m*`z#oIM#BRI~w9dh|JVl&ox`0 z7qh$k;2~E&xRDqgY7HWE>AQs5DO#R8xU@`kw&=`L3hH(1$ox<`d8iC2!c|DN8@?&0 zC6kfc{OcaZ&o&3LChopJ9nJ)qr0WV=b11wYA%Y%;K zK+=C^-~yxl=7-&^#RF%q5@8}}Wh$*YGJqI9fIwVRudR``*P;oEMy}6`>+^TNCC!je;|s`n7hi zDVK3aq%rA;;qHu-)9=LO&tewlMDtKj&Wh3u;-$2am^wg@oH8x-9tfD$*kes?mw=uz?e6vX*%MqnYoMn+3rM7V(J>)?=jz8d0H+@Id&U-c*kfr5YLQFq{C4!udQw7`kEsW{s_ z+9ilyixT_+am1K%jJCcuX+J@;0Bq&}x;Fp*-vC;>C3_30wr8RB>q=3UkAOiiHG;Nv zeq8@5Q_yvYHDhmbOOyU((IFJz=Ufns)Ycr&9rnk_gh0#PfJ6+cbd#d#>135srz*N1 zyXkQN)Q)Ru?$ZG{v7}p$E=o!|x(GBx5}AesB@ELNu26SB@LSh24r)NQun_<&6U|%w zn%}ZGwfWEd*3IcFi2Is;)n8Uk)|lC9?bHxXT89;brvCRI&Q9|my48*Hy^rAl`LW;c zG4_8R>EH1fakCL!Is{?1M6eye+uF|O} zpIq8590H4`l`Y&ghjU4K`*A9CEH}(kC6)<7fbsYLha2Y~|D7AttDS?E?PG;#%yf3} z?lczs+6hxjIZ<-*?_FgT$H=hCDgd}e%3%jT?DQSS4?0LMKMFgSI*3TsD+CZ9lhC8O z=-F!b1nO)czuT$1(ce^202)?a%*Cb^q`??w@X`SahCDV1<%`T;*<1AANP3+68> zig$Q$ku@tpGo?Y0YnnSB&Z=TR+mr4i`79x)w3nlR9ku7n%;62VwN&#zxwK{`7_IN^~5cOIAGrAeg*WFz(x798gAmo8&|tw z-ustjPoeK~mt{|_P!Zx^D~7+pRkksyp++kjspudbsSMVN3T|}!^=pzHmQ@ezViO?i zAsk}V$tgkl7z?{8G5TciKW2ek4Kc)E;p*^mwTW?s4ds3qgXW=@*t*&uc5L@6*?~eC z!BE1jQ!Fy2nW&6G!n951g=EZrsn z=ohFKQq!>Kq#IC(I8Q5?BF!>JC|*`Icmi|i8Z-qNr2TTDda+VO-4bu(Wmao=SV}3E z2}>j8*gPo)!|cy=2`gV%O({ZVmB2bw9Kh6YoDU$)Aw&l&s&%vgWsAt!MMK%ap_SRp z3Pe(Xo<%rRT!mh%#LSn{qT=kEV84}dT_TJMN(KyGoP~~+R)IJ4ygMzXrKDD(n|Jn6 z=(LJeSD|5p>KS%_tZJ3EonHHK%;=_lXIjfe2x3qKK}Qk@LUbbHN;J;=P)%%Eqli(oppZDAeGJ;KV(yVZ=0YDsUE*@Pd&G!E{?H0Q-6X~<_P`ZOO1i7X zl@J~^*x((G(lJ9X-hjKg-TEjo4< zCfm$H^%8lC{)$thad~_KDdgm@IXCJ_rP*uK40J+{e%-Oi$!14hofOMFi;49CpLFe% zv|MU?P;Eue7Gr1)MC-dtOQjFORHYCgZz+9I zuRhCYds!{h5E}$amzNigrx@Kh$)&*R2#a+dC3O1C`W9#*QIJO}%JkENg zavLC#ctfDV1`l`A=sNw{zi^ymEqN<23M&CjUN)_BSfJ~m#wcWByM}HDcIpJqx)?jb zP&{R?rcDgF5|GG+&%3O)j5Mn<4 zIV$0&1F)IQKHcy7g6o>fa-gsIv7k(Xwlv_Nh#7NCV$R2Enc?rayea2jxvMFU6vC-2 zw8SJjR8?A#f)9kFPL3lF7! z0;dkzT0>_7o6VNm!=azeYD0VtP3xBb%#W>_FPG^tYz_=F4jh*bzos^LF3dn&(gdD{ z+J*?TBGxZ1E>JdbaWP@&P^oiv3ZUBs^|_k#C)umc{YnLOY;CzqdC7Va1TpwzMW;+p zH?Wzth=OFT z!N5yp9hO4+HNg7;EQD@|3#*?E!1H(Bm>;_r%9P}AW<;d_1EvIknb4?BGFz)oR-bKE zrJi_kIXIK8f#5?FwZs4JkLn$_uAa;ph1mfAr|`G5|s z*a*d&0z1K=hJFJkR2(T-A;+bVK}pAdftr((R-L15XfqhKVCo=UVRSfM1c!|GW2pe! za?rgJYYgi{mzysR z1>{z6khMe~L+f;F^I6)>`oU9p0KR znDF6Phrb)eJ^s>{+)5&)o_Yxrhr$BJDc))}gD`;6CddZdJC^N4d_t^l0Sm-E4Kx!I1)nQDyG*E%YfZ9oxl1BBb^j!s3S2MoRV@Q z!BE6(Y);9(RQe#jQ?-OxgPyF2;Eas0vI`D#_{~k_T+Gxf3PDIx^uPN%!QskLsQm07 z_Tx6You(-r0TWZQvRi^NodQ_`a)0#zF;E7<<6m<59#VcHJ_O2hDgJw7vDYysc&y*J zncZyYrSi<3DqBvBkgjWw)cB`F!i>Xskc}aeM`cvSYP(5JOpF z5FN|bhsWXK{-KxYGzYQP=qQ8eI7~*89dZscD*aQN1DRlPr{^4U-atmO5N(5u_^w7q zNW~zptQanxi~WyE1~Q`{dwmfp+tg4%kb>Q$dVR9 z4VO4CQcMRqa7h0oE;Y_Jxg&Y_oBrn7UPmHf=^o+(fM=A;L@@7kVY)M8(Wn-s3%F`k z2Vc`hi@)@5Zq6iCAwyCNY!?F^=B*~Qoyp!}5%bm;=g!5pxW%Mq5REZToAFpbp#rFr z9p{kqYZrIqtVyheVL4_Nw7L^50jo)Jf%(9o7GL3wGy#6_ zj|hAynS;@MHUZ0zu(oknnLXt-u@tUl&O;$16(=dA)i8Yq;dQ~8VYT;FV0=cKeYK8N zl*g(U_qbvuU6@rk6ITR7DEr^l~dQ|UzEl71wYBXg)5ezFXQjOF9`Lt*meTHvt|Qpyx7H-6u z;FHphD*2^I3qk#o0%D;jNN^YpVR~SINhaOET1y2)YPJYQ^f-;uKYuoYpRT13B3AgC zNg$|?}MpZ`DLMYS@isOp>b{&Pe|;y~~ysX_`%* zr4f@(m^s^18p4xXM5R?ByRR(12c6 zO!7^^nUEQDD=7~FShO}^QXVxU{p=4&xT-A`(vQux2MYB1nRm zoCEfW&9zA(GJNr*-*8AlWnfPLxC2!1R0I?8bWqHK>!{1ECLd89=W^1ptF%np6PYnh zm1=KJCmUGF{>9wYATy-51YHtSqCk@mpkZy09%bK>{9D$_9;FWB_!yi@Ne}DzJS+@b zRwbROD*xsdb%_WldmL7on)9D288XrZqiHpnX*!D#n3)@kL`8Bkp_-JqVC&6kkxnm; zOtKPelbrk)6cI#cz{nTGUBlu>gPxTZF*bLZXh_PQa!YpNM0JQ6sg0p-8f^A&Xvub0 z@oCL1o9F;6$!w)~km1k-vnn~>v|5)#&TwQ`%XeDGc2Ud_UlS;yAEq?O2}J+U0$!xW znYrYoDs70;2rnW7BnoqUG6srde}7cT!ECr91*^aM%S{ui!s&Wf=|xTJL`*M;6D{Bq zY#y|1EC6OyX8)vUyb>r_O2 za;@c=^ap)~PU`H2>97++oRl~nc%Z7PB6U#hiptbLPE(c4t1hxs#zGK0>8Q+DU72Ns zWS~=@u%^%>Zn0E=y#I%~KLL=Vs2=$7>7K6HYj$@w*_^vcW`>1q$mW8O#3Yb(AP0AV zAfjmCizsXW2}D2zCUQtPgm76=t_TPyL4pJqZ(`oy?R%@_nteSFDD^YSgXFa&=IDPyM4fc(=OpbmMx0?78)Sg z0iJra7T^iuWCU`uG;+Y$>f07`tv;Tyz&43!@aEvVT+6C(08W@zA(P;H%~+PH_p$c^`qA1Tw(F2IWgoE1hj ziVff(kZeDG8bH8W3Vj8|rLoHJLHH!qOvG{6Hz`MfOS2f-@$Mkj5IptLo(JQ6@i}WZSwsr}C`ySe{d>b*fa9#GvTe zEJq!T22&&JStYynmYRGDla8#Q3#J8{F2`Zw77&lQiE}-}GBESY6GA$|q_pZ^G~)+S zOt)f_EOEFxIpe+}T^IX0i!R5|WvXDIOto+LfKFApF;zpeV%!$Z1djp(BmXwoO$@O9 zVKRXhPD0z5*sy zk0UT`C72I^qTJC~cPQxZP={ydExm>8SMQ~(OTuP=CparjwgM9f%91W+n-a$4C_q>` zstF$;4oK3GLg|U-S(Q5mmEg|QoZ?UxJtJ3q_6>iVk_fg8pSw6shXLh>wuE<-7E16w zYwL&eMfOkeDrHjgEQkX{#bi+&>L4mv-Z?a%m#+vftf`Do@@Bz8+!%oN&Rq0d!S%aP=RyCO1p$*H)+{)H|v zy9Cf`!gYGSt$MVV3TryU+QZ`QfPEI}gkluB71YKeiA+p)S_0+ZGQ`gbudj_IG|d9- zc3Rn{(U3$Xs$oDFLPLL!jxHJ#CvtlBE+dkSq}+MF3c0k>Ka&t+d`iM}l@*Cm6U3;> z4~`Kd>ktFXiV-77AO>ohB8F_KEhx@JApgqHA02RcJqXg2AB^kC{-Y_FW|uSv4W*$% zAq~V3AtJD}s&zCuN3kw*WkGd4Qw6g0=z{9uyeKd4KqZnWdLLqO=kbXLB$lLFqW7!w zd~vZPdbt{Ytz<>!OqbJw-|waI&T(TGEKXnRrLQ9Z%vH;RMFq)I*#W@Z(5dX|%0W`0 zJ&`W>aAW4kss^~D*d+%Y9XTiu8U-&t{YuO3V~&m-&>$W&4SHm>NCw1o8#6|b4G&t5 zqr>x4OJGg#A`+`AjPmOjbQXpDMPjB$Z$nuK8P`}EKZj3+i4)= z?qL5EpMz>=!YUn(9$HaaV$oMIm;JPd{K8x{$TlL4J`5;H8t|u04ym7df1(l<4GDBNo!@;IH5fcAt`|FhP|$x% z>~7LP1lq_NmKOgcZ;-PKvM3B|j7P|!y>w78VLxH-B4;XSM56*a5$z$>DD8pT+=699 z75Vt$SO$_yOnv;Q)W=@WJvfF`ZKL30Rdl+(y3v*7qi9owkymFs^&15YK^j!HN%Xa&_ZFov0V*)u^5OU z?KjkkWV&(Bs5P=X1FiN%?mQQ8zUQ1Vb2coPUEL)_G|fz_^1voAd3OF$j*dJZ3iHt!&7FvXiE9&T~j zPG5j%L1;bBqj{V@ds~EH$VyB+dZ5seqr_u6av{^qxu`^f6@p6=Qy_y9JM>5#nJ&L> zlZ>YdX&d|}g??21r76CeT_0HQ#B{%{AYk}9mRnM6Ghd{C;3TFRk{YOkO{RshQ->&v zP;YN}p>BvPS*|DT_1Eg$WC<${aC;-tvfw*KyoFw?b;ao|Yj1y{Zm`p(|C2|>#)NJu z3*fNFXUPfPQeNKXLRMM7e0y%C7JZcs0EXwz2E}G{U@C>-8p0AqNwyIXH-v^O*)u^` z^^k-)iG`S)n!uDB^+bX*r$fr5AE-m)fQyBw*b?g>do(2DD+I>;#DtB3gaas;tqVSs zm*IyDkRTcmtO1hv2glG#4cOumlt}V+7y2AooqVx6$?)I>DX5skp2LE?*I>UpEZBwA z@y&{csxPKPPEAQm=Wu4epaR$e$Xf~-#5H-RzL$6mm&^eY>QIaco5MaV7fJ66vTWYb zcx9C4-KiXzMGaD^o;=aGQdT#Wr*KhGLI*??lmOW%8cRggK#4Yvt`VhM!fL4OA!MQ+ zLxL*BW5_r47$T#)&crURlz*tG1!~M1!a7L4{zL$O}{R%`;BofcSWVK_uk>)$8FBG{<%{#XDHA zgI~xValMw}O(_-;L7p#m5b4L!F2>X0P8dMh@#zExnh~0oprQ<`jGrLxLno>tPNpRD z5HB=+V4o0Ym+(Z{Q=<@Ju7smFOGipL3GRHU_aG1hr`+KPIqlBX2)}(|dJb=bRq-W1 zF|D&0;SZdcp5z+jgtKbX>WS(0lDmZ6=D8wh9rJ%jo`-~!C@MZCiA4i(v_YjAzvtLRPJ>-5WXeVolPMdj zbXi{f3S~O@yCseWoIEH87R^ft$HoL^ETsZE_ZpA`tbt-;e?nkwVynrl%oijkqKlT^Z(l zy6zz#qh>49CJgWkw!<)oxRT*Oaq_AKHj_aLCSh@Y=T{NyIA zh#4(M1saMDltOOeg}?=QtKDD1ZjNPH_Om5+`^|$FH`k1E1M^;Z*I7K>%*EnI*r9V_ zoo1BtByMYr-DQhlr+u~QBw9QmO~=Pg$CjIprD<3v3kNNV^6I&Sb?sa{EYGyX&*aO` zK<{Jh+gk*~i`soPEuNO9uy{9;RNRzylZFSaZp3r=`F3fyL)>n9+)gU^jIrMt9vte; zwl57QPuy%fqdoYY)H|pi5uBZkH~);J=(v1DP~2?EYoajL{lfUwB@ZM~%X%t2KTWAX zWEcRq+`cj*7$RL%Z5d2$TE;H{e#nc`l;WVD*X+D4gI&u#BTs*7uiY~EGN=5iM+V1f z?eUaw{fop$M1Pgq<9s1ouO}>@ipPi>YFSj(8Ztw?*VIz9s+=z2OMJS7OJ@R#oP(j;$lJA$*kmG+sA;4W`v*X5&v?LEG}JUY18 zTVhWc6P(Dm$rFQPY-wyzEQ2cAIg*Ei`?1 zTri!dkKZ~d*uAz2PUre>TLqW6TQ|FpuO)$(( zpAhU9w^%bFIDl(LbY?DI^m4VF$0i0-?B3S~M-5vFQ-NFR;%Hv6%Hp7puC*^;8%&v6 zQLeZb*<)t79M9l8_aco7gAFO=F7Y{bEHp<9f%3lWG@Rr;9>w+U~VOp?#ztyh`mP!x^sM1-0io@T%Zoe}vC=6QjdeAuw ziCKEf7PYX&%GWWMyl!up7Oe80ebYWPBj}%5#l2Op+f$|o-}Y~M-F`ehm_6uT?N#Dw zxDv*Y3U8&^t*_f(hQWX-@(y_|XWzq{xDRhg$t}H*l)cgK(gC+!2hx!K>0nM}Xr|}T z8fOIC`Kw>IyUz$pJ%{+ljNrT3_|2YlcI5WK25Bw{p0q* zs?DB#lSZDC^q8(TL^R7wvOU@M1q7Gv5Uk2P#4sOvy=%Xj@DcAVd*19|Gw)j4H9Od% zl9GaOh_cPBS1B!1q7S#s2@Y4h+62+ttLFqOVG#T77#v*LjEHecyzdQH6=$<}Gin3+ ziOr~?+h#=dgS@w**s$JaG-Ri4n~|5;jNm&uD|kF{nl`Da;Lytt8ld zU@nyL8~g6uV5E1Y9kNF-beB*TJllzoIa4-3g#;3H@^w{7^O4x=H)LYg6*y&&;AC>9 z*6tZBZ$8%ZbjO`jBvnN-T+YkQw&M=(v)RB^x=WKmczWJzlFV?a-1#u2*X*H(_t_%7 zI9+Fdz9;!1{$khc84Mx)_Xm3hBfK>>zgMtl|Iton7J*;5GR}+>z1%GC$_m8fN_YHRT zybJBCUk=857j_N(O7NA8XS=?8KyaQ{_Y6KW3GefBYwW-SgNfrFR~cB8(FT#+p22xk z<9yB9&dWWn_8qrIgW;=1_2tM++>G8I;|CGetHY|J z#G(~-w#M%G^K5JFGM4U%g|&=B`; z)rw-jo`Qzfy&oX8IR@nW9iQ*NH|EyrWNnVBgyexQj^hUu(nwSXj3tkfAZ}UosEI`n zcNnd^=%Edr;E~scQkz2?=BqHerEuZO2f>2!LCPJ;rLq`ZNe*?OZY|a-x>CPG*IxAH zs+px=x>O18We22}LV0VL(b}W@NozustBLIjEwLy^+K!|s*A2phiUQ)A4S?7_cvyYX zuuxMOxRkI~j}5M+vSboN^nVAS6i-jrg{`H^O9_F>SCOij1eIcep)!r2ZMAG2B)}8! zQyc}>HbJi3LgXaE_tD`#+VJlnhUT%-u;Rz^AqQ9az#O@V43C_Uc@X>S=OXg`~;3 zr5+SvB$Jw+xIhw^#8(PgyK{CDNRV%^(-#G;do@a{YW0rP%_f8?i~R-*cCk;PIgKF( z$AZcCB_t?K3UoO_IyrT&$mf8e&B=5`W(vF-!}EWSN+s?Qc*L#kL2$I|QOuTaKex{ujdA0cql4|Xj32}!mRlv+aCx>h z_eY>DjotTr?n;xpS|0jp3+=UcISN49%u4UMU$|b6J|>tnU%PQ#0&=(NB}p@CLlHl{8a>?Nsf*M_#W=Hy7{Tnj zw^Vhn^pYf!UP)F-Igx=!xDKCaV~RpD1wQgxH8J-XZXKPJY%v)D;KAHDfKS$w6~*Bs ze2>p|o;HZLJ1jw$u#-m z_>VT|9W(N$ZMIhmMYobb(JUfz;M;UH^R7Q? zFR>!y@}64G1Lo?OPG1|gE8rWQ`hF5k=VKJ29E+p8E35uXLh8ZyN|cTmg{)tho= zDUeL@XBjC;sk^Mzc`%W>1F6*W2~#FNBqg>>GJ9VHy1=?7rv}RTy=PP6=c%#RelNJ+ z+s}UYxZn-%0Q=43gY&gQgmNaf*r;ws{RzRI-goT&Cj{?fj{9OMm@NkPOH08g-u?EH z#lbAk+P^Oje&YSYF8)68{jqQ!wkIU5Oe|>)k0q^kAw9qB!Kv#e%Vwdy%!*?D24&eg zk!8^YkI!dCmL24v+=GB(Gg__s zbmV51gIMhep{r=>tEt)X?-PT*8wP^+p92BQ;b#J2pL&hssQ|(2H4s4DG7!8N2y(M0 z5ab@#$QTIDu_ZS}&gl+>ne|n5w&7${>kVRp|DOZF?-dYgk(3gcK;nyTm{7e@Oc22? zHmLeB5aec0AgBbWQ->;dMXVRCMs98h2$?#2%qhXE|33wSkOTgt3MTXfg40AcL=K-9 z21a0WZAvy5TWta zzzg%WIQJKkq(iD7H=G`fu-lv-4Es98E|8ahp=A(gD)A8VFjAm4M&#Av$r2pGdnCo= z3#nPExa6MXMG|s?>@4AK#G)xC$*ESFR!c^QwCs^}wsd+hwJzI<_^htrI(s*-CUWs5 zvdi+3JtNq9aGhkk)5sGJ5u}P(!$f^S23}|PJtNp6&So9eucl4p&q68SOT58y>9#7u z`C~bnd$Ds&+dAn%8}!g#lKX8B>+xVAouumT3_of<9(ZQ(<$5fPoy?rmWzFOsE}aQ3 zWV01K}wXa^jX0U9y`*UvxAwKpUyfv`1@!20nc5EL3X}r( zXQUt=tWyNy+|yoB4`F~yVvy3K6Ku5i+QZHbj+WA8e?K?)Ro`3DEx;akJc4Z-A>RJt zykHyLj?bRw+}-;R&Gxg+=Lh{aJ3oCym|ldlhX7Z3RS=379P!L~!K=j!zU%o3FSr!L zutT@-TkUVp52j&hvFQtf5hVmUocoLtiDR+fRI5^5LOs^gsQlJD^%!x3w%}Lf@8(N) z?HE=a?+y^pir-A5g~UbRwMZ05mt(FQ!mp&{FE2XTx366goH1M{0ddY1typd|4}z_7 zQc+Q8%$<;1ZZG;#P!J)e*I@JojP-VdU_8+VTh$2AIb9K6WN)(&@pAh#AM%P%Y%sD< za*+x$_1El_Wr@xj%WJZ7Sh5L1m%OL!upbAf5+`xhkAp+_X!=QTK*buHRF`@s z1q;yZ%AcU?uC_1#B$&2E6xxvvAGjK>An{BZWI||1!4F-aNm`;zE)0IX^=glhUa@w% z*bzCr{)9Xwd0pbrl*&_Lav5W{xhU8ven}AicBQ@qSDi$%$V<}EO9I;d?4n>FfAKB$ zlZ%iiPqs5J4wicR+s7^rhE^{Sv^KeK+K(>|jsrH|xg^+)-|oF6`P*BU1Y3Jo*y5$Z zZWE*6nIL>uUP-i9WrXEd>IfZa3aw1-%-wIVx-{5vTYb2lTOZ5AZSlkT9f9QU zdFueip_c`}0d0q04l|!^54$|r)_b_?n#*yoSH1Ki{3Z7#`#(PmzK9@j^Us3q8+Vom z+j9CbHg~VByAo8`+3tBIWgbty#m>1Z7%mvH@G4^a&b-B5bX71)XA!Jb=3c%BJgJ%y&C{>Lb&!BiOyk7C@y(&5q!>>*qFIWUe? z^Qcq=dk4%fDiy&Ox4EieGS&l8?UQ<7R4RhDv1(3(?y5QLy=)ckshMwNbJZ#lV}23r zJYb!iR8?Vu{jMf#lcS-2uG60Li(sI$vB_kj+P2P26Di+iGYwQ9%LcTKhwscZdK5tl z^3DP{B7;;|c2Xqh6~|VIV8?5M?f*B&6()C)&o`vuD}s@3omqRQ@S|y0HaWhyb!O#b zK+!S=6!$8d9ADfzYl9x^oMhKMtXmsdXXV$guLwFD4#fHHBc0?%OEwd`JX^EH7zvL` zZ7O!Ho7n8z6Rr!sS&3&!s^(?Jv@z8@-Hk1QF~XM8>#?P9<)+w@(>xM3kg_8Fc{LB! zMxEvX9yrazKE5(Ivviosa!7q1J3j{7#|K?(hI_`?4tDh+ZALit>Vv4fJ7n?MTYoDlyucDSjVVN3`8BAVt+Jp)lP zcI*wom_APkYsXfeeuZFL`FzJNydmgce8qF|of=*MZ1<3OT$#E@AdAPWU$Q^HA^3v# zzJ1|_U^qs2v7qH<+T5yOKt&8ovYj5v(S~JL<%9>V3Qi)l=G9ff&%DR%**69)-f3Oe z+!$Qx5%RQWSMZ>G7H$rS^ z0rHPPLITV>Dtkh5d_6eah9RNh0nN8#Fu%!8yq(Q{M|;BU!CXYVKiwYeP!8KA&f`-% z><$7FmfF+r2&VWay>9QhBN-u-43FrQD6CN`6IKWN{I`(#Qb+VA=O_g&3*2Yo&7dE0(Zuw~6F zOMN|u@QVG)J;A8TWIkWW)ZO<4qxYdpIg^DvnpJLzXQN3xniftSIX0(yELrDM|H;ji?}H9u7JyfJ;(yuR_F>ny-C0n1Q7F z&co2}&elFctn+BQ_L1PAvhlB*n5Q=BX#308Y(&MC!LiMV@n04LV-oqZr4Cd9g)5GG zN|N)2hI>dN9@JT8gr4JWHH&ns6v#Ae0Od}TaO@QwD;&c|gWGl=tpN@B8i}$N^TmJL z>8^hX=2jLbiFmz&p(5Use+gPDeSE&jjejh7t@P-t0ys|mgm37TJD|q3hy$w9zVm7j z@{ezrV_f9fT7EX+Q+jh3*dWxiRyDAl0XbLdC9extu~7WuN!gy&bDj>L(i^+7=v?K$ zs0tWcRC)z+AmTXkdV&&Vr{7S|H_@YxwQ@{f|S^&{BWI} zxQ6@>OK-8?T@ws1J*&gdYvIoqqift@-9|0w#Sk25gx?EbRO75bC7xR-P+@-B)f^g& z43k`4BSS6^dwV63GJbY%m=G7tMo3A~;K08UlNe1z6q_)bh$uwsPlU8dI=FZuqNvN# zM$4-*l-!bu_&p|)Tope#5x>Vox;IQrWMguVGMkg1AnNyJd+{^Dpgtn5BqG+33+?UC z1V;^7dWSAJf7%Y8)smO|k5sl*k#^}FcDHAPfw5i2gx6i7N-@F7v0WxM{ut~sXFePJ zZB}GZG2tp{+YCalXYw)5pn@2NAjvquh20UVH8~L8Z^VU#6B zXaqA1RK^EOwP)Vsk1mLz|1SP;LtXeHg%@Fn$j(fb^OE+Rmx3Yt`_6^$CtdjNcu*u5 zOFt6MB36uw{>YbDf8^5H31}JXkKBv&NBhv_J^aO=OPY{%7va@S@kLiDhc9g9vXQTo z>a-X+m}FieiLhYj^Pb!zNF#Sni3=cuWQ>-?)}NAwoCSYH;nSx6XS6>_>&6f5i1L65sP! zkg!1je%1IjqzC<9iJciC$1H(82ou8{1WzQSN51AB(=Z+4e>{C&jRezk-dp$z^GwY2(Q9{lABJi0>xB?{p5|{a84o}_9m{c-`F3% z8T=9jXzE*d2u9me-ooxb+TQh6@LfK(dpo$%`=ed^c5q%d1;6XOcY>=uj)hKrFIZOo zrLU;|&%PIoF5jt_JA?m$GxR(=_a8yAwCp|7k5I!RBn_PC93JGzEK|iE@pWRvhZpk` z!0Lq&-?ar;8#CfNzCDFk!E2LhMX$i7I#b8mAU}4jusu?@N{oRFT*3^%aEVC>%3%f` z67o|)Lo&QD%~dGGfq7LRCp}^1BzKrtZn?QYjJN6Z^bkA2BFw1b z>^Vekt*uy>yzUJL)@Bc99 zY=Xf05nA zArLv^CvkDkV#18ZbD^49octk8nwi+UiL60CMK4@^gO~SsO`g}R`4iHJ5r6is_RIeY zic^0=w0>H2IbN)ga&L}bC7IZk$*TnAV}((@s6+~M-Sn?ujF0p6m463c@fY7}XMPe) zt7vaY0QJf~rvUoxC&7i%*ZfZ_N-GfyD^zK%jG+)KtrD?t@u$J45s}iG4(}2N@uuPw z{_$yWmbdzX6U|ND?5-)E`IYbe)V`HA1Ctmm?zSW!E#rwwLftXgwT=0xY_$IiBz0+E zhW)>4K>HYz-~Cn({@i1$Mf~jzRsG)))!>Yo>DFKHRo6d>uk0M<=oYLG_Ms-f*PUIesemuk8R%a%AKk8anX9oLm(ijt-;gZHw02l+WYkY&*$=j_=q}p&3M4Dtk zKRvq#@y86v-rs0exrJ}%f$OAQTg<2=f~U+RG=j(eJZBzki=so=(1oj2(%TfOqowv( z>I<991d>oZ(quM^u>(u`&vYDBWky&=tSTO9>0|x}GuH`yOccVD!N_$*A9JTq7LjlE zHMhkBtqPx)j@s}dD@T=q#u!@V2D)prnd9AHf7EQc=yJDyahCyIF6w8#PI%2<`FHT&fuW+mV1 zhMMj9w);@iHuRaakTl2cA}N)9gdK^*L`baR1NNMuX7m4&)1PM-x7*fXjN>f3W|$f2 zFFwU`dTQd{zx$~-qZAU;o*N|vgV0IUVOMo48Y=rz(EZbwa8Q1?E z)#Neei9wiSAR$_3?i0IgI0U(_>xJQ_+Vgg|Z?v0&_n~bVVfJHc3r3jd{SAYwSK&Xp zm7mdJW_uslKX;hnTbEskWUm`viIOXdFkhZ#d{SU*4Vbf|MwtOEn8~+6yK9Ovf91Vv zi+zqKCug|qB|CqVY1!jyr>D~f^DIJ7!bj3w>c|HRh=f3_LS0x>cC~ON+K{>=M4!0& zH};RC%!}UJcI9YusP`i~WQ>{9fp{yAxljtVd*|0Kh_Mb^pTuY?`6$H#+p+reI&gPy&8vlA4ZQe2X45JUX4Th_|rJ^T&0hs zJE!{sZ3L6WozwN!R>u0?1zkVb#>}fFMC0lwf>Hj7#yCCEqvGiyPX;3^ zeIzxGUXig<+9OW}lPav>bHO^+TFT_m4VQZ{6f)`Pe9nG~6gqF(e?R3C#8kxzVvwF= zwJHgyUM+%le9+Tun18iDc$z4grFQkx!L}8!C41DPH?hOJdLzrKJx=-C#z5bzbC=Gi!{s1Jr1MF_wpV1Qu>D|$nd^PfHG6y0=~YlO ziQe6Jl8vmBz<7Q5Br&`f-NZ?rCd@QnsNl@!8jHPlrWse6&*x$%o1RZE2qK=(fwN3| zc`V^-7RSLVC8_Sl)8Wk(bDb<%4hkNm@%6c_~lJo0;YEc$V@$ zd)jO>r?RL?0_+9Tf+j#P+c?L3g1NY1M>FWZ?dqT%&AXK~Y2MJ1^o^GUU*~_nB613k z%%_!8cvN$&Ku97tWCgIktiK|tgXI}6(^?`RO=*Y`5Z>M#7zBjgExS5^4^ zb+%@nX={qIP?GAlYE%mG^HaOsJTppcuZPVuljZa0^9*T5Pqg>WGg}i0`SConSL4GM zr#op*KDvBE_~^y%WoAE=UHx%j#kKpiPO}<|12~krtTywE~jwk(x zF767xXs-9@e!nl9UAxj>GGFrDmn$1&vi=DqDV8UmwYjgD8~w#W*F9e`-}3x>Jp0_& zO+UNqR}CR_pLQ+&s(IP-fBl?2WWE_OAWpF<5b$Kc)J_f8J*Yo+2hZQ;n~vtVIm)PO zKD$0^um3@|za787*||@2lT{Kpf@>GqbM`l_iTfA1`xo0gy5GOp-M_@X+5P?{?*65= z<$!MeTxrw+sb>FyZb-=5Uprbs!9%dQ;p1od8rADp}~!s0n(z*twGmi2blg5 zEXUc`4n#4($L{)d^qt4;vag%M5Wy*OjE+i;s>e{&6SW@uy4lA2)MgJdgUSF?3>$Zl znMzNGA7r*K{@%mAsis=c2qhH~Bl1hk^n95laoqOrzpUP7oBaWr1dO#8Q|`#j`OE`v zsYgHD)K#_?d?II2KVt;YU@bIB-I$4eUXs2&E7Lq5~e%J}AUpD-SY{rHPR| z^$--4YwX%XOymp@k5MA<;{V|6N5%BC3CoiT{r7d62^CJB;C-xABJ^ov)+_B}y9H+U zo@%8eaMu(Zh>hjCF3v> znn$h||>cwYME^DAb(@)cJfv8vQLZCTE(J$Beprr%yaxQEnH;=&rqQA@G=RVU+=lXbIt zm77xPW_6u0}e9wE<9(s(qkB^DRn$h!KqU345W>l(`okddJ z=Zm=bE4p&hfYU3Fs2Xr?KGyt@xW?JvG3SzN<%#c@3;CGyEC0Bz_r7aRNc&4)vqzp_ zz6i$t;RF+%>#t!$(5M9l0hXkNy=fU5$KLePu?$)&apF6rEm$J4x~{Fm5^VsMB#}6& zD)oq`-UxAOB<+%t8HqQ4RmqI(QYto5kyR`lQ zuTDO&a*MZ9ZxqGH@x++7>{Sk#+wS?>RNlcImnF|=9lQCYr&ajSC4nz{6i*qzWw_TQ9-_A zUp&ja$5K6hwz<#IE?aNH!S&gpBxSGhMj}ZX6MQA9EUmBE57R-FdE==z(orADw4LrV)U)uvq!;u$>lo zkG7XvoLR@%V3|2X$s8`QvGn-%m&;7s;QKtG4hi_e;Oeq2c;PYR$DD89SZ1aWrqljo z^S!d%q$l04`!N7sXP^ABIWn{A3NO6n3cJ@&%=P6)14IPRU1*N+ZnsM=G^4#mw(CN( zvpwx12B_f}soTiPrY<`xv| z$#o?05(Q&F{HfWy?IChlDP_xXI;aGcy_Zjvkt%<>KV1muQG3K?X3!8)5C%=vsiMo( z8xBBJ>G~K=UgX~Q?3I_9wn?-{cY&X&%qOusiO3Oo3mS@ufvq9n2S%D6B$eC6K6sfK z;@xN8xXcVB*N3?rVyd-UUv9Rrm#$7{?EK5kmSnX!{cr`s(eV3b-Dic1RB58>|;@!IDA6;RN9Yq~+PIs`cEfS$LZzx?iIn~USRNy8j zWWHW)f!P0ll^$$!f6O%7o3Ai$D<##+9#kRc-~7zH#ejZ(CGzOOfNnY#O2+L9x zBp`Q3K$gjF51eqd+1y*yb;Z?~o1mt~Uzqt3g(jPIE&hcW>J5AJEYBZM@+F7r^7MjY z6-y>EG<6=PgG#&D+paMaMxOL0*hoSRm>dZJF|EJq73;zhgJXg~$5Obb?~ zb#7o~wPK}eWA8nZD)4i7JO@mL-7y&;#wR;#Rt%03|BV)bI4s-yMQI8qN@~Sr+>rE} z=SM#*Wp9xNE7IX=5MBnte>j6fDlr!N`O`xQ*vvW~5(JZT*+-xut&P-NgebH)llVsZ z3yCZ!Hp=9sbRTOB8|&Ql8ofh1 zmwcHE$i~gks2`?tZe)UmMrw#jB{K?>^Ba?;XA(D)@ z-Je>Ny$A_MlJ!yROT?=7rT|pQQp-eAL9iOO?@BYa#ICtCop6b2K*7>+Q5(nZczqJbAa;ID+whTaNGixPh^dby!9tk=pwUeuTokZ}P=@F*;w9Tb|C2mby?e zZ1nIAN!SS|XkrGn1qzA?*#b>=A=sV6nAVJ-3~Vg)r5HIrtf*+9T4X->l_{29<5jck zlrqVNOVArD0kt(3Q|_ccs@x(@y9?VQ-H>1mKS zDD7sY6zIV4AD^bFIZ9bKvMN%LHA(_dk`!OPc!C)SE+s-o8HOeXaIe>w$DvgO?&*%G zF)E^sb$`2NuQD@IvKqT@sRkyAp%=e~;tuV3mE;_kg*a*Yr|g=|D5}^S3e;1C^N>$E9k_6G5G?+oNpDojys>$hYBg(ofOHbJ|ehY?!co1uzX`3 z{7pLWTnDmR@@yt=huvg|5E43(LHP866xh8FJL4t<%oFV4H<`T(w*Xq;?bqjX+?I}Db14mS&bH(0Vw6JT<%Kvw zzC?V2?Np=_oS?I}E-^^gjE1ezh&z0raY=cZF=4lKMi8tm) za|N;ST?=O`3U0|di^`v;(r<7=0*zoD=5{U$b3(n5HW)Hr_3>k89Ab1zy7n@5wjB%+wb7$DgZZXAeFMC&0fD||? zS@0E2v{F`)Bt~UC30Py~DWN+uT_xzwdbgU9WojdZ*{62Wt!7c_FUm@CvU{Klo$cedn`wg^gnmijFYAhhAX?W3S;et;@Pb8l zk2_4q*rNxF0NE_|voyj9+hp||4MFllQIfK`)4U?-6jfkp455uX4Vz@FjlJCa!2q? zkPRI7M8s!y@*z2Ogoq3EY1kZePSH%l$YuPv(btP zllXuyjCUgPSUxCe(7^|KS34inX>Q{Ky&cnQKK~V@#_%7{rozjgOHrm5K0*ZkZ7Aiy zT?UyBn>)b@5i{ZERD0Bg(1p#m2ujuu20ldPvR-d^#f*R`UT%BIoo1gb8c&`$Nu7%I zerx)bwhG5r)=<`@=(kWkU9pc9VCUgXfNCSz0-C38{qPxth?XM6KMz$Ks4gmIMf|27 zL_P~wpC9*2-hxP@de&sc`F6>;5=|czU1kfO!cygvIq#}6z<+pPEY8H?BF_u zuZKilSg(riI8Sk#E!<@W^-DA6x~%Zzne~GrKptgxzsu|nU0r&Y$~*VpW!iV7W6s`z z0#dR^hxv6r(t6`yt~hYCkYR+Y&Q&wERCBEo*?E7R#YfMwxgmiw3%l*_%&ckZkrGxa z8A=;D5BcI!--wKQwFe-UFlTxAWcdUXi$#9-!smw43AI`2wZChQ$juKI{0-6y5 zRi49@sLxBi44(V-aGqPL&kg*&`GUXl6}#8(&6v{KdQpn0aUgVh(gj|4D%zYd11;3c zMIPK^039j%Tq%9BcPxF!TPR9{N2RG%at~+E)qKi!c!hk&GP2yYbr4xholYIq3OAaI zo)cIs_d0#%k-i)G?o8Wpx0%|e!vO@{hQoI^94_(&j_TiSMsE%=rLcYl5zNbPpqvQP zl^3Mx`=VD96nN8C-@H~A9*Nx zM99($?-bX6UA9?~sBer!a*(-i-kyGsX^)6dmBng%`#okD$o02-6uIi|HQVI={8RSr zQ2weqJlLLfuNmBS{*pkk8jcR8w1e%+s`UI$b%89xL}A;xwERlkQk3-YsVi8CkE4~r z_^Z5Ut$Z?bY(~05Z^$RLb6=59Fz#9TWR+iZ(_AB%_N-z|`VZ!S!4d!L4~M5_JVeMI z<~9|3!XL~Ljl~8XX*OaP_FsQ69sPw7fKP(etu*H&mAlQiTi%DyvA^trLO!{JLzy){ z=8BnMx@;jp5VEd@r5)ugVv$bCFL05hiB;Yjln>IOLb*2yn4Eo8O{6N3@TOb+`u>sV zS5iHR{e$79ov~E5D6yMz4`_EF6S7AOKl=x~UH2KSyAlYKMcuC!zSzE#fI@k@JiK|l zxfeL+!&Xt5RANd(QsG`g+>wcG2>}P%jhJ(t^i&m|j2eHduK?sdlZq%d7|y8EB3xBB zdarxM+Dc@H@iJAl! z)qJqe1(?U4=Esx>iVOs8#<>N8aFJ}xz!@@~Z?C)`WBx4r!u{sUrh!;C*Rh@dfT?NJ zPN~Eqol?8b9`gWg8|MA`F`P>x?wEFAbXp=^g%N)ja|=% z51L{2uMe6=ufKiuL9@%g%<*L9o+$>WDZCM3)juzD)>sK{;A@Kx?eoR?+Nd)hdt}uV z=N#eOyEi%wICrMs{0(H84TjYA%1tOinzA)W`VN_6C#b{%#F!__SPCm8Cyvg!+4K`z zy6RU4%W5tlG^p8*dB_aiYvuch0{^8VTK$2(Jp_80Hu}h+q)hzTcdeZg)g$eATTyJ#D+p6!0fKofkY0S2zWxNqkWJ_8!We88&NEy#|1g`5_ls-!sjC`ydbbLP*HQGHnwykDT%YD>I;_|MoE2Cg8A6l| z#*XorYJFJ&4N!YhV+d(1s*SD=zir0yEXF?P3mdJL+Yv|KT2_EH*c_?oh<{fN!YD-@ zsBGS!k)8iG9;_1{GgIuho;UTSvC;>& z^KJ}0a12}mnq*0pUkVc!e#z*#Rf$gEOB|iRrHf9WZ5*AzJve3*oxm3touCaQI$?T( zfhNNfD)B3RYNO#R8l7;;VTgiy7Oo#%w(ZDQZ$a!Vw5hls#d*tirKtOrazuj_+~D-$^6@sJ}tw1;-_TXfF2$ zu!4x%!-e-bRZ-Sxg1=N2qtRCZyFEs0KRYUWH5wkxd5)8GE4+t6vd)1s-*cpmXm^QE3&VIto zRMhgu+7q5P+f;||d?*{zEPLIPSdHI)!Yq=Xcd&nY!c?(v+@04b>P$hTO3)s8#!h?Q z^ta#d$PTtMo-(6biKpHL)+s--0)T{&=R-RQ6^go@HyBpr7f4hV*)i!ZCO_d!g)btK zOc1(tuqh6vn<8Sd6SJ7%R*^``Kmu9jMV*)x*fLOI70yCupJM%&_re0i%mvi!!l#K- z&e}7cHpA`ctG%j@ej*R~-K8$+en*fa8XdB`1Frr1)40mBBD4(W1~| zm*J0JkjD!xz($!w|(Fw7L{2B_*BiREd3Q?)pzg83~8-)MhiAM%ug|679NXh z($0Uuw8%t`d%+By2u{MxV*Cc6xvj$6b%+N${N+6!Nb5N)b@Q(7v~Z~Y_NeE~46nND z*UuT>bEq=d{`q-C!^*z1#S11sNH#-WBPy*^?Nr9^F_!$E;(jhRDVehEcNWp%ctXjZ z0iq#_=^OtWOP&h^-;ae|YTr0yAF-P3)IUtcw zjYu!|#12U~P;GeS-@!aQ7ZS=|8!mq>`UdT$abytHTN_?d<63YJTbsMr^*7hBJ{KD9 zHNgfDc|771ST&4i>`IN{7OW#ki`8ZqtcUfQy}6ro7I|;3ebEdW{;1d|^EKoBN7HU_ zEck{Rzxg5|vW&h#82)+Zb(tTu5doPq-wDLChEVGffRlB!=7a+``Rg!Sw}zO18~Auja0$CngkX!7dEa@7FUF)|%B5#Gf zIa*9`;*(F^dpGb-p;&#Rk2ev|4~ro2=Au%FHL|Xlme>uEAqC%M53~P%$utbih9s-0 zS5d7_#N$ZiUSv0WnaHYY``wq#=6$Ne(PI1%=I0n_gT4M`)3;4UltYoQ>!q$zk~bA8 zK90zn+kCKn_pfGFOeUjK?|^$xZVzJi#? z0tpmkeMJ0{m&4)sCYz)eJA@^$NOS-(JQUZ@059p?lNsP;*Kp&;d547D32vmrI7JYz zq<;mUKU_Q3Zq=j0O6fUbrtD6CGbnH)W$RuwZT|VU*m18K3Kn>Za~oRw*y}FaIsbM- z=Toy#O*lyIp!`hm*9kvl41;Fj>w@+__F@MYfU66UC4qShVO>a&3|7cJ6lbM)QGJ?6i93=i&Kr3GR=D0H{nE~Z z+5HiF+H2;d{OVKHSjHNQHu5lBSad{!ZG@qFVZH5m9gZBX@3{=ri&OBJA8MPRI>G|b z-$1YiKa`!Apf=6)G3A0y;ot?uRM>Y{Q9bghMd3+{$1c>Ml+X{aKF@6+(3~K6N~pV) z555iD(Arhmn_f4qW~Dr4|N6Sws)O(s5eFF;0?b?rJ%!IYL$kQzgkeZ=030VoNIhgH zzG2#j@q72Uh_X*m7UVDXgg49=%4dQSzj@)Z_w9pkn9aOb>~3$G!iL+Nv(B}7XA^Cf zM*XbYM4QuGKmOwL?Cx)x{J_|~)onn}-Qn3kyJbTAmW@y>rDSg>j z--2wGoo5^0HX~=QJl6+NPF0y-ma$%{iMz_e(8>qfvL>rxDulCO8j?VUP>f)}cr(ol zihf@zq;2VK(^m3WboG}@sF89Fp<$Jg@^!*GAR!#H&>3jqiS+<1s>BC@o=KDw91hCC zK@Q(C>NJ-QFmus~sMx|xJTg$%k<>AP?Toi<#mXhESUHIp&&jV&C(}!(lhsJLU($+| z+c|CKS`x`5tZY%m=koX{c@*o6 zwCp}UsrZcTnFjIrXwYMPwUr~4J%`t};qlcbjc!$TpLfm9<-pKe-sSM&6?X7@Xq5Nb zJ>D~4@)vvd7w?%#^7+Dh<|o7BkW?(goRz?YNJwg96p~smvx?o~yjL8>|9Tk4#g!apH*Wh#(UD(n;f;J#G&{f>(BqxsdRQP(=)PJ!!q@?Wpn8iD_>->*R;FY<{AmJ`o{M$TEgX2Ci`*Y$~UK&u2r(6l?a>V%tW3&%~hK@V<9Tupqgzb7}{Ff*-7GE*qA zT9dHaMb(*8N@AsA4?7YT(g6SALk*{uxilo_(jaqbsI0tR#w!owavPUh`39MaHi)M} zgC0|982_KnrGdHF6*ZX-NcgWcnG?Lr?3ZdYL%nD0F}0ZkWsi8OHZxT|2iIi|cDtL2 za<0l=5Bf$&4*B911S5L9yU{Y91oyxeIcvxk!WTCQZO~&9$wP-dJW9hiydcS39m+;+ zdp5K6zQ}RwDfa1H=8M5e80KwZpPF&rSM4E9 znea2u1pT2Y)4JQORM!+Hqgcvb$I2!OMn%Wi_}zgeElu6p(l!PQ_aZ~FoqLJK(zV3Ch=L4EL&)&qYw! zXtw6I-9=nX0-=l>4hVu9c9U5odj$kN6}zrqCO=3$Q%JUeq^zehU_Wn*{WDX&lkEKd znW3d~e1sZ3z@CK5f5*V+FDC}I3Y<6EU#lyi^5}XQv-LRTzyX|<4a!^4T_dQU4gWJiXgi4SGZoU z+zyH35=ek`KQ>-k69G)hJpiR z-x-uiRB}qD`svkZ#EabZ;-Jg}UgP_1ep4weXQ~#Xs?^)nEt&pi)g4}Lk$tiyGry7( zWo#lRN>!YuW=xzDWh}e}$uBm{4d|AoW?+6mzG_8rzy`C_3?fTSScN5aP=3Ji`GGyE zlcU4ne~Nb)SE`%FqIOAol$r|1mhY@;XA!xloF1hruGB6!dsb?fd-NVxFm>rsr6fU44O+3h6;!Cfk(R;)1Y3-+^6{12Xm>3Jx({?IVdB!B9QGU-mPn{JZerle z3j?V9mlqFXKQuNp^_k*tCQZfS>XKT31a-Y!hekc87pfN+p+ojg5r2z>!^j8T#e8YW9Ny#C(^@4IeBp!M!>em|(iVQKZz; zMtmNOa#*`x&)r1aGmDwmwZGZf)ss+{#D*d z6)}%q4H1;&7iAX2aVbk=TIwMeE~SPpj8@nWA)YE1oDdY9>09__mZvI%{txFaQ!kbG zq)Ipc&D_JjpfTD51Kx>R)IxW)m(wm`fJs zQc{T^rF-Xp#a(>iGm>9K>mxJe3R43b`dSQ4n31q5Nx3616lx9+Pci%42$l*>E-y-y z>_voT5{XV<%06V*BE`JKCaXf{6>_0hXx8ZMQN-XgE57DA=F2TEQN-XSFpR2eDH5it zwJQSLTES7!~9rh7Y_sSjivD1cS`j>ii;5Y&1s72whZ--}P7b;gE z981QnTtQ-N;R!8ZUPG>fIPnT&%X<=5U94l~67wKjrcjlhjy6e@wEmR1q5)V5f2d}H z$_z0o$gz<0LP)f_6DKUwAV4Tzw}4*dMF0Q`Nu(rKb8+=*M9F}Qf4(Eo3>!2_a6Q@3 z8zi{9%(NOR+e{C>S=xw6OEiN>n8YL!>XzaWgTk^Z_mOqL$yXhw55+C8I;DShY6+R< zu?tCDiZeOi*r|&hT3>E>+pUI72AIV6RL6HEv zsqnT;NU$f)75II=uN#q$QX7}IkVLS9#rRs z=c{EgIUJkG*RiuT!E+nA+t_J%#OtgpqKB@)8eeW*tebJ|qqkji)q_v2d_%Wi9t>;1 zlnGz)pGr0iuYK#37xeAGCLymS7qC|e9#ym3jMMa^8Y){fS3+w!Fe_DP6mqDF$RYY# zZ;vl#TKd+9A5%>Ygdf;c#WqL^r+Rx$F@y8YK2XG>(`a8VW~MYZ=J7L$c##T+$)P5| z(P$@ZmKie%T3-!9=HwOiV#E;da9DLT4k7TEC6Uc3{KGS;+`oLvkP+n|Ax*j0?8Td9 zhU{_GyLw;f2cwSM$IvARhh5Kc060x1{C@QmFUKcxLcMgbut1x-f-IbvXUK-J%9r3N z24B~f*`u`&KB6`nq68LjH}sjD$_ptIb{4L+$F^m*i!0}0Wg(bPw^p&vcqDtW?>7f2~ux0(ppsTL^utPcc`_g{5)Cd(24Xb1P=l{@{4g zl3V4^z|Iw=t4tmUHZ^6`fzwfB1@pO(%7x$9JhQpi$DX-)rnR|wa!O!ZH#tQ}WgdwJ zu4QlC93`hB>wC$nK2G;2lix;_luhX<5syglnq)R4r?Pc8$u_?+^LZjAbT+W3Y>_!N z+ecVLK&=xFncIQGGb2j15{oZu>yyoWVwz>sMW!4Q+lxd?f>To^4H;!AMI4e?N|4~i z6c7c9)lD@b(48*AT)w&Qa2lTLWN{O5H^d#qEfMpuoZ|`2AEc)hBw&Ot=tl;lA1Uz&LyPVH zc-?KK8~w_iN5#!0$IewYq1N-_e}g_keKNw%!y<}>_(Z5dSFz(pWcrn|BtDQ4Dk6xi zqA28;Rw{Q_CP5OL@Yo0kSzr54I&3QYV>h|^3%zkn)l_zIoH0NbNY>j=Mr5`dA5{dX z4R5-{p>Fu#YtkU>r!qusZVXr_8-`fX_zNtS+atEjkRkF@d-j%@k(-^LJ_28DXOXi< zor0mnyQDj%2zz)@x)Z@CT>P4SddtkNWxs%?r<^b{vv20TA#nAd+Y3f!cED`@#K=q` z>a}f40u|+5pV2w0*=u&^jzs5rX7GxROqX}6-EUN8>$)=uN@g8-(T?^fqu}l_qYJYM zalIxM*Xv?S0BS^1RFZpWm795|?iWLAAzappCB(tMJIGUpZ z@+ho7uu&@pt>l*v$CG6(})+=6R2dRJXp?6^_gNIjAOoCCAimea*H`$b6@aC~%eX z^7L-{-A*?M3n@Z86$0*EfAiUjP{$dh@U^lSu6Bv`&(mR#{_J;u-juJbPwxiRvyX=- zX69BeK1E`~Q}sW(E#2>`?IvZsDRBzjYRo>khDW9RaJ^ed{3mJxl(5{2D25a5cfOF> z$-B<}?hBcH24DSjDhzTz^Xl15^F9p5$(O{$sFi0 zuoI?ce#l35+sqs(+wsM1ahsfFPue!KqkMgE+sroZ*A_c$y9|kSPqDjgr%k@MUFLfO zVp!>-P9~!dyH`4QmaU)W+D@I8*~9=l!v3VSh}B!qx=0 z(i+X>c4*mRIijh-Tg32+w1S`J-)eE+pA!$t{PnQ{vQM;Krgwv3(bfKinrzA?6yn>L zigwTGnE~$jWWIp^c~ygFR*R&FdmWzxmMLbZ!rlMxw68Nfqcu|^NZIq62vZq|rXyr74-rb;MJyN~5S zVz}k}U;Cj%z=I=cWG;T;z1*DY&J+uNfJAbhULKmGf)+9_DB@37z?ZwwgF#0qGT2*Z zWCs8L8-l|=1A=zZ_L(g?MfU$G6dhiY72^MH6_weGs4V^|A!#l+O{z|E$Q}DFk*=cM zyQSi!mU`hhL+iZE+<*-Klghj$sre^s9@8Oxt>&dn(oRnk{>o1s{J1f&%a#iA^>1EZRCW;_9W+McxzR5HBS&99%EbG*yJ})|qQ7HB3q7 z%UXDr)WYB9$+u0Ar=xlUJs&$9+i^4 zJjoFjKY-thZuM6-&(s+2N0gYyz{GY*7dW(tt2}0QX2@PX22*JZWc03@wXg@B9OQmU zxw_oBFlF&vi)m{QdDIC39kLwl1y%=j%k@}?z9p!awlB}lY&qhzlf+zhqAG6K)Md!- zKe1T6=(}Bk%a85kIm84IlrSoFE)i_Au{AgS5RB5X0$vn z!?;p>NQ^xhp`!OOTu=J?ktfqdyWt2015D$UeJHh{Sl5=40etK;+CU_ck9`>yna{*r zAtOT&p*?pIBdVf|7vdg_iH2cKb*FQ{4or>`dV#I?O)+7LDV76&z>{18Qfu&I@jt|u zbZbO(p=;hmVnmL$%d7ZSLgUv&reeV01Ty26)0t!q6YiFBM?@f;PvR3C zFRhKBp`f*V$<9Op#x^ND&XnbSP22@-V=7g?UFpKD-qGIIzpSqo97~EO+`M&r0 zz3Vc4L){9ePMve=q*^4SW`u;qNU|(G6S+u+w9>JF3Fe7E3is%fZCMr`c{eiYUU`nI z5`XzWx)9QG5VK304E!cX?1utKYoJYKgC0O@o2d$w2k;Uz2H$ep-e@a+*lU5MJk95W zg-zLL-}rpjT6x3xU6dwFkA##kE%DnWpN=b*4Et%$>KJ~Sip1~Eep@)Tq7R}x1lG=_ zutQKx&eO1?lo_{!LGK{58@}@u(?sXxZ8$s`T>@o|eLtApJQl5i;oSgm^VN$|sN*FY z_wEGcf+@;^ThK)0Fi1&M>XR;n{|RdOq5U=ZC?ZZS^aE8=P#)a812y3$*k9(aUSgy{ z2FL@GFSFp}`$J3{#;XR}w&j zUKYO1@I(-w%rbVJaup&qiAJ4JGg-n~EHb<8?$tH022scq#f-u*G=noOhpg%-`-6i98gL}g|ZQ-y^$hBxPc`4cwhG%KH>_$sv z+u1cj$4Tzo#&aFV8R|qJEJSVc&&dk}lz@F~~|n2(-{LrXw?%rFIu@-C$Nm87S$Gq9M2k zfI3z(YVoB&P6kiMsPSi6NCGkN2saKZqNQ>&nk_(sp%x*@wksp4abclT(lj$5Cr!kE zM20MV&%xtW>VGjR`)^Pc2(ds=im_jl7a6bQ94vX1-)(b~1tpguD5)UaZI{`OXJNT; zAGhY<|3O%WT@KX;VlsX^J$a009Mkg`MH)8;@nYS}r&t26Iu zmOE>4Q%9S{d~YMuRr7=WLeo{j;Z`}*6%;;a zx{78^SMspA=c+9j8m@d>P<+d5L0{4Uz;80{tJZrpYPLVf`ymGe&@C@RwMx1vbY5sW8++~hPd zu15czakX<34DI4~_M^8YJGY3TzF?^DcRs`KvJr+x3yrI?jTel>Gbjgv--n@Wt+K{d zdu1_Hkh9RZ>Oq1~Hyd4~;U%G6(cZyT`kriN&MB}fe&p+PV%mH?{pOA%}2khQH z0n^a)ruam!=OOR~Ng22+-XJ36#3fCw&0Q-)DInkl17erU5HrK_H+7zzJ!Wk7iQZIa zq^UT`TjBhW{_rGk-{_bemK5@YR-HQ5#2{(+9S0+IS<+h-{~vXRN2L_#Xy0>K>sb_&v;o^vpm^F*lGo7r@ zz$~~%q0<2Amm40B<2m?#6x&1ZPWo${^xE}epT{A};?d>w__{brl&mJ!UlEnGFt+r8oPC_7&O zk2=r#_r&D^%TP9FvC{Yx_Cm*>FjeP(JWrUt&hchCtIXTyfIQ!r$&oas$UoFY=$X%KUKx%9S? zISyMQ#4*Hd$5QxD%)2wa;XR3IM#oZ%mC#xnq5gIsa(Xf*8zw|j>p2xnebwwSi``JB zI7|6O^VeD4-W+fB{4B4hbFEoF%R8v^Lt)*I7uf)DvH0Sp*Jr$J7$Wh9%!JwALC$&R zx!GP<=M(ewY;R_Hu6>lwFPif&@akOJy5RyZ(WI@HFQBbwOt%ZYfmP2qqU&eCexvkV z$Dc9dFZ8x`CYl>A^mhHXPB0~NyptTTb`GJCubRu|c)j^~e2zDOpYQl-`vIF0pfJVC zouT+UC2EGu^-kx+uilH?4h4rX=EO`Z&1S_+AisTf_@cx)crHs-L&KB*ASt#(+-N=~u?DYLs!nrQX*qtizFk8Bsk+Gl~+q>F{XYgHGU zux(VW?4ww5)*vRZm=#S3MhiC1vg>ZydC*oF3S7B7HY|q2m$vkOW;pnY! z$0nMB1RgsWh--Gy1BMKoKh5CzI_&fo-WI>z9b2B%Rxe!>zuc>@Ut@bdOYCG!YJ8+!xz<(| zPni*yd!7H6LEgE->yTQQRe&uI(<`P29LRGNqfi^Lv9Q+KkI z4mLBc_m0TDsg+bRyy=v#zQH@tan3O(-spY7S-A(_?XImeOK$Q`<@n9s zH+$z69)ueu?aQ*8y`OOce()C58I#N&w|Zwd%gnR4vRl8{l-|Z>{RWe|4cc{M`j*?U zwzRzos*Hrdk|t3F2`Ax#mn`5AOYbn}CbQ%1-Vx5t=Gxo6KeN}bzr(9`+$(=Fn=kVE zxOabQ4qN2)XqV0MRYupXE2+2&ykxFiHNoqvLr!E;m^{E|>pKCB8}S-LyxW=#b^!$KOpn zQbtXm@lp#rl<`u_b*NbM-PsNikrH~T@r(tR@lxX^Yb>TfGdHfneQdJ@xQVl??MAlW zJ*d+UHV5D1ZP?=0Xn8bn*a%{0VH0P)Kb`okY-!~TczGiv4}uq$S9oXKYG$W#n?Kkr zOMCsw3o5q_d_j(;G|IX=z@}&@!IF#q_=C*s;&fjXDz1Qo}Yl9H>Fnecs0;xBcNh@63`FMd8LI{)(A;KdD*zneXq1NEoxt z1K!!3CjQ_9Xs!-VU$hk6xN~v(i3d?F@v9#8?v^umA6(`=N>x)I@!kl3HcOxR4{t{) z^3bDb=g5Ki?Bm{D&WUEq6W%1Ae*1(s)uHI*<+Q><*vnD)oM=`p_mcMLUXCvUU2~a~ z+dk#(nYuXK@8NtRX0l9bpR8|^#RQLFV4J20D1(}r)IQvVs7XYgWZk1;6cAXva@l<- z0WxH=`*^{o%o1^Pl!Qg$pR+XENu7Tq~0~kDIWUHUKKSL&do? z#8+O^Mai6J#y;IF^;9lb9(u867}~O?#iq)8?P>1~NddR`8G=nSR1&q?IrFV!+w}S7 zy{0dwhcC{ZZ_1x-^2NE~iy8CHkftwYgfGsUZ;s=|@%c8+3tyZ+AD2L!x2(%c9YXMX znB^Xi*qnx0x=oKLCVH`%VQDX4n$x$~Y8I5Fh)r`3)m{6nw{3^@xY)?jSSq2bSYAZM zhSYZ5RI~GQ-mjqDPS1NkI$xOWUm(WdRx|bmZyyexUh)DseX(hL(YwPPR%%|lsHm+O z@RIi`N3(k`d-GzmYY6td>Sgc1PV*c&_lu>MEU`j72Ge%nm7Fh;Y;USw@eXgwY*Mdy ze;qXsnH00J@~h&f*!3Ai?9F*jshm&4dKFu28;;B752^c>BD>N1YO&`rx_$VORGpkv zo!(`IcZKV`XjZ=F4I23*&YZ&%VO9po=7Hlwm|>d5QV}MB6kZ^NqCIOM7KRSe9Pz5S zM$rp?tN&f>i{IRcl zgpF)4cfKz1BCE|WuNSa&;-xp3{oe52%1v68JYmv0nFHS>x7;MN@J+AYS!y19lOU8E z&2Ddbz3PbyF2RSuf=LB>e4D5faoE}m$jscg5WXk=Uj@_sn+qisZ_U!bE8j;$xH4V&f%lQan*RPnZ*MwI{C$YTWpunO?D(M{ z*^ZC-7|X*n^S6(^JL~Qa(^a57$_zxT>taE=+MM(Wd~1RE@Dp#dT<=J(vmssmDZR^# zqN|zA5CpRrN4argpX0zRS%;Nt?fwC2S9xwyTSfO}{AY*dD8G$3}eaji>9; zY}ZA6h=nDVf1WL|nfYjq*D(Wl_Pc&1fG_{To9^Cmp_%`MH*mYWj7B>li%~mGbq>VN zfhC`3EII4Wj$_W2&H{Ig*wRF3Q1O$}MPD*S#=Wv=XJ&91Kc@Y^yvwlAEdCdA#slW1 ze|a;yEC{z4QkTsLf?BnYbUHpd%*yxSHf4t;e8p~CdDX3Sb-?ep$8 zbJu#Kav+vniTPx$w|DM|1?H|_c|A)mh55@6*kGLY6%Obyv&+BoI_{EXG;W@mIpPjr&4o7LTsIjazyN%#oj>*ZpcbmS;@i}={HomMj$4=cK z$Lh?KuM4=Qo9Alg_OHG6HThl?FtIoIq#I1kx)j62n5g&%o{R!9F-(#o#s%`MnhxK1 zhn0WIks7eO?Szg`H|KnVapVj0=r`U}Ik`i|ZYKdbag^D2oj2H-Zf39ZI_)==Ls6sT zWQEIQ^#s_K*?S+wSL}znMoO7t$GYC{G$8&6$3V)CT=*DxB6XwI;?j)|<^y|46PJAJ zoshae=0-^jX4@6@OoO||eipp@jA&1K%k1G_Ki6@G+W&|>;rr-LpGM-ngz0A$3;|Jv zdE=j(HU52K)B8wvpHD@mLoUqb4h!8bd{H80{Vv=V{4UJHM_06$ocz`Xz(AVV-pZ{; zgonB9SkBgmy(Q;mAwl*MEG$Ntjl3-68APP14O?H3G1dz)3%W+e&!cRA`UnB!EE@>8-ewA#P{A7 zcHar6*nOw<0?Y3^(LJv-mwoTem&}p_)=L27S>~|ySWlLlx7T}{lPa*X|kQqu;vpfho za-fue55Gm+`uTY=EGYiNDC1?OStNp5^}%JcWL5SL{zeq8%=2T9m;paYjQ&5&K0kTg zoi*vd{N(NFV0L`^XRouiX2)3k7_;_g!tXCKH~r$(cg^G%AXC3oP3XU*@r?wM7a&aK zTO99iKK%t!FxMo0^&W%|zV|CyoM+5_8@&CKna^Xvw|9ZD;CHS9o1P%X$1iLk`R;u& z^X&#qu+!#GRh#dVb~0%RIlsUzd_I-MEn7OB$y*_jkUWu;bl@Qu!vRMWmvMm&o@HV> zjLHP@wl*0xZ$DDjdALw8`x&^;NwwB#(~=Kc%vQqG%7O?@D|~1T5tc@>Y#zp~iK6ot ztH0%kcGvlv8rrFj8tGh@UgoGjIPRQ>O?6bQbe=WqqUuoRE3;2b?e0!_z+4+sJpkL& zG4-+YLV9tL>gG7Z%|AW09kNP|QpeT2>_Fs5bWisC1kAzF>zE382xfTZ|iwmzX2 z*-v@gA0}^cKW=-b=vg3&HtC&p_v3k}lw^6De`+;`Je>oI)!oif=Hp`3v(qTFn^Xu= z3Zt3W!>LlY8&y=FB!~mk!H6m-UFpXuwst;+9fu>F1_zg{s{) zc+9>Zj@ss49@|C3BYQ#Di!$%!dme}1OF^pV`w`i0+T$_lsFcfe^MVSsL#CUl<~Ql*Mr=XKMwM(tSgK3Z1LCKi9sOsrA+rXQ|VD`LU-3NBB$*nsg#w`&Au z`r-pp6)20mvJCRnz{Tv@q_^nGg-uoBXHu28HeSZ4w(79GU}<*UCnI9!jz)re<$>6_ zxrU3&bzH7*3a>TS99@)Qy&_t;!O8`)Sx1}d#@{qu+H?3EwTcS`XlE<5*W{^@3hgy| z6RFT%YdQM}+(#fyQVD*~WR$tzRJK#~?u`3Qe}22(`#{)BX=Z77ZFw~dfxWkUvFrhJ zQaiOx>cb}Eq4>pNaYqRMGuP{~W9E8IcFafsC8cr;gu^jU zxtcM@1L5W7uDsvOs8z|-dJ8({S596600Tto90)r4 zf_|)b9Y5caC|D{FocLRShsUwPTZ)vH9#-&CJpQ&7I&1jNiyeh3@Qea46PWv3Nw!Rv z&Z@p;9et~$gC;t9dd{f@EX=Hc3){=fLYuBH#k|{i0ytdr3Tu8(g}+fBd7(DyptLW# zgiZJGH!7@ep~C;LKIeXOUl-LU@2}OuT!#Mizd4ng`D%0LQ1eG0)_%6R(N~9YrxNN+ zcgnfu+=S}R?d=J5ojYZQ**B?rL=P>GnMDbeNMD^)Kf3NiADSz=ss5Osp6RB#MdkkM z1~mlRd%vFQc)7i@r#k!Jx;X973#NKNdR;Fy){XVUU(9r_jSn%Gr7Qe@`|Znp)gE~; z6uJen$nsvPn@aa)-2xBor}{c?rDye154-FbMsKc;c0NeowYg&9?P)&ULLKkynf~LJ z>MqB5EnU2o`iFx%*t1)!pJB^S4N?~}{sRW9p82CH>_Iq*nelpa%QmW)cgyyuPA*Kp zxsB@TlJ%vL!EOL(XGW@lulsb^MtraSEguv)5=fCckih9|`(+wAwR|$c0p; zRW{7RpmD_N8ZlY35s|D#u`qHqC&?6Qb(+?_DGvkd&Gy3XYI1&%g{!qyP61Z=GHnmF zOMZ}rbu{hBCL9ZzxX!dRq37g zQ+vA31~YGr8j$+pHhk9On~O1*Bi14LWk4+zoP*{8HB%X>(&D=&3S{;|q-qsD6wHB7 zm7*{}qk1v=59}MR8G3*^Haar6*W7vliknN#2WNVRqTJaj<@Mgrc0t+~XAIO7gRR6p zI6r}ftEW|din4mrkEHO8Pb^;-N!a9&@7fEbnJ50{B-n%z(kV_#KbY;8S9EokU2P7W z>iK5wfocmhBaa=3Omlhyn1mg^@#C;w*NoS=3=3*Tj;O1sk@Ft1NkQ?Qd9aEi*8_>$IgI26LFQ=)C0EA5P$q zRkwIu`tCE;_D;#))(h+4@Wd<4&neZdszcSS@|=ekPF0*K zdX{-=s`{#G@z0#e_%n)NLg93f-j<9#D;HOG3JQgl!jZIUn`pf=d!4P0DY=fSGiNkj zaWEZIn65St zZIFb}7drVBiDwc1COLbFT!x-Sl+1b-@eI>Rk+{$Ke~mS@^A&RQR{6--jqnH4)xgw4 zA4WJIUMyC9>o7jML;Ys{h?2$#D;CXTn8~Cu%5{}2+xf1BX^g_MbTyO4hyvLJgA{1y z1f^32RHjvPQ;^0;v?xX5MOk2F$Kfomglt8HEJ7O<+;IlFuOrg?&rth0&JpJJ^VDXW zom1+x5nIAC&NT8!Jtw<*9Hsf;1XlT(;+SvFgr zpRe}E7Wu;YYOV8Uvuvh%$N6)5!7QbnN{N`n&?n)N_=*(~TbQ1$hB-^pzs^=WIu)a! z4k*YeC2kUP%;*a-DUCMcE>zQT4q9`edM9fAOp9d-@_wdo%~L&EdR}v}dJ_kje_gCT zPUXJzeJsZPv8TWs0%oLG`*Wqo_MtGeW|)GbWB#Hl9B1Bi};7<5rCV}wrBmu zLtLe-#Z|Q0yv`#4Hz5Mp0w4fh@j2O~Fh^4p%&p&4FuG0BH1{%f9{ullx$4uxVABU& zuC8^Q+2-df_+6R4`brfz&VA`sSE(ai=N7Z;LL}1r%xMeN5!}7CP~C@T|NLvzD#}j2 zR&8)_?Vo&|>c!8s*Qt~Esk)vomYH3zS6k`Z#Lp=f|Ja;$J##GWRZnxrjcP!6eL(oLnK|Sp)u#P9j<2V2{*4gAJ~r`^P_}c-SvRTv?an1V z6EDT`GteTEG=>;^lNv!K@tf84`^~_n1lBVt_WWOJvHk;4!O*pV2YE9rH{n#FaLle% zN@k~uXBmsEdGT*fV2h*oznEL+gQrgZQ3b+Oy6 zYNrsr*-FJ5u(O5z$v9ka69No(hCINmzeQM-?ufeuJ1gFYs7*ye+X};Q3b)7`6QY*l ziL7|{%dP094^RJioBE3jZ~oIAY6*m+*CI86pDP!sF=aR_iLY)Iis@1JEXKg^JYq)O zsk%5O-FT;Ja8k^DOjrtDw%MVmV5+kxjvJ^vc*X!?G5~V+i6wn^aY4gf-LH+GlvD@} z6v;TF$Fi%RM=exqTgY-MOl~-ON0I#UO_;H>zP$^3O^n@j9ksHn!>8|1p zehpr8nP}%cO@bh2X%d%VuP83PD*S-KXE+n3!r8N>?zN?404-Ceo*PeM3y$(aozhRG zMYTNH^tex*>5NX_a3B2Nk|{Jzg|xc(0rhAYbAXD3W(Gu@f+Yc5xI^_CQUg$K6vU`gwL>OwYm8b%tRwh{2!{Tx^}ft zfiY&tKajf*F(?0nCG?BA>>p~UfzNRyjkp}TWT?YlJH-ueB@71Y+|@2IE~YUb&};FX zo93E|N7X*X4@sa0pB!PvKMD()W!gNZ_N$vl8A*)B52A#W77gUk@m(Wk{Nt);|K^$a zgnklKO^B&j*PWdj;=MALf&#P5qmQeg{VXc6X64hZ9G4O~j{JM3;}bBjS!UQ1YJf>S zhELCObNypb2{I5orVj4%)oip^Vx;eFo#99=BI)d;J>-q}ax?UC)yJIrgjy-m?U*Ok z0Qo)tNqmA{Nk93d8tjx1;U+DY6NXd#l-f!Bb~0qAD2ugTupt83AsLe-|C1yQS<+MN z7YXSRDkLu%16if~;=e&+EUsSX9iELW@bNeR~iAKCToTE7-D$P~6=%Y`f4 zmScry%8~gnCxH}_q>a^wEzxO9lSVzQj&ruT1WafYQBckjyd>5rJ{zT<^>?enqhwc- zw76U(M=8>fthV{Kd=I=S z1;IfH%5pvfb$T6>P}+Ty;i^1M1RTJ2Yv3D2wcT_3wjwnA*vCis}Cj!(G3oYgV3eqyuA zMLC_ZLUlGzKd*jaxh{VJPL}g|ZZBTYFTSK!lw5Bs8bC$n_Lo)XqH6kFWnOw&bu;}B zaMWhRQpjrJ)IES3yf2auSv*eR!S@JpM6;%@y3Z{hwbYrw=f%01did@>kRIE_L8aN>^{sQ>e1Xf-UZ6q&k zbC6v%cp3*&GPN8i3l3C;lK(V`8L~+t}kQ=rC)vxjYB=9>*lO z6vu%3)n<#=aXP3rN4>7Dvetb!-msg*-# z^C58*wzCVuQ-ayegyQIekT_eW*+#T5CsyuYL?7_@x7)g-<|cwf%S7SVW+j6hW_DdkG?)+syCKXIgm?CEx|mB=s`2bE zO>~tyxNs~?Qme-jmi>*f6eYsjKz*#0-ve?eg$WIR@oIC@oQk!PP*;; zcv?8s>BbM#Jr41tiI3DvOz$@z;eo;?I`N6>$As?niF)Dx2jQtz!l)%l_kRk{9%jD( z6g*nk-RX!sny`>QN%9iQ*`d{J1FA={KKsaH4)6pOCGN$lfwKF{deON)|CJNU2R~1B zZel5O1zA1g@*Q61D;fx zKg@AD6^qounUQ{_Iem?4sC_zfLAk}L~}07+=qo26^AL;&U<5`mBymIx6b>syux z*vpUzP%=vdLP}U7M8FmZiGVH8j0ltz5P=*Sq&HB(O%Q<+O9Zwk>1;0h0`a`c>^aBj z;Z&tR|3cL}&I+Udr4DJR@;e5xVEOzgK>yMOz;NEG(D|I%|Km2QT zRKCoYU#nwkgeckM^g@(~a!nz(nB%@t-Qx0w12+Rw>4r}ie53l%-ZS5*M?12l1f>bS zh5xKD`+ut*q~jYdQk_a{?gVm8gKFD-heJ7|9seB`27c##r)HF1x;i|5JGgYU>HfXC zSY3LFofh-R_iBb(c8jQjhncLDjr%9%-Eam7#Sp$zF~J_X7l zG~fG)75}%GQOXAz0o)q{bpy&WQbfc_?n&k$Rq&@gsS{GCWwEzKesn zxcfo_ia0Qps!2XAF~IdnIqH+<*d`XP{W2QOFMJNiVh%LIF_IZvLb?JD*|=;@*_GW$ zEkE>vq|_W9+MneOsa_ymWUqCkv}SXS@rl@@}@+}VC!3PnucJI=TgCc?W zWb@z`w9VP}K_#0ryTLt{H#NsM236xFe_w(F?F2Lf8qF8KsssVU6&qL-r<(0Hu)41> zM{iJlD=)YEU*wc9NmhKcxo(5nU(I)2opR5-SoiG#OvqyGBkMvaGY7ds>)7G>B|8m1 zd)keOB1sW=_fY+F)Vb4aAJZGQ_(+0o@;e;%v{-fIq@ZU}s0R^ZkVIPe*}?aKQOKp) zRq1W3#QJ092stH35`;fXXo?=vcMj_os$v7jEE&!Vs31caxWaSEl3G@3h7{>7J4uY8 zSS>TbfMNU~iayYT5RaKfy6&)v(nHXMXI-Tnmtv3<{K^Dz{l6Vwwnrg3E7Wne$~&RZ zUBZX0mzwoTZ;!0Jwbn=RbA{Hugi<}J^`Xuu>F&k4uj^cI_AS+CU}br^RBw^9+6K?E zuyPWslZ~f*CKpfntljXqxp+#iNitRFn(y3}^jb`&swJ5!OY{t1NitQu|8wz`oMT%M zV2ONWwQD@gNzeavfMs|BE2P9a*)Yt7*=T|AZ znRe`aCz{UHdbbAT-x8rGY9slVQ|m>}rXlKIVdhrr4xNyBOGM^{J%loE8!Pil)|}vL z^JKN&v2vZ8NC=-QOLS$-rSVTp`x?Ewd-FNw=o-EKmN%c{g!;GcJ5Aw#&e?m>I4p{o zZTm~ib|eT3L3K;WiG7uMtwuLsiri46`{8ibudVLTewq}ACJ*ID;E-r5lKVV!Xj?rY z2L+pq;;pv2H>w-ePCrFx_e<^c;^e^?AQ1mN4zQAOmlL#BC-;zI8LN(8YOZUqcY_(N zZLfzq*O|?0bw6>LIJ{QhQ8GHg&OjQSWa>KTK6R&Z$c*hoLlTt^`~Za;s973++l=j? zhpcGL?<88o0?@6uEFmF!IR2pU zH?N7t?LpT}ss}jNnT7Ra+5N^mQm@;)-?(P;dR=GM)$5&|MP_g(y<-lbNl~hu-AO+y z!=Tyy<@c7(dV~s93U%`qu1a=5a_5$Y+q3tvo{A@fq>*^q4D5oYjZgOLqIY!OPG8bR zryc*Dbq**xbbP$GAY2*toZ4)L0l%9xctS!S;9fP~EKlfO9Wzn?s1q|+2v5QN*E;~k zJfF~AI-&!MXWum~wag4p>TbEgNGWq#QXfMu_?1b$PCEA5W_n97t)#0yRBju)YO!AL z+f9p_Wp+1xoIG9MO%LaGXm{P0pA)<5U7csrOS)_Af}IaG=z-){{<=Z;*QW_`_KnO< z_w30+Zu{xC3>5u0rwYmX5SRq3%$>dTi0)rq>IC0&9G2&EJo}`^zL9tm-QBQ`0WZ+I z3iTmA&G^0bgIM?9?X6!RpVjSsnDT?o?tOJ*-M8PfG6i+^2OCSc^g%@V==$_aef2Kl zrqiy!-mUEt8zNjML_6Y3W(kDLCFa!rdaiqa)D#cU6J&&^577JLjk;n03+^5h-5hFk zvDs>K{kXjRd2`)JM&e_(01983JGP+cu|{pF`>2uG{%tB%?wRV`_)={TMBXK-CUyu1(0$4tvW|$K{+DD&(h~)Y~p2Keh8SsnB@9 zmMfDAjhk@GRV)Q%%XK`TAYgNC38>w3WpbfWBHZEH0?ibC1#BnLDkX|dh4#=^dKT%V zciUQbhITb>t!L)Y){=H-kRHU8Y%@q7j;rexgLHy0qX!4+(L!fS2WRN4lCEx9KxaWa zOK17b(OG-QT$#|>^j`<-X^u1cl5O=}x#rr*DtUNYsNwadbOG}k$OXXNsO4ybh*=Y4Mfs?2Y zzD}>+PEU6vEzN;L_3&6pKu($mchLEqG@S$#zYf*)W{Vy5Jvj*330b$JJ}UF6O_Ox} z&=x*?B=?O}m3}7B3xs4e?xNFe);gkxw}gFb^3wL-Rd*n;Y~-%`O2?n>SRN;*?bz*c zt(vB_j1TyX(`ON$I*hbXWYY z(>v~oD2=A%!M&gplT6z`=*hCqFZhF=;M{h}-a50|`$np=#B#{qy3*-|ZYn&U(61We zXh?<%Cdc20xR*#dKY?Nb2NPEIDs$>SFtJJI+I{qq(l52I-iq7p_tj^S&1l)adPaw@ zIZu)*%7b@=2UekF*#d<{Rs2|U_#fE^+?IagkNP+=7OYNhzCYb-NC?|m zL~{xIesql9+IiRfI0oi*tJ(GdJB%AEb}1BwdosGTvHAzh{slOVW`C>zzB_E%J5vv;)t{;qSK%TXL0 z(H$zx&Q4>4D)krq^X8(Wm&t0MtvOX5n7xkB$$b&#MF(w#c^xvPhzRq- z!cexXCr4%GG&Nt;xR{uHA2T&P4$e83UucpW6guqvz(Vj4$-X`9%so=q zRfydP#ac?_m$YFrqrE-Cw zoS7?fJZih3*0#vCUu3mdR45h~+}vPxxorsbcjaWgseYIn#eOQ9B;$|Mop;U^t1IB5 zRAjj*zd0^y^MHx^qQsk5l-h*wdiJQ527)i4$2cR6JPLC^V5v*(yj=vQ=PL)D@hz z7JhjK7D+Cf*|tPI$U7y zeM(A*IQC#E(4t=W(cwl&NggoA-gogg}DF2qiBP z;E-LF>SP+l95_c%|wm)9?ELQP_C};(0BahcT;EfZG z2M>=m7anh0yPvzNdtpqn&;Ujiw4MQ*&yLrfZ3mjAmOcCg5!g@AwVQaku>gPN3A#`B z@0$qlS`rIYiX>hs#9X*Rnbk^sd4lc~8g0uUu9hDl#K8|T?vmVu{2(gAUC0k8ndJvO zgCAu4CAkUtfi2LC9~3GRn@Q%IusvCa$?Hzkhc_&q8)cIg0lUPKfOS9y0%CAXF*~?L z;oD%!T+{a?U0azUZaC3!c4kB<+n?&lAU~A5Yd-kf!0133`Nc zW_slW9dp{gY8>=;`TM@G0iUQ}oHX!E?NE zX7GQV6b^pzB;8Oh3HXTI$t2+Wc#=NT`O=L0lkP@VqnUpKO&>Nl|4IK-eBY;@suLnR zUU#Z~uWUJWky7WW(o5{Mu$+0`Tfobz+{j+>p_80wJ?v1D! z3~zd;6DENR+*I0v!uN;6=3s6FU2)9GyPo32k1akJOC@?k%- ze1`62JzQAM)_~APY(#kj0ypbS<$1by(fc1dC=G)1bhUGh`Qv$zf{V@M^Yox1aecYN z+;yIAXn%1G6#zngS+c0nkM@a_V{{6xoNc~7PxmZ(9>>Jnjeou#vQfE2rrgBy_1=A^ zKPlQfQ76c0;HaJ|tXe5p>X0!Jl$7IBkyvB`mYB8Y>pmTxMv3v|br3bs6*dzr><22N z*V)}{HB*n;@vHLS)^!p4wyV%r5o)j+ohK^>H?Jc>n<(c5M_^$~g}<>@x^nWA;1%3s zxp`=&?zY)kFG_JSZ3(@A1B=ofepF6-PkzQbTJvVOOR66xi0v#HAdLktS`qL0xOsP$9@BG)Q&ucyvguDpg3F$U44@J1 z7*q#v*N*WXR^4k82rV&(&DNc2K4Uu*q(;Gp$|Y%?jQkxlXEwsu*s(z##JYXj^1}kP;sz?`` zwIIz}7l|e%T1p-dWWoEgL@oBl8Ld@{AVa+*)BRmT}FnP8{se-AqE(lP=P`37uJb zksdx`3Or3VUg&zW)lf%E)mZewSq(%IQ!nMA)5j;R+4JN*Ozk{Ps^O47+RKnX0+uX)q%8bV$$rTe$oghbpc#MsjifW1;E$4Z#@v0e zK17hXX1<}dRlW&K)GVV!MA;|mkB^8nAX&Nf)U#nqBgv-bgAeGE(xtmR-6-yvbz z3c%KwU@MYch)bTu)>w$GYv=2&dgZfPVvnNDywJdn1xohFGPCC;`s6-^TU9zFcN=_sPQ$y7u9J60OmK!s;i{fbB|EaGwIz{~W&%t&e^YFEH2>RNNnWxBR7 zbt)ne{bMRykvcUj%UHzG+n$itBt2=Nk8SIN6!yMccm3Z2+H~0!`bfz=aPpP<8svtm ztMpnDPDK}>VR9ClEw0v6@)5O#s^?Z&%dP5p?bUj}oC&wk&YWmf9nDj${jOv-xHLhT z#Ss=&hY*z&3-yjIcdAwM*rZdeo!{uxrt90NQ`cOxsZO=ZfxAhktb2zezKquP&Uz?Z zdYi6qqfVW8ZDFS>3Upra!u1>9gqLwep~{P`b=PD?VW(PGU+049YhK|1Vm(IvO&8>x zDGbSMRZ4*-A-Oqt6$awAqMB?V?!)D!fz9*KEG182m_{qAlZ{c{qc=Z`UD#Dj*QCdZ_wLqkx7ZHg0s^2n8;yI z*__HYC9;b5XX7m4I&A2Xj*G~KbM%e+SktxKySBUi_%v9dlgwAG&0#_JZA zJ(eOjNZF&ZWyj{qig!hS^Jp9IoUjXnDRQ5b9hfaUAXj#P6g{EB+xegjSfarrQj~l^ zO~E30tV=~)DHdm&34W<)zM^4H*;+3CAz#&Gzl!G?fVuWJrE%}7fwqAWl(8y-K_4G)hYXF?((K6sq`5x5f|D!2mljZ`8>MTV2g znti6rwL8q_X17mqRtX3~y44|*FJbZV@yV#TbYhbsAv)>^x*cXcO1ghQkLCg&+4IKY zTjQAbp(tmf@-T)j!r-eXf~Xt3ew`CU#2`W`O`AHt542QJ!!!R#cUy$3c-TAHKbg9`JOqWUcWNHo#6!V6ge57>^9W2XCbF zHRv6R8dC0QmS~;^<)DW%XflqL73qA2jXaLVhg-4|)YC2d2lz5SvOSNAGj81ek%w;h z(9XcNkuo|?D}zN}^}RD8{tU-RvEh@x4z}8=84g+MYt6T@azCa0gftmWr2r(mMvH@M z9WJ{N!^}IQiT%`SgMdrkuacr`!a0 z=<3v2M5VG`LUgq!WC+?y>>u6l?~txhern~G-k=ze?QKhAxw8u|XkI*dS%Rn{S$)L;T8FW`py&wuez3F(SW@u|IQdFY%mNrW zP0*QR=>%dqG?h(m4o`mzO~s%sB^&&b{!W!&+}}B~aeUw+oz>7Aklw1uSwDpR%5o{& zLChU?sl`#XNqPCwo`{CqkCdAt-DfGrpAnTlC@b?(Csz#5_=|PNR7`Np5=Y5I2QCr5 zY|lyOTXtxih1Cbtw}gtr-$y2tUj$Hu(~AkDq%jfmyX7i~+RrWg88jazqoM?sTKNd2 zh0wbq$$B`_R#4n91n7z3qb$UW;-GgU&C1Vss5%|Zj_^rFfM-XsU{bj9rkS;|@@|?~ z5}{iqrt6)0V9L@G2r0`cv*w-na7#>PIF`Q3RAmS>s1mIBOyn856|AvW_K+L7mYEQR zVzBnJnEc~TqFt@5ypGo;!Q1xXXi+RV!8)5VY_}97n@ho!NNKQyOv3!*Q-O;-qvYH6 z!R{#Dxv~XiMLV~}`_Z_pB2pqCr=Tf8z-U8PlOr7;6Xv`z^~7!Y9;CzJNEm!Hj5QqYR;|^dbUYMItN) zD#qM_QXYGhycIGfuge7dW#*-5agxyq)w31JxTGQsM=}M{N}XH{h0CFth65y>4BYqy zZdrVj)?`wpwV1SqrZ;RYX?3E}K%W{+`4zD;8q}VO;fY^8i8#8SRmwh_G|`%vYeiTq zvvNbN&?sBY;PDcu+bH22m3~rIt`d&w;n9+LFRq6&(=n;JjLr(Wj7Q(-21}!j@#S<4 z(>c7uVW=Ya!2)gr>3kYV0Wr>m3%nC?9q>zz52B61=@Xb#?|4uksAvpMo)8Lxh%F$# z%y=cA16*OlH_0!xFN!9KS%yMZ^^NG{W)w?wl zVfWwKT?nyl<9F`wL_k+&$}Sz^Q4wkL0|)_=+8E?iA*9^a1AN`aB=ALi2DTg^If-d^ zgBM-aJ0;+Be$5`Rrh5Km(1YUPQd9ziq({h87HI5uJ7G?fRnC&)t)C)?1=x^eP5B*J z`BEkJSi0_a9G`3>-{P#$m?#&_5~|e3mggkpa+k44eW4LH{75?P$VcS@AU?{JmhKCk z@%%2d+7QuOM`7w1WTj^e`hC%gZ4 z1H1p`alSuDRUL(xG&BZf;}f0j@~z($Hxicp2w+x{hze1!B4js`hygY?SjgUmxt){( zUSbE_PBs(bN5TXPDU}J9*@I;?_%WCwk}WHYxd{=Gyc}rJv95(aI)1$sa73Dv*_YZS zD4ED)Az07?ZloqEpdlHi&}w*Gs@(4^?blE_b1(f9vlZUrc6Lb^Y`aNgU8R_C5HLrO z(o%MMCFm(%gc! zb(>&dM37d7{$t|(NEo2qWl59`bV>SR(Ih^Vs2?C+G2XiI)!Ti11vArjv}KBXE1R}PE=pCvHP;EO7Yy~2`o+-syC%I}Ownkp3liwm3N3lB#Kh?vqn$|FFaQV=h! zy@=Y2vbD!@oswWyTNkcMA%JMWq6Mu`RkpifmCY+mZB%1ne?=0OzF1{x*eOitvKnB! zlHFyEI|_fVATp{{@INy%Be=LxW@eY{%w&~NuJ{Kup(QCR#S4LuHhc`(qI+R3+Df#p zWvNhi;oVF@h+M3k#-xxju*Fh-i*}a!$QxhYR4~qPDS&|uJOM=Ycvfa$8Fp4CH{}6H zG8#pKGXY=QVI31aE!1H!8GJ}Wx+3`x1n`o{(l3%{U{9t>!CvSsWkVHDdo&qE1@G;e zEr?D8M0tV8R;A?8lV*w}C(hucfD=DP)P^KZv9h>I32DMNn|Av- zodXvsghQN%$uWTR)AFXlGLwQ%1G%sZJ*!`Ji6hRV6Ng1nFK5SF#T3Rr7tzepE;b{0 zL7=3{?f}X;=v_2OD7A3eLswt{Bx~zMP$(o27FZ&@+dW-I;6OrVhwjh{kcb6{y0Uu> zb8YfMp)Dk_x9qS`8a?EZYHmq{NqrVeFtO z|Igfg%%#OS0r3b#Ot?KY$3Ox}sX?{EzUIhIfa;|((IjU{0-D!Q1`k2o;HTVR!9&2d zD<4_d`Wcm#D^5DOr7A3+R%L6V*!Vzb1Utn`-+^}1etih&a5uwKWOn3u@HZ;bWEBP7 z5efOsMW7s+sNj=mln+xj>k_hCAZgDWkiCL+#VBIz1V|pjAR3eHLpZhtHAt^y0g@eD z=2k!{V;xD(s>~xC>g}UVmuN5Wm#;Qmq;z*_d&#wmi z8{@ws^o3=F4`*>}1dw$DL8U#i^h-Vi+)sy%%I0m&~PgI1ZaTrOGFtcs#Qb=D_TN-C@-6LUXJQ0{o!qc$fH__s$E}_NGm6P0~1yIe&3MvF=e+x81KlJKG_*)Uh&HNsCFZqQ5!YT^)w>_RUI z`<(4c32VhyBRDu3XxUSIn3Nr3@KT-GzC1u{Rbnxg;(2&*392bn2YFcBN6lTacwqBp#dnQH2BgA+Ju4u zNk{yWtYAuH0+`=$(nf?9 zs+dKba<%}N?<|?HTab*6LZ(c#%5p+}k~N&@ASr0kU?xy!3T%aP zvf$)W)RI;4*=YB}-G_xQp8UaAq20Po2;Ye1ho}kKSPQM}p=mAIksXuOB?*WkQ58F64lO2Rq(0{4cb|osbz%NGwB4tK(Od=Gc_YrMbre_{X*ftnXc}6f7 zqrNwW48wkbrE9@fmTVttr7eO$GNcA%3r507sXB#(EYz0 z04+NX={+Q+k{+eXvuuRHBuiztCkvVqG1xUfI*-1{WwK2N1*HOBmp1wpNNM4CP}I`% zQJ^b7;DI0Nt*QiBd=G0=DbLzutj{8QipIK}&=+=@VrS`6uzhAhutP)3o*@@jG=rKm zIo+Y>R(sD6i(gnKQoXgVST0KIsrcMb2uF>}ni3X)#Wo~Fh_b?P1~R$Acj5!D#Xz=H zlmSrJ80^V%YE1bP{Cd$g!U=>l2|>?FX2i?Pd|vlX70@{())htBQqj}_lr$wl6jCN0XQB}j=aEt;{Vjo^uJiFO5^Qk)^3w{k_L?z~4; z({cqasbRSle8@jAgw@1{QgPmY$xkNQmHIo!ElpsA*cx*-Tb3`V8M+qyd+?jfUeY~M z7?dFxYyhpy^#1|8L_-w_xFRiqD|^f!$2;fY6`o(3^NTBlSF2ojo4~6WKNs-~a!M~K z;^=u;>`*4rVh5OF9(q|Gb48WcX>f+2$AUYavi&3u^<@iRiG&LM$zu2%fQyV5qOhHq{IMjOwN+lbY|k<7 z%GWi#&x%|5ufv}Aul6Rp568?+)m~q+NWE6=?IX9nYrMhE8|J7Q@6b{fU<}n4fGslH zys9@#?JFw{goKkxIO;|gYKaoIYYLsO?Q?!vC5uB$w`fvaXrV4@WiMQf{fiVTXt zumuSFLMeG>iQMk2OzSV8LYY^n-1KYh6y|*i6Vc2R;!kL9d`*8N`FgJWr`|E|4_)Z~ z-3r%7q5P!W?eIE?2Of=mLyyg(dMtSK#^xx5{lWS(f%}KKbcweQfDtvjlgi zu+<-DPJBoADgDYm5TngFbNxG{N|<9_dPlc+o-&`kqc7>dc(#-m1^KujMH*GnI*V;w z0d+R2;uJ%4_{$NCuvBsTyTrh4Fi*a#PxU|e33;TR<)Q+1F!3dPE4%zyaFcAx;*Xj` z-qSai{4zsYKzlUK#8>Jq)w1toS&cKJR_Yx}Ry`**qqZAoE?TMoTyE$ z-nkc#;BAr}LsZLBHAmLp$Se*Q$4rw(xowp0E&0FyfjOegW8so$+ZX7C9zyUL~I1PEtvB$L&c${Nn$j3 zC$1yOqUMRw%pITMiJ8kBhkURwo5)R~oscoaH6+hwbBW^+<#K7z+-w>&dDuJ+nml7w zWYeHIawYLuLMs@NG-q~QP4M8)a)Lk*!P4Qv^{r_ez0QZIlF&ZOb0$=_{5<^GJi1!n zng{iNc&Zr~$0{|qeNJkazndpNCvdc%`QmduJYQqMkQ1%qfOhgGuF*ZS>#sDpYnbeu9^EK31g-`U^f4ku95rU|I!QP_p^VI@nm?q z%UWIQg3yD%)?=#?tgN&l)F%$jfX6(Kil@QZ_Q%4!- z4|-?+(>ZRaieyI>3^<-02T2~p+Y**{{NLjbnj?SEV-CyqAech>!t63eMuIvBnb{D{ zl8Pz7vyfJlHK7&dY~`R8WgF3ox*zcaY?)RFzlYJsBoC#Ki~?q#BN<`?30@D~(3~vE zkcZ7lhCE}OS&|WEPLzirr6+@1cz^o-AN6()`3}GTiDYbR&0#<5H{meb{z520+U)lW zvDwd=JAZ)<-(!CGMIX-HLBHxX&f4^d4McjEKNn3BRVWGp9e;oRQN?>Wf17_-@zK;& z=M+CivG<(fflhWUlf_~s>rIqiIq@$mJHWfs+eC|Jx~X}d8$HuO`IZ0AdV0#{7p}t( z;t-okaZYv0Vas-kSZl!wNX*9b^-3=3;p~v%aEx=|{pLkg z+}Y)Ktt!6FhM7k;o%Gi{po@F;S?_|Nvc1g8uY^H=inEYxf}dY4wFhmj>?pEaWpVL= zsf^GV4W5#6vQ4t(;@NVRF9_>v8_H*G<0D0zBq<_GXSQ{UWTUo7Jiwqns06HGMv)OG zK$LS(K=5#d^`l-9v3Fv-StqtRQj^0QFv4yd89?Ph!SW>7&k5XSV^QWs|Y9G%ql9*L{sC8j3OVK z)=}c!RvRpfOejaB)gn)$9KyVmmFsmJr z?o5GDFg%8Zw{p}R{hm9_sWo@J=kC*pjfbdcF%ieVMsyTI^8uy{z@1$Zbo>&)TryER*Om0gQ8D2|IL4>6U?57P{p zCnJ!>3Bel_JmN{)5NR;M)v;ts?57mz@9Yuii9?({#HFg9kE8h~w$a+)qzNS4l5X)i zTX9i(a!Kg29d&f5^~G%is`x+O}ASx=P!@i1DX+3q>#o*O*i*8M7clixgz z8u7&e=nyJR_kr`n7YBf_8(Y@7*(eUcHK!Hzx{da@y`T1g$BvL*Pea2z(v1m0eW8 zwR8w>?ZIJBJ$t-fMjLMS7-U1UDn;A^XQv1AQlFjRL{lhU(DO|C|JzET-=D!;U8b*u%mP;}M_(lZWU_qO>9U45? zoVg%7b4?!fGiSvZjDY{4On8_vUk<=1B9TKt8M|F$1>a^9{}Kh7Y@-RMYUJ7~@5t%g zye`RKDU|i07Brn*cLl=__wOk@F?Mml!edy8GxBBo({Z#jC3B~AMKhz{%!4>_E$#2# z+!f8O&+JO8RI#Cp^lIg9hOPG{6Ek*uTVtKo*H~svgrhT7d-ou#os;ZvmDak4HQKk7 z(N5gabrqvHv*c>a80_rsG>;_meQ1?><$yQVTI~&kT^BcAYv~&C&cXJ&E+U{9p4JB) zeu2>DzB99Z`}(UMSz!Vz@JCjNT2m9q*PRi)n`BNa&ol|UBTLvA5QrqypC|0J@(e%j z3*Gpo;iyctkyofVBNPnPF;;Nq@=|m?Gd_D%G=Yz0qoQs2ICWIC@KufTM`>IC_5;v! z83(jEyonhq@muj0>7`CdFx|71aO3jf33T&SA{Y=h*(zP}r?WTFnV!$yL}yzTow&@i z=+yb_xJ3<}0+SzB$cG7UGE#=7a3EwNW(tt?4u@BBgcQrs(ebwtX z$ClBYBOAj{DjB|RZ}9b$24724XZU)|Aif?;wod!H+8E<&3N+iX95P&3ow`|X9hLF6 zCgMDCm}fBd_k&n zi%x91mI+WjYP7CJ;p-C0-8dE-wLgCuFjsCX!vLKBXoc#I$lcQX9nKMroM_#wT1|U z71AmQ7;1>b-N@eshDH_uD-c^WvCc6gtTZ#&PDg!^52cP}@ClKYW**VqD0<>3C!XO< zUFzAb9~*5myHUwkMX0SVJSoOL-2l^2DZ`fct$p&WWWcj)ABPmC-?Eje&hu&+nLRbK zCpFKblrPK%N#N#6y8CRDa*0Rf7bR!M&HtI!4sAfwTk@yXMhh++1$|r}&FXH@Pn-SL z-QKy)+Xf_=gL)geZllbTpc;GjGQGpPr#GD5?ib^taWZZTDXB1w&e|y1w~S)ctYF8q zh`EhHX+{N0PgUA?V<;WTOX=>vO0>N$Or8!9%p${ULSEL+b_^{U zAr-l>%A9MkvE&pM{W zaFiygNc)9-(FFJIbK1)6{e+!iAd;iXP*Zw|{UKEpk0|;wigHRF3|_#cJUB4b#A=aW z9N()CPCm3jsg-1$J$@XqA+^kb#l3t7;7{(pPEMwqpCc)*LW zmvOb6bnnfFR|n*G%f)K@*n5)h>U@*u-wI8hDnm2VC-oW-mdHBF3kn4??Yb~GL<(D! z0{6hgXg*$^zfFw(fAsP|aT{3`U0KIP7dc}ZZo{guuNy+k$K%Fe&qbH)T5Hj;Drm5g zRgtl*hT65mnYCTnOfaft$XKntQ}$dX$E2PA4Tz@_^idJiyiu>drvE=*(o1s6bdU$A z7MWkgYJfmf8!$u6(XM}*eie<0dJ*YLjs|{)xPaZB+I{?J*nNEU9yVGwCWvcz*wV9a z_~9qW8f-K{S+g&*K&oRRvGN#hh6dYxepIQOg)yFPE@a5eFH4()&$$IFL4N~4ylVpc9w+E{M*`{jp6uSo6Zl0Uj*7DelW zx4AJ1vh~;Qpd{M1p9Qu|59`lVu>biarP%2z03O^F)rg9k@%W5CZI9Q}=t|9oS#ll#{q|K{tRa)BJubz7P+rcG%G~~M zjoy$+h{-y13XK83-1O+IuIPPXGkI?4kPE{N`EPF>G-M^FG@LmEY5b5gVS_aM5#3VhU_z7VQvh|Vt{-nm88O}-Svk>+qEbygKPFRW?XoMP4KTB zRnc~M^d3%;JLB-^00shpUF8Pdk)bf@u*N-tM?3blhU3cvP~%o zmArKn&>iEhJtbPiD}HhcWb-4pYGt%6T;1UwUK!mS{KcJoYII2XS9b6uTj8Ym0uCv9 z?9^!Q;CxqkSM>VeJa_85qR%kF+nmPI>M!o-)1ptdD&PJ+VOt1RN1kmmuw;Cl^73G- zbVz08Yu_Dxt2L{y2`G*(iDtJ3metB5N>G$mZrGWvdD~1-SkGF5>ml!rW(_}{5y4`8 zeEq#qb@)CujacZe;pVkIwmv!on;0`?_+CIGW-`xdgM3wyzwJ~)~C2gyj zcu#iO#bHFGlk*p>SBjfZ7Fu-;{Napkc?u+L|Plji=xsRV8?Mq7PbLU56kbUhJL`#F)+<_NFd(wEb}MUup@2>+~^CVFLK!Rw=ayUB9edD%LaD2DB3P~TLa=` z14^i2C1IDOxycK0;p#iL2U}u2gMw>gDr|;XSL@k0Xzspz@g^-X;^eWYdDu9)*_3Hw z>#G`{P>Q$3RFtz}d}^u4n6UiZTP}%?gWfk>675hwpRN2IHk~CFbQ_Tw)t`+4H$mbf zGI9n_BxH7mCh{0uj4B!9PP#N29h^R}>QZ!Mbq#x6i3Hg?X^yRA=kTKq_dmg+73H(q z2HtR4bVkT7pGVe2Kjh=q4@b|3tJ~almq%57e(Cb)b@fleG-Q)eGlYeF#s+vz(y1wa z>2K1#VjwnLH{J6b&QnwDJ6?!fFE6?8qoJ$FUcynane$1T4yn)nY? zTyx3?PiPHvgcC8UrA&o57hDx>+k$C?oeb_Hi>*Z?n$3+SGix~+P@lajIy3mFn{#!v zB>3pS`>&41<%idYBhsnX-!PiE|quT!U+USX}g|pXWt~YSj zn!kASOm&zs*8FXAL-fT_pABnm1RRwb(pA2~{nriADfK%$(3W2CQjDbyMH=(>HRVa9 zz$$vIJ~G=oHm#7~tcMzATjl_c)_}91j7aEN^3Kj{qqU5!rU4a8jS=!AYa5SfN;9^x zMrMWd8;WXBZ$p+g#|`I+&U9y$q;qoVwnm!;Z%Bum>d$@grs#txmHj>z9kjd&Tb4;j z%m597V`PNU!=&t!+`G!>yXQX^9WXp=jNEgu`sS=?%d*#q`)ERl2Y9e(%Szi<7;r|k znMGcG%jhlLf?J|;i&wKfjd;P)1Po1Hel07*V=}BD$XXrxm}-uF%rMKa6FemUYB*Yv zgd3Rk@o2Yz<0DVJm38v1?%rFY^A0bQZ~W|UEaO*a7O-Kg{CJ?OO(Zbx8QCVCc0~r* zZv+>|*~ws0B^?1LZ*))|O(4HZ4eXNKZ07yk@6PBUZ0xajMNbF+J@B`?SeWB%Jm~Id zr{X@zeb-Xy3uB~wsQd8U(GG3=E+0DZ4ZgNyXTlLfO>?lBLOHr&4pJ;3>z5m94U$4R zc4KSM_C56|g|eqI_RPu{?R&z@-||hiCH1w9mny&0=-{7dAC@zYL8WbWRotKMi5BC^ z*yY~nu*v7O)naC%Y_V?r!~O$iMgNq`=MH@4-e^G>T;iS^h`!u%;m*t8Eo_+4J2&t) zZ!q3Q53-`m7=Gcp+USk(=1QL%WJQM=u-S+~CNEZWMvA3t#I!<3YDMQ8{!Eqa*w}@u zYq%>1ThY2GD|(*2&fWaE=wa4{Cx1TLo{x`yK01PrzkHsxj_qmt92swSoJ^ZEU(&o9s)RzZoI?DIB4UrC29=KrxAsY<4;49G)VYvG9 z?&z;ZyUq49w?r$dY~sKsZ439vSECnOdUQn3Xnq?;l9CNv``4p4xBAH1gd(Z4?TR`ern#$pA1#%X_rRsmo4-P}pEQ zJVj88Qtg{;JhJsHUW;o_T-BNq`sw8iu1!OG;@R_>J*v`@z5#Wa(I{-|%=HmLPOLt4{Jt*`T~Iqt2| z_x^PL;~~vyr{>rD<{ho(wEmjkHkbj0W(v!TdB6N`QD3-r!2QR+5#qedz3^}N7tjBO zJM!DnkG6c`v-uTpmUepDX~&((<8I$aqDoT+kd&Bq^MOZ92DrN)Ay2iUl-7cUE~U{UioO$Q-9JLaok;xrIb~BirpEPYEOpjMzpx;X^~x}gU%@N zZW-Af)h+nmqQ5QDj%ToKo4Lt2YdbgLtldIPvBP(wzLs3cp2|3)K6EIfyZAfN%;O*b zP*5%DBlwKK)25L8!XD|AfF^wxyjy{wttY!^ zJ-O<4!SYY75sTe19?N5j9KYCP#xa|VJO-Ur>GmCWOMf*x?%r%HcMC(m_-?f0 z?lxQ_6w79Yl9cf|BNx_UUX}dPM#LpgTn|9wZT_MsuGfDL(Q3mU)Ca~*tB;>qA6)W% ze9us47l(N!@8A0$gP+lR3yEDE^o){ClIILqm z??-dSH6Ll*-JrY9J^THrw?*k0Yhz^GVorv|KVXMMlNcH-CyslCFHtTyzQmnaPo z{08Og(e7)6MDiNBO&z!LZHVS39&dNxX;e?qJ}$TrE^IwSHMWNaOj@SxXR_m^Cfb5Hz=Dfo!%c_Ny>qkl2SFX+Xr zQ_JK~{O%?3z5VR3QAJu8+H|w08YeHh)lV=De{?rJfk$Gd`}Gs#oo#SOJju{+bRT>& z+F`#heumJS9|@wdNolWXATE9?S{~ly+%ZoPiG0r8@)V(`XWb)DMY|m^@Q5mk0sDIL zxL6G~-;`O1cq+?124W+Fu zvvWB<+t>J4>T9^J#%H<;(X12*Rz`P8f6FiAC%6ZGOXBd)+#SbvOb<7F*8Sx8j{Wrc zoj*nIX|39`o6B)Z`66DM+FU*~V=*^e#^OdvnijWa`cZ2tE8+d1nT(a@s@;5FuTlUC zH^z|qPlJmg`TgW>mlvYf5B&AFBzlGS{KkFk_tClWz3o~Xa7yKG24+7O-QBFb#i`g| z#XqR3M=w5SK#Zz}$*5-KqmKWIJ}~~icG7#%Rr7OY=`hlHsk1meNo1RJL$#fz`wVvzq}aT5d3lA z+CN99D$BX_*XZNHRRf>-YjjQ!Trsfo%jAy)>)oU&*nXy>%kdq&_=^KWdW71bj0(9 z=iU+bk;+TX2@UYtYWq*t!W`^N&8%%(vH$V#ZU!zzKGHtjL!I%{^|bc1%3(BozA9xi zwDvTW@do*P&9&7kk}GnyOY-@03aho1%U48}MPFOi=i9c2R6|S24Q`kj(55mZ4bP{> z@d@?6T1NY#*Aj2a;AfD;#0s#(vWJIn@Ejg(0~snPvmLhj8NtL2oj3QzE+`Zs@Y}Aq zcOnPdA|dnGK-xNqS6W8P9Gpjp1y?P`r?)8YHCaO`l|XaKomL7AqGeuJ*IeQSyiDOR zy%QLC?+Y9P%QR~Tv<67{>~-6zJ!OS$pf`1m?PDj%E>|2VjE;J7|Ot)BB+Dy^6I5`pIverQi; zK6#l<5R$88#k#vE#XVcB`AvaZR_tj-)E*248S(ljE-hx4Q=? z$IFRAR;R?(V84Mqro_+Zg98TUZ50!vJYe8GQ{w~p?Y_2cd=7!Iefr}`;aNX$$Mwg@ zhc5^2d;Re{f^}~Gw0O3?F4j)y*6Yrg7Ehl(tG#<0M1-K_X1 zM)$W_@g96Eo*mcu_{!|~-M!xoEZbAjwOozORR=TQjQs_7;12ONb*omw?jp8_>1cp{ zZ4XNeVe!Ln4-0hN?{Tx*AHKK-*Vr8N#ldOr+q=Z$ zy8mhg-?S%RT9HW{_|q=&+u8mzaOke_q@eWli@903+^)Gfc-w#NChi_ja5pT7&t-15 z+AY4Ak2`mZj~d$Q8t&Y?dwgi|(o*_(oLuJm7REQ_4=5ktzO*ntt#zxNTMHM(j*0)# zqPRB*-shf6;#)kr*#zx(X}fhjy6vk+w{4g9)v9O=dUUq&xKS6;y=l+*1&IHEC7$?CToO;4>|G+To=Pks zjjW_nN5duJ?pYF7rcjAV#w4e@vj688^Tr*lVus`#Rtn`$5BzaSd`1ww*PXI=+{4Ft zd&kcsK_9y;(OVSj|Fwzlc}BL#h*rFlJ3nfmA4nF1*GqT%1!*fQ$jr{11iwj9|M7FOx=ao2HRylv3# zW*rz$9>0!V-JFr4jGw65QQ@d(Z5btW;@)v!T-l9nBFUP<3Jx`{&gARbwiQ)Xn!1nA zUHDwh=X^e|q>RL_d|t!ng2h2~PlzYVyT_M|st!DUV7#L#DhdzeYQd-CG^z#G%=bYfI;B5P|>dcj=oOII3NAusCYPB~We9!^= zP1}C5{WoRVp1Ztm&YT_dZS5VMUB%L<(dF(fw(J?xJ7MCa+k?th+ua__m^tg};KRY1 zp#H(&GX7i|ToR1uzj69+>?Oh07Y7#w@rA(!!R^6$!MVX1A9(-!PJi!v-hJA;PF;EI zJO1UEW8Qw$kw?7k@WbAE=poDB^5*CbuRn1AefG&MUAo8OWYNOicUv%j-rSvDr?PJ- zl``iAP@0tBF|(cYQ(XX$WM#q$NzaMvcHSe8cufjyrZ3*?n-`hVOxw_Iii#k!bvx6X zZaPaJ3yQbWUPpAbyEnWcp7zG};>Wp=dD3?)g`d-Q!PYzJV**YS3K%e{w=^Cq3N-B; z6bS(fWc|*K(^j+ZIx7feBO(W(@Y9m(uF<)|yx>R{MbDp&GD;rL)mN1HChXe& z$4X73jP!^dqoA$Y2UTkL=Kob>snY%`VI@O=ss%h{1qsb9+$ks8+1%iA!4LF)xd1KA z`3wvyzR}wpJ^*w!Fug=UsA*PJZB|#(R^6JV*@yB8yLz?*Kq9*R#mfwRLJ;U$Ik~H6 z>IH@YKP585+UJA?CbM|c#x1uV(h_JXfUm}Dfims%XK#!r)O}M=Au2OZEq@ST<6}Sc zEZ!e$8mEGRF~Ed zg~~)kv!3EETQ&pSoij=w3Ya-chIZCSv`U4Yy=+DDX@6Z1zCqW5WKEA4`uYs=-Q91FCoa9fCdW?k^SCCxr^-fW zdaTMsJ&SJjtI$^~2?t6~qIcn@h)){bW$(Stjd@GFOM({xdgaOq@HZ}kuHtpPF)IOd z=3!^D;cxkss1K7i{7rZGA@TlmPb`6- z3cGu+(RJ%ReV1N>7|-cg@IgTGLkzwp)L|Xvi_RT!NIY!@+voWs^uPQK(7(E3_`kXV zq9FyUsV-E1)!+GU5pO@(;t3Fw-W4o=GvRiu$FZuyv46 zJAh9IbwGeE?I3J)u!o*g53Ghp5grnVoPb3QAmVuX(ajGXAMfP|Iz~Z`yb2VQ_Nt99 zUlo+Dbf+B_?@-rMGZI!0vD=pYBytlvau>lY%J+Po)SWzSI`&oL@shg4Q31_kqLXH;(VDEUYX# zLwA)N&^e7SRZVWEoBg)xbr@?*1d6~y z&^=*Hp{%xhhi41|{?;SoMV+4y;KM@s^X_*?#w&x%-H}Jd<9k7LgHk`tSBYiW8f)B# zk3#qAQb3k-i%-{ZCB>xC6(Y)`+%rbaAZ+v33aCjhJJW)w}nKrnjcuJ((}1>(*;nq_pm+i-OJQ1L?z zaH+oFu6jE+3huGD$FHknnshReIax6&v<7RS_?i)B4dtc7jDzHX99sQmDl`cD=~Yo# z>Ea;iK~8B9644u8%0W&h0zbG>uQEBO!sQ&%#Gmpz>ewv}2C&CemAtcf>5#`F_Nf`# z;B9KpF&;>a=&USxN z%UBUX61WThCGN(wtAu8WbIxpas=6&gy#_#6QeK(9n?AZQb5=t559AI+gqF?tLSQB{ zQ>hN$mA_-v+&imEC$<|}S?BGBXOpievCK#;)V#JOTTM@GIBY#6@&scqn?-JZ>74vZ z7O8I6cTj|JqC4yz@#MPMm*w&|!`f7TQmz(tgwqB11sb#ctWZJWJca=Vi+on5mM#i} zBmLl0-?6VqEb=(fX~o#}pYW_e4OjI5da6NvM z&*4I8cfUR^o)KK&#vLC|?LA+p1wOOEDx)~q+jr|m9T!iIjD$1-_x|JK>3xG=q36o) zT4x4G!F~Doc+58HEkDTi&?I>wX1c*7ntSQ^_^rW(ZuyFMt3C9{U~@%}WDG1MnO*Uc z?A$^9)etEF_r(?Q4ztb?!D}5%clq+?DF$<%WY9T0fSGd~!jzA1;j0mk@X+KF;@W)5 zcnLwLN}Jk(^f)GwC5k3NCy)&NNt=@oE0@2%DW;wb?-x;^nxiDBEt;&k;^bMu=70)z`9%+ctrWiO3 zj$2YXBlB(@CZ8^j0%q`ibnV}Ix~Dg@60G8Cvmf`y6LExgxf4%}`{uFvOvfD*<#aBV zZ*P~F;YvSJK=xd*{Ix|pwhF#7#0-7qIGCJbciDp&HRB^YQ6fZ!M{NkjzXLJC}t16m?dPY)_QH){Kp&vr(rZ%9EE@znoi% zVNyLgUdkX=oE*Ycwp%yUD&Ty0tg)h znP1Pw8GYWCey&YFuSq}GxR+0kryR^L`QmCFI?$qD$4r)aDJyF&&2pHpeyCK~*;nCq ze5!B))hUxT6$mLYQz;Zq$l87|w0UtWPlT49k^S(tqXE+-Mbu*d zJDEO6^NN5|(ftbm-oK=Rmu!Z|9IpMdAY)?6apbiGJ%&R$oS!wVH_(TJW33ckE zI=tV)8X!FIW-_slHOM|ymn+DhbfIlE%hjkCdkPH9wOxaAaU<#8YCa_+C z2ztsZ)M(1%gF0qz(r$6|fDDyg)qt(*HWD4Vy)AwaKOBiFAm9WLQtRq=kr6^2c|S^o z2QTHjP<1IqaQ{1~Qi4TC-6S8S;4hi26_|!;;6u7BM~^&IY=KIXp~DCKE^usGJett-6sp>F~te1DbZ0$z;z*Tt-^-yXV#%g7!uc^kwBiG-t?vq zsAhFgv-iP+g({1Qh9E@p^MX1HqfT5T@@AAjE|M!&x@{?xGacspMw{WcWNlk1dk2!y z(uKSg)Gie&L=>ad3B2jwdyFogAo<_$Bif1>h@lVsU>-sBK?L%to4EmwY&f1kXb*jm z1pe($-u=tM+?=Vl#=2Q0Hc_SrHR$Wlpw%J+%QeG|wRDAQoVd;#RQS{rYDI)Vjq0=t zwd5qj{~!zibAuP8p`T&;_4#=E`B?h-D4(iM-?;xEzmo@<6j&N1JtxE@VI4MO0%$1A z$UO=x`Gwbv+;_o<7{=NoGVctMx{j*nLW3ha=I73}(HEwL-w$@q&*mOAOOs#!TCX9G zcey(KPN4NQP=lSv<$q!N1w(m-M_n*2Ec!g(*0W^!rdW{&P0tGAIxps65PQdeeNXQo z`&aD*y-gMPS%EU=N0yZzdWvy1Seeq*8Fouv_%@+>q%Yme1C@F!i<$tBq@oB6k=IJ_9R4M7)Wpi+q&+?INt9g5+C&;Ckcj8_~(O79q%E!*%s}+d%v&dcYvg5g2Ji zKOn*5$-Z&Bn?2rM;Jv^Nl@{QWO{oGn3`Rn-6xG23liPeQ~_PH5SPER?yv^0~gEG zkn0UiW0AO12<~0^HL@iVo$I~7JL=u>q&?nE%fz0g59Uu#(MwwnN!iZQ7!}EyFuCx4 zK+G*=UPLnLyEjxB$tB$qxP}s} z65W9at{IR!aEgfbXkwF`K9|%tTP{ zEB0cV^Tw~E;9m)Q@0jxLL5olUWx=g~Z(Kc+N==#=ULZ}Tv(T@E)St^&8pjenm$w)& z^L3E?v7f-AE!$I*_veGsm zW$Modc~SA*n)HT_NO9NCom4Rb!M;va-oQj{ZT(UW>sG8 z$HcHW-7)sQ)AT;bjxe^IVCJ!IItCh1<3{`$bP$aN`Hhqncudh#E)kyPO-#PlyUb}&EB!8&VX zo{1tk7gQ3$Sg>xWtp+mexB-`RNL6$sr?0FQV3tq@*=aRuSThi@I;YT_$`2N%jo+Nk z!fz548W)Oo;f2-(4s4;tTJgW{qQ@?v$>%Oguk_j#WNV|zM7ux&g)XRIE%31*Fabmn zTh;@{j&1JY55$!^>h}bdT|%J>19E~8ddJx@KewDo=m2o@G*EcFEeH0f;jKHE;N{=q zJkYFZ{`p`xvLZk`=ljz*<#dx<(?L+g6fnmfwj|h628||R2HW=DLT0Qy_&xz7!E1La zeM9d2ZQHxg(n!bwFhQ91S3FH1#?$hZ+QP-0T2VPymP|UUwt{1R+?UUYt9^F{IGkwC z(oDo5A;2oEJ7gg4uQZ@o;FL4tF?BZdE-9S?iD~YSv;n1FGMVpT>0~{ML&;7kt(Pb9YJU#NtWm0H{Z!n zJss#ZVievnQ(B?7GE>U8>_0mF2g*~KL&6+)Prt>{=lUK#l>%>hIjWKcS zJ5Og7v{~xm^zMQmOF?771#}C7-wWZugz)1nA^f-(!q%wTVdBZVOuQXC3f0L#n=*<} zW>~({J-jNOvbWsRW?kB03>g`eil8HWJcrphsp)U>B205vZOo6`p-wms{b-!ZFl~BZ zLKF3J{pcjC^Z+HM#&nqHP7Y9NGwy`OPFukyU2v{|3=n$;Vg;054>xf=@2}T~Jiw9# z_Vyi-#Mj^}f5wn0`$pH83(b~TwI|ey#({ZOjv{1ZJEp$U-Qj0tw5PCBjKWNO_IKBz zz5vgP7QvOEbi5pPc=kjKgXA2Bn9(opM*Eh|JQUVzoB#m_zWb9k@uDPQ!g#bmK1dxq z{vkVN18i9XWpo7<_u%Tdv~Oguwa4gjB1AtyByY!zY~YY%lK~q7=E!ICY%Hd8<#(lr zW4kG5k-XfYc^7QvGGx3cDGh27lg2Ff+UhaZ*IcbbHV-qX#4hBpI3%dHnFXQUo2yyx z_Il6fYE(CiN|0>%mwK3Y^k9$E1K-#Ms$JZXbfH09Q9C$GyNXQ6p}KVbj)#ThgiqKC z2%YmnUVZ3UJ&LDUc^QEc?>UmBtYB!03vOaXNMD$^d8gPs)|%X3E1tmgEv~bmd?gof zC7v5L?lV)IdnAJKYMQlfXN@cpxr&7#Ql-{1nHCG?%EC|7qU7cGuB?T-2G(SeBJP0G z0s10k5FnT9$h!y^Az!h$eF}>j%h_B$5lPfJi-)TrTyJZg&~i!6R%A`ZD6U0n*jM?G zH4zd-rNBSWifm`n$@CgvrW3t;D?0!oKQ#v~(BYIM;*<+-O^7sLf(7FI07D*RKkw;K z_OjK^3(N)Afn_RZQ@Y7|MRNBafA)v>y%T8VdxnC5LTN)@&4GP&^-OpQ=cTcB#M2;1 z`c15FS@x^?Mc$pUq#d6A_8-=bs$1wVbA6W!?1^JXXI zDoT62;@5GW z?sA?pBWSvS&NTdTuecLBkD#$-?g1M%!7E;LAx?FKbUe?_)pC@rphFw4m?&X8- zUBM(v7F1%$PJIhxh{Txq30n)kgz4ozbzWSpo34UNKT=4&BS^E`*fYp$J%O)is-G1S zYZAqhH|bpXuJc~Y@Z%+66pPa6Tw{@;!(+@8S#jxf&1E-5{`n z&S_*CS*WBG;6Z{|$=4z^C#JY~5r3kOwEBg{cKr?zn8a(mV^p@N$DxRO*B zo>^Hmq*Ngb7{9v_=?K`i^BDOo{n7g@ zrUZYxn|opW#+hP-L95rAXhhByPk``4q&R5zlG2exrq*2;&#Y^ak+hv;x{>d*YbYnh zdW{qd$(k=|@t~#1)RU^1FEC32HxIhb!kh>%DaMRZkJSpNSibQJj@FbCRHUqg6zDpk zQo_l}V)UdHm^kR$Un{;{t-b+vnnVPLE^@=I)WH)CPmK4)@`UjV$Y5R^Xu7ft??LoHu zolxtVngeE}(CamBsq6pwey;p&aO5pk=6^jJK*~Wk*Hi}ITTo}3iSda1RIWr;t{z={ z?&>wGH>_Tbw?S*Lj%4A=J1+bLMpxr4KmWbnqEW|Yuyte%Hmask6U4b^SKU@0 zJ@`@33$oMWN-g=-6`C3XEH8!hY-(fyuN}{AOf+K!2(u(Bur{8K{m@0({w)}Z3vlyw z!NvKd=1Z!L=B^H%eh^b4P@-Ma@=F)z-o!V6V1TKC&`V&PrGc4oWI{HCJc=u| zJVD1nP;OyHZY*@nz@}Em=%c^7g-5XwzAZ&FykKf&EN$-# zY1!=#y^P!hV!-)iv~)5&lgHC~VDnpi6DEa>Fg9|KQZdD^`@B)F6=2NyjqY7Aly4PQn6EEZ7Xs zF^HMj`0QCn8CILXc-la^d(tw=3H?D{3(UFXR|5IU)DUNBC7csZB`+INOTea91^qaN zm^z8?O6ab;YxK;zy3+flaM`}2>=w3Ii~2cc&Q1aLi@G*|L4Nk?JuE*A3(%O*qcb~7 zN&7MkXj~YlCBN`l4G>Tc7UQ-a(T~v$QJ-V9qKclRj&;PIt12j}_IiP3tlC*CN$3?! z7d*)d2wjon_O5cQw|XR8-{-Oad889@0H8*CPpc z>pBArZV*ech!r6l4oFwEXVs-rET+PddPYC_XKHQS-Yht2qk+xHwbl9(Ql z`q*x5N;n;TtSutAmB1OOzJWC}={RmSMs7~2j;AlfoG0Ip!l zPtc)m6=|BP4|MGBE|13+4YB=pEAPrz#65Lb7H6^urJq;PK`F(j`BDLsiHAb8x_}1F zMq_eWNtbWPBmSgm?PUfaE(XCV`$>$EP7OrLe1zp6GZZ0~A3{F9tLxk9G~%^&2{{D- z%j>F1rKB`iRKhttiN%e^Xy=3CJ(&3b6nrYwBp*qOz!x)Ujk%G|<>0b+I`KDW1}qRDQuy zaBX+QObBorJZlZWXYB5b%i}J${nczmg2n}sQ7$hy12~p&;4~wkHH={|OS_X10j5LX zY{RvtA`9Jo_wOoq7j=_01*0xI^E!?eft^?>y;E{g$jE_=E}JZ)#ay|5RS20s30QD_ zSEW}Y;Z`p#?JdC^Pyi8 zjV<6tfCtHXRqC4(%Svh$G$25^6l_YSkhZapwUaas%Qw{t{_+$P(_EJ_(B?`InVzXG zv#HaPb&82V?+yU6t$Y*yaEPW0P4P9QmC~}@jB1%VELEtZP`(ww z@)!~5DpRtEiA2sunN$s>$x24^gM=X)3`2)sSB3bm(7q^`T3#m=1Hs;ADD5p_Y6e+T z=>h=d1VxHTH?w#ZSNY?}I*=yqQGkQc} zab?T-xkI_>O&b}HP_`ie5a;K{$|RFfH}xa&QS~1LmGKg=MgIZy#U?Df6o6#(RuTE_ z#dp|xbvbTKIZ4tqgVEJ8lRLT@1|FSm9xkVwhh<%>eKQOUj~H=*=C*1e!axQQS+V7* zTH>ETvecm@i)Jh`q9BVz277R@Xoqw=IJxnsLQkWOTeRugbm(p5t(l`Sd14KFYnVkH zvWWY%nZN@L>N&iyNt<#(`7Vi8aF10IrupC>e4m*?U z9?d0Z!?iRMGp^Sv|Ge*OmA~Fr`6#OnJOVsUf2f|O{Uh+D?;q3B6dcR#FfMH(9Uw-m;K71CBd?bA0$yA=kWNCOL>L!b_UWPWqNWLzz4bB1 z&j6Bw;8Ax_a;yirDE*{=9}UW1QIWHPa6qnHJxr%ZGQ(qOf&AO})eY42t$1=p(iL!k zP!xcJ1}_l_E6>kufqZEW!yp~fl`z`ss{V?7rNTC1+O&kqm%mz=V2n+OS~$V3;EFJb z{OC^9wGju_2Bg3>k#B`68o&%2Vix!DKvm^c&elfpuucdqX;)t*qzFMnp@rHjdP#bP z29!crD4uMU+np<&4c{?S%90ip^XZSWnlnO#m zTrt-@y_W1Z!+|I@-S6!eb>I~0mo{Og=ab1;Wz5fw_Z{`n8si?}pWOJ1{H`cuPbL!Z zwl%y)kLVFI$D7G%yxd^OW~Gf!=RtvlG%c-YX=!=qZi=_2%6HJrL(98|Zi=to8-XZc z2qY6ZC|=rUV&c_M-wK$&J8wpdg1n`-i4`>$cp$)00F+JZ#qEE6xwg<}9i@{N+N6mC z1nHXAq^&V=uV>lmipn7XV8W~2b=(}!9qkb%99Zw}Mrt8!Yq0T7F@n-NG)E2WA?n_y z*%fD9bTcuscK5G0$J>mRhD28KK{gfLVca&#im(lE)GhJbC+ME!Moj@;GGWk~hcc-P z>FJVN;vE+1KEX|EVdk2VXg=jn1%($1<$1p!L>bWK#4asXfr7mI%Pn!=QtgiQaUiQs zAX2bI62D2^$DY%dgnkVqK1g2@wqD}i_VIWuTXcMoc@!E7xZre{2eVLnm>X}x+BW~g z;5TWEm4%0t4$%me(shV2t)(4J%RiG}oO=WJ$O(Ebe^BX7x|^Gp$7S}0((=aDHx}I= zKOS$f{c}*b-|hTdzPOxj_`&;yF2oN3EA>}d$ZqIo-0WN92~5c{KKd?zk{MjG`oY{v zk2vjI#B{3`-0EB7Nqy>Jg~lZ%M^~utWHogr^2N8fBM*uD-Q%~$z1_6Jx!@&^X13i$ zpNRM9@Kf354*mp=ecMVdVN)xugKtrkhtd}dIS$wm>9%>%C#5_J9xzn)n!%m^EU(aV zVU5*>NiWr?$*gs{rKXduEyC88F}!~Z_&_KawL1K_TrnEvE;WuL_IXhU1)05i{EHgEql>jsExOdkp7+Qi53dN@@?&E2`b@Z@0(&RWYau$092&6+QzOsH8k@ z_hh||b?;Bc+wO<~BUTcr<{8W65PH*niEE+`2seAlW@t9foq|BesoCt2XXRWe{V za@@wlzr_`tvp98KymecFQ5M_*>*D!!Ok_ozrGp@04HZ`7bTUY1uDSA`nE zC4s70!F6HsKOHjgnfz-)$i&uq>q3S-H(VF0L*M{6 zd;AUETJO79?<#l1(}Hfd?;Y`^DW9Ufx4lHVitX9!Zu4z#bLZbdxT4#wyMxMt1@|nE zj4G7Bj;^Ap1rR~F&4a0YD z1s~{5Y3256qD!Ql%F0bi7t>N$ctM|JW!=xtSr#=$)i2p1X*RM8OADWxZZTWu@~H{G zFa2DdeqP6??A$BU&r5ZEHECM+qz%^V#uGB*H+=fvc4c#LdVMXQG$l8S^RE?Xsatl{ zd?RO4`>832l)j@p)9>)=B;J8VTAs$n6C|1A zuC8@}%liYQamz8pb#)1L2X}rS=WX+s>oRBata$j6Jf8NR(>LoqHRbL@EBdgwMlN42 z1}gsYbK4}i_`;M3Z?;QeMh*(%XUEFZRBZs|Ci3V^zV{dAQgfBOfWk*cLUXD~obS(( z6}j?-V5(d6SyCB4(M}Vl`${N@U?wUBjN3XK?bYoUy(ANPi&Vp>=+Mflt>?Y5Yj+SM z-Zm{H%3bA`UCC?Vn3sKDPDmRE0k!dRq!QY+A7d&k8S&5fUt8#wU6;;h6}nF!0}m=& zq@QEb&++^8L9}@ROY|pcrm$**VDpXEkK%pk@3g%!8c_q{++N^-lupA+e{POTZY*rI zJ?@s29nK}jFLqe1SieyCGW*IPcx>x`5gJ1G`2npe?cPneUUFrYvtU{I5Y%U>u;cdS zRp%({n;E;X&9)~a)Jgsou5{Fy2UhE6HiHT`NM?~cc;}{{guLyw6C3zH>I`NUQ0Ep_ zR60773(0x>z5CfUo#O!pfY&gQ#?X(3DdeBOP>?^$UQ0oqu&!h8m(1>9FN2M!Y#;CI zte|I};~~YspXGCLu(PtEth2`(o!x6_cwC)XGCniS`-FuGep3TSBlrL1$`23~O~-Fe z1|#NufuW68dVHw^EACOzkW)(MOA>fA1$o8}1sjbk*#y$BA)3sY=v`=X4zdW)jYJrI<9xg(M`GCvpvE~AZtyV zr%Yhiu_QoqF`w?mSZ>!Dl~eJ7f@lF&#{;O zK4YsrV{O&{Zfi?ZZh@3n!-aT;ku$x1M)hO;JKFGDsuB-B*4dWE1`c4*d49L2J!I~8 zmEMpAC%mx~GKWFBmX*Aq=nU^bkh8AFrsWa{dm}NoZnxVPao87R?`e<8L5)7rJthZX zlbQ3Zco42HmV9Qod2fWfYjI+#@M)Gzu$vp3V|HXLB{t~o2-RYCcad}!&xeh`?)N0do7uKdS%C*vv zRn=T+pfzy_n3m!nEqL49>%SCF9s|yljN8l?2XBeIB-6@|euCUh-`l zn8YyNb0bt{BcmfaFH4b8ckNf=$~IY==*%*JEf9M6l_FNM4jZI*OMsn?K((xbpCjH#PH$A_W#J=QzDC&Sa z9gV-gxg;uzYnmh=R8r5~E_*=Fq%c?z0Z@|?*Hz9uSN;ln@g>2oW7*cHKppJQP8V&0 zW0uk!RqC*HCQtnU1MW(FvmDhmVUo>JWixwumYnZF`G?e&l4LyMc0^h;X&5OX;7A@N zndZRa0cso1$Q_26GM|6t7`9nJSXtoxE1_GaIjz zio!n!Ga3DuOu6zyc}4H`DemVRYz#?fx&*fucyM^cHXsQqGrcONOxCzVzaDQlPvc!$ zT;^lada5&39VIZ(QXOq+JepOO>5h`y@O5afLr)3;O)r36QcQu6gG4F*d_W$AmeOSa znfGL4vCITO%TB&f^L_m{@uQvFocYy*XMVM2UfRn7m~wrA>xCjNVa6x_C;)60?;7G8 zjKo|Jaz^r_z&xA5L*}0{=;rYexxcmN`$!VPzlX7ExTQ75(9)W_X+qbW3ATz9{B+nF z1}_QRryh(K1s(1W55?o$XEqe4^awbmcrkGzNCM}DF1uZ~;~X04K$bt?(}94fkq%_J zVKy{?^z+8ZfTS@pUMYTIWCU1SBU3H{ud^X(WH@;Mf=<(J(O2Q7;A=%MBr0kRg4CKsFdK_R0ep zto^Yt3sa>DQy|2W5Y$)@0pHY<$SyBG9M9aHAFX8*<70i_ z1YD8l%45tgssMs!4mhb1obIY5=}63xIzZ*ystj(;mFb363FGO5T9Y@vqUuAyz}-1i zuIO3wo&lMU_;N}JWYE74WN@}j?`YQmcTBp)v6$2`8rg4Tt~JDtssO?{(`#XpBR#so ztS^W@fAc-WG*y98G5uUHNKC5^$t+|TUE{Y~Z+gLRiIkp@-cdn86K_^fP)dq7)%)eV zTI)0YV99KyJr%W&mRhAfa|)tK5CD|gyT$_PB4>#XZK8Zog=_Z}ZLXDEGPP61!h!~A zA$JJHTLV+O*wUG;Y61?_1MGR|SlMp?K&BK%nQHzX^Xr?gjycA6~!%OAiE=-pt zZmHvJSGBH5AHri6CS!Q2-_bz>)f-DIH+HxKK3nKTHGoKF zTKV6X1rsQ^%X>Nelt8NdE2H0BBGC8=#dtdss-H+=hz9nQ*=FCC;v$s4D->Y1{nRgK zJWvFN@i{f#S!lwPKh@`G_T#)D-K^ChTTGJ7KR*N-yXzi}w<1R$0bx7GEDUZZ1_>I( zA4!7AqweRA#=Yay;XFVhAp~nDx%&ORuKXS1m@C}&-{BAsLW6uinsZjCFvDvhZZ_Z)_NAIGZH{Id=~^ip>Mzc4$|fEAi0Dsqx_TZYkJ&-5hBtyyi&`af$lMMAV8c(+w-!3 z$Y@p!*cZbt_+r>_JkpwKfYV_JE46{`Y&@$?%pIOEjqW-cbcf$BWtNUpy_1>y`4(Lc zE^^vrty8PLK4l!)!@wlf;2~e%eZ%(%ptE(+J^Q_Q@>YDAkz2r`eSU6%IF9Y}d{ZiR zS|y^^7fOm4sgUScyK(SPrkK+@JW*6rHPqD^S~+U8{BB{!zmN_c&7Zu6ZQ zj?nW{(pV-Yqw>d8?j=%W1>Iyj^rurO4o#)zP(QABE~C0ScM&0Sv0tlw|5Zg=DK2f> zTIbYCQZZ>hX4|@|HJ%E7OK!#w;&FA(+b+}+k}pVmCZ*X@n-Au*Oz9gb;SNO6KFl%B zwFJuq=eyqw!`pcYY$5m-?vB=v}Tr+H{n! zDVjDPJW1aus!~r=xhq~~At(xwufYx|Ao|ZYg-i?!Q$>8T4Hu`ZCWFApjmr&|C-co% z9w5>bBWlH+w5XC(i?l)uV7I6<^3=J+noH41pVdDW=yBdJcW2PGm z7r^RCDSWNi96pwnEAzRIZ{28$iGXO8TM-Hv*#|t<4_UGROFbHjt7beJX=IiAjmRor z8=eBBqmQg|4WEl5tIRP!8lD0g;3)V9y8c8W;xCU(@o59Cw)FxfQ%cempO^DFCe!Wp zSiD^jxs{K_RU+V5JQlxhaa5eIcFHtfbOQfOT~WSK8|0bw@o*yuT*z%@R&0x2*tRl$ zMsC*wOL=~e@hE@6b^d$2u&!MvTw1ueaK5D^K{T>>A&(&GCMTB%qGYudbThB^6Bt0a zn@Syx*z*$d#UAZQ*84p1T#hnL>4xV=l%k*?+_&&#cE7X5sCNn{lwfE`<^* z3jgGiYo2nC|2yoSLeo{51%sIYK{XS6hw;u@yg0w*g%4lwa_U9DqA~UGbul>Bc;l~{Az?upz zCtDk*0s^rQ7W)mLam$4weBon9jKf53qVm!{A!jx|2Omqj0SbV*aJ7oYz$qm!gslq; z)t+#X{OC9lR^RVd|Aak5jnD^5Zn$||*qFu*hF>1cP9%>!N%gPHJRZWVXXdfFalL}n zPB*QybW;mIU-j&S5j6C>)-&gYHz&*}<27trx0#dn$-y5QWoy@ZcZotEl^#GwSXFv# zzR6q!)qGd#d`B{msUpW=;-;fIBTBf)26eQvWoo0py?H5fm7&n;=6497ZryLCkHFcnez4AL92_`(pzZ=?N&w;SMGp)L{y! zOb*!|uv(!u$>yP0nUt9azEjYPm9$1R?$t&`T0}}NBZGntM>4Dtk1EJt{c|*CzEa5y zf$znd;-DJB*jF4vZ+2pOM}kNC8#01=Yo<59!xT_W%yvx7cAA)~O-xs%ni&<}i?uDu z7SX8KikTs|x(GT;Zo{h?w(gS0*y<#`R0XI#+#R5)#y_%PW z8v!@z6?+{9xJknT*Z+#$3))lgxV&RF{NOF@?X0#k#n7d%h?=Q;A7TY7W4k< zJpVD=ov zYly&=C+)1eFH-Zxf}RM{ESU{eBkDZ5qC>Y9jt~EX04Z;rq%~Bj)_(8otAsjV=3X z^VbKjZuky15jVCFx6Il(TW-S68D!86XCY<`-_7rEvkc#!)bQQ%A8q*3;Xl^!1yUKl zbr!S}UyHH2k*(TX5z^o07{9&4tq7aOZ&L;jvdBkl{I-Cycx|OeAG7^OzyGNCk6!;# z_8){0WjBPC`ecT=k>T*aX+3L)QFBRP*0ap{|8K2lGwuI>wVpBUle%088_nncirJi6 z--G7U%x1Ic6+ENR};rx$9B=x<~OHEveJKc+Z)H7;sOL8MUh1M$^Ws$b2$^`YAe*J8myJn1 z9)q-a-fi(G%H}s5e6MQfY^L=#LNjM`tT*#S4&xom5A}{Ue15NL`edxP*KGT=thdcK zeOT1yF%rhXqEdtn4&i&THoT>?vHiAHRxE5a68mj9LuX-Y5S!m2fVwMQXjnSiWEU#i zWLWQYSx8^E2}rle2rz{Lrq)K@-=V`VpUcf*TJQe(YZ z$vR9%47RvvX`81qHYdIfN3q@Y*jWpW-x$|*ZYZm`k ze2qiAg3Mye*O=NRuVOTfNcF$EuW@KM!_8vT*QnFNWS9K&jHXPiaTxQaJ_L2DL)7FW z1z0gZ@XV!dxk|V9q>$0(W51OhaYog4Bx$CiLXo(r@Po?%#aHtHs<2;0)z_08CJi|P zO##gJV%@e2D#!xoW`ZmmOW?MwTx;8eTpOf&>F*VmnvMRd5*QqJjLkL-Ce)$3zN2eW zeT;0ZYEe}VoAC3!6})SEMesM@7NNfk_VbS4`VYL+dtMoTq><&oX&w{QU>lTMsl(?w^vx~ZF7Sie_CLk-H zd>nq{{ndx#fI%Hrnwnj~Y#HW-^2f=UHLa@)8AGI!1-CL1aNY8*u6cEA+KtuO*i5%0 z(BNHEJ!}fFOh_)f2;F2igO;`m7XcxC|pE3f)N#s1!E0Z0I?)d zcR|DsSPvQtDn^YWsOZ?mjva$FHjLO%5fgifzt4N_ote9^;D+S+fAfEy=)=y;z2}~L z%6r~kHW^&=e|2!p8y#GWt#;F;krUG*(oYy>U}l_K(j#m46EwQXSX*uNC5^nJRpcFc z7_8W8H;pZ1g)HQ_C3?`5kWmmCwaMU0BE4=-;TsuTNn~)iL?O9%#fjzZLRDKw_YsV= zDPp%C9&&aV1TODerb{`5M1NaBNSpQ7=rM0VIU~+1pjSbyi8Og8Ed2vVX+=70Vt=6!UTaP-R?VSEJK) z*BBjSq^7nMI%r9@c&+6KOB6d+Mn_t?g^@h;;x-ps}cshq2g3z^qriAoQ4)i8y zyKMw*Z%$PkLECL3@5qDS))|n-Xo_$kmZoG0p5V<*1{W2~nl!kGToz$#w$6YwwvbT{ z#KtwmW9HT)irXA1cBP8oN;3G6*dD9YC$&L1{uokZ?qGWV>H>SRFjdV|rBh@EHd7sK z1QnD8d9r8VgU<&+KWNImT~fqZ5D&y{0t>ty@d^(-!oB2`;vh|;BB>Qotc@lxv6Kqgk?C%YlxdGD~}Bh|1+;NQ_0^Jc{>x>c10m!Td}>ofq|RQ07i-O10e0Zqh`N!iADuNbi-JSQzAtmP32%*8`_p_!0WZA*&0L3U1s zW=2xA#_Rp8r0QNbR@PdQU|6sDq~6iKH(Ed0CVjvgCrntIt)fhxB^$21>4YWb8mCq< z9B`lhSQN78(?4GI+>1+L9vheK5`D>ayF$T`4dWtOhG30i zGKxup5BFc3ww*;Ttdmf9a@vmdYJzY~JdA4HSyHaSBMvBd0bcbyGd4}cjN~UTAr7b@ z8fz$-o5NT`>SqvSNCGr*gx8|kU`{;YCT%?Cz#zP#(9CYGTC_Q4cc6zE%3KJ_e5c+Gm9YSl!11j4jt1mfD9J>Utcoh;kWCKN7+JUl^ae05(1j&qS z^7xzB7$HC}_oyTrm1L`cE8W=YMcnIV`<0-eBz569=3>2~!aGxSlU+$ApNrKor?pTO zHY;f^N>4&HZB|(cxGgldwNO2hlBzTjR(0f~xB0Y%swS?Ztfi{yMGbqKzl6wNyJj+3 zi6dgNn8;XtSlyIPJ}&-XCFWorX~&7Tn1@{KxRBX()qU-Uxw55d)BHup>!Y`~>(7ys zS(_(Xs-C@B>}YI}EImt89p|5>ccNPz|9e}k3b@#4Qms@)u|x*3JcVXxD@72Ng`HFh z8NvuV41hzPa|zMo7zY7%V4dylBDqo|%j=tpMFN)u#(6KIy4K=pS?1P^rp0i-+vp2_CQ@#VrSq8kUN%OeR8Ryp97 z^^X(d^q71L%Cj|$sU|ljG1Y7=2d-cv3fn55$o|2v)>O}U2Pg&bF_?j#CMx|TYysq(R+4mC6WQQR53 ztORA3NOX0aG6f8=fPLp01z_Ewe3kn4G8fryj^S90!pW{2ENW&+&2=JeSYz%MNfkVd z#M20JR#BZI{K=az`{ zavZ}Tc-$4PIZVr7NnBBo_v~AiinwmG&?)Mi5Ph#{-&VEXNobpdd&fu?z#qHlb0z4m z8Q&!ho{ikWXEB!Cz{??-kVc8vF^j)0?qn`)tIF$a-Y442Wgm>oi+D`P=Mozx%6*`e z%cCS|dpJ`NWp<|FL|Lf(L_univP5((S@l?NdLhvw)EkhtX$nhHI{-ui0Rk6xhb!$m z6Td5S69&aj&H7*pCAGsXFweeUJg`U>k$o_iw?iEhhV4?DpxB@N1knCc4%$~Yg!a`I z+WQ08LHY$7HQ7gRw>iVXc7qA1%g&P80A8D&6e1cFY6hsF!#?qJq|OiV8#p|`Lu?3j z&p>f0hmhVNXM<$#5UeNpv`9N!iCRKBF0oXB^&^OKv1}h-ajd*0AyCUdaokLjqAdl0 zr3A2x@&TIR(_l79d78ybHdWzrOLc9`C7|H?=a6kZk&FgjI)0sSePGpolKnPBm2Ldy zHr$i6aFuL|#hQe26X|IYET}V}3%z-t@UDPWc-+|^7?%j|l*n;Si7?3vFc#&S%%7`N zy8%J?-6I0Z{j!IP;YgxIdKWCoAi}H>5KTygY`{YELzPOmp*Hp~2M>;gxS@iG>M0)Ehy z0s^9~TE>Zk3H;*lw7dYg1tIjgG>=10mp){q96SMY$N>Mc@#x?c0bc^@QZA>rU>`vy z{(G^}z?)EEppQ}?9jUzQ?Z*!hsHW9=nuUlNM2A1-;3C{9!aHqPyZk&yeA z4P)~Ip4D8|LDkr#yFvJP0OHUf%l}Efwwkb%xFyQK6TWTT;uWN@4ZkJ_#4W&bwK$9g zmb~$H#ukbAkH$#ub{#X7%Hy_DR+nJJSuRQvgYbwVH}B@0G>ca4+PPZ@tCy3IUBr4& z)M`nw#NtR4v6Hg-3i!3NBN&^ttp`QJrmz&SX!a=7K|&4$~@DIDi@wP_ASu~j6?$gXWVE8OpG#f&7F zkctMoTDFrU94sz17;HQ>?n!c}gxkG1!Sv-|gOTZMfGk@{{`i-eQ#hh^B}`8^11at; zY@m|D%iXxd^x+=BFiAYrNdh9kUkGdo^9d5~3HGt$6qy6MF6fFBB5;|A6#{<<1ErFy z1SZ5M<+ZG&En!nN5@4mmF-1#3bWl>rhK(q7;=+(x5E2&HnL!9W*sg$e4>-#d$+IL0 zxyW)N?XsV_15rf(7Ttqr!q{uoF!owWmNuKvE{MIhUsu*i+$fE z1ap8j8IRY=vb0bVgebN>OneP3stMBc$PUlRrRzxv=-O;O4HET?kwYXhMM1nyP-JOS z^6!wSP2eh;euvb@(c*3?Zght#Ofb;5vfRNjw`^t!_iRTqlp8ZUxrtZA^!IoTK4WDg7C zA!4~v(8~95 z?-{;m6XaA0^DSA2`3iSSlFj5*Qar#`t}pHphu(}x1!+&YD9|`!cr5(y5YlL#mKt$c zcwy~shtlPUrRgxlb! zRYFjKlHAym;#>z6O!CD=3T$x^v-@wTwGyc%0x!e5(hJWN1Z0T%2R5T|ftlY$wJr^U z(uHR*w{}6H8~nBe!6r=>PY6yQ$lCG_EJPgq$#+4u!i33T@F^E3cxeV%t86+Mn3D(w zrkNJRET`itIXfY?Y$U}@cS$#GbIf!HVQZ1tIProswWO)NDop-lneRni)ubeeYeF!i z`U2`d0keu0@E66@ta6f1QlgFtz?+$_wd#nvhncAT8Gv9|k3q6NQMyjBK4|Ey1SQqL z793G(fauEVLWWYJI|b;a1JJb@d?kO%qLom97g`$A)zX&P2MKprrGfF}Q?AH6X<07G z7Q|g-e184-G0b*taG8;dMgy@b3(97AH&rt^+m&5#=?Nh{6{0~Q(Y8QSzCz|e*dvqGg8cVTE zl3_57V9zZywaM0KE(S<%-Wu+L!BgYqW7L` zvW!!1(L$(`-57y2F34`kAdwEC3T|?xq~aix-DY?Z0D=J#D3D1DFp{C3c72>n$%8(_ z=Db7%h7|_xVJCLBX@xPIiX4y_&j_s`~>yQO)LP6QMgxxD9UCZ2s5d^A*`LZrvcJV~1A*tMoWbx#b z*z;vsI>-OU8EL^lIuIt$Wvvh+7?XwBwzAe%Xq6Ldm&&Q_7oY)~%17HQhuPt?>QKNk zH|EH+h2HQOf6S+SR7JDgg+Z}#auVA1Rl|RseN%<5v@?~A$qin}du>V{Jk%JZz=No| zgNoc-phz`WYu&?ahGxFoO5C;z)QB|)5!6S8mF0!%d$8!2lW>lFho z$@nGjC^R^Qb!)yh4kIq;V{M#gc*&b)bwAa*?n&~R(uyhc4bF_@IStPS?_{^FiC_w< zY3Un~v9I7H66= z+6Kk0?Aaj4G003wtDs|>A2rC8Rch`mDd}xWM<`tv zuIWHoZc!w`Fkz&VNgzDf?n=U*1U>8#);O~ni)k)LL)51%ife6qGST4N{|K8w>Ghoj z2b9~DL4vj&%XWh;bX$N9c12UCR7>Y??-0A4ys+( zvriWUJO>n5-C5FmI%-gCPb!#qPQ{W7;y8?7nN)oUFwSPw4)9ZxVM!$S%ABF85v_zRBq`Iyj$v0wv~N`W^p5) ztCA|KQ3@-~Q*Xvoefd~RB@RHS$g^4cps222Z7T=@wXMJl4u&8}@hHmwxEbCbCDfaY z8h-yxmcX9I)oiR(s0DMZ22W?f2nrL_V;c}p>Q*wEglji!HCg9uf*TZkv1+h)PzIfw z>|ZR6uqPiD#Nbe5tTMw|;+HO=4E6eaOJ;?u}cdQU#>lND%AdQWLC$mS`zTIvXC(3R+ ze}io=3b)-X-$Auj(S3dqb6Fq`uE_oi8U`e^N&H3Kz1ZMx$l=Pb?d~aI5cX^Y*H--uhh@DU!Yf81@&|?}j032BK zX92~+d?}@=Pmm-Dtg+B!ep?mSM|2@yQG9_UNT+eU0JLm&prg~RrET<;vh%{%%GSuS z+}&$g2R8B@K}n#ADfZ}x61$Lfht(B?%rWP{VICK4nv5Y-wn~4)sPafE*A!~=ni%b^ zft{+if^Z8MkmG+zo$z>oP8VXb;GqJL5ltbP=A(hC8DTjTuSd0*8iGXzon`#=Q-Y$B zLsH)MP6a=Bobx+8;5^ZYTD6|MioOI9il%M56mRPlbNufdYqu)$D`xo>Cs0fq3sE0u z1pJf8&E#4w8WbDO_W~>T5V^+HpsBUHot#EDGfVbDEDb2QLrVjk8fD$YRFq9}P0rM; zr2#{TSQ=6`GOs8(QiKQlMx=LT#dmNI>0KcU=#2!qNih%xfZBc%B8oIm7g$A2Pv)8M zTL{)gQ@#?+Cvm)w-TOuWq&Y7ahni>kYF*p6ta9Huva~OLQz_*WOgB8d9B$6qrs*Fs>lwgWp+SGw3E33 zNiy6%A{WYV#3-$65JkZRdI7&JTdOM_N+(1W6b zRw(*dhDh9n~LCdTua9h^sq8ji2AA-;}MI!46~V; zGFWvuFzn4IOC?(_1VyL(i4sN8EamSCnRNYy_2SB5b(UhlL^U6$Yq8Zz;V~{)^{Dje zriLXiD+~<4m~0D7>Lz1;{Z~-SdbXaMJ3^w=gqFR+IpH#@M+%j+M zqK5qjdCS)}IWjD?rl5(%5`neFmY@V-b%nNJV~_w?H&e+X?lHSxhS&gDh{5 zP|)I*d`jDRF6C{(%<8xwrgY^Im&&4Hj_9~gI_9=B{hw_f>4LiKBl18zSXm&=CVZUl zu&~%qFy#)-XO12U7!i&mkT99qkVaO9Sno_ARZlop#wZzf>R6X@aXt##0j}KF(|qSd zwNzCH(6)o9B?P^vhNOl9#1^7bfzevn`&2^qAmGaRF+r9ERpfI+P&(olQVk#=&+Y6C z;)A7yjP;e>87ItpgAC)FXgE{4k26SYf>{hW8f6j^pW}Z8%N1y#?eP*JGSJE)W%%_; zsd>vw`B7(0IbuJ6@MD|AHjsir!qNj_lBWWN9Qs?)`~CbR%y+%@YY81kJcizck*ZWX z0YHFZlucvW^5|5%sea38)jH5$VJzUxn;(a&in7+hS8GbF7{m@b(T8S z4D0|uEo&(Qu!7`N4ocita)1P;OOj;T7E-E%?gNyPstU@phr1~HBynGnQwkAsYj+Q@ z2tyTQLEdmiPgLm0A8H9Oga_w4gXL zH#-pCEOHw1(Mr0jc$Kz-*C8 zm*nkU(9dFj(Y;J{u6(nUuD+pqy56d%StwSsmXj@uJXNGTq|v|yt2D9#*%tw>5Lf`? zo%jr9XBQhy6niCK>nI(|XN~`tdY9@-LX9o%ljF}Z5~BviUIp?2HZsCmNvYV+0Y{RO^3z`&Xsq*2f{fjJfEgXZb6yj?4B{ zGZAZXNixcLPs(WEA?BD3!&Q&HOYqll(QEQZc_IeFhCidM0Ob3Ad0(-7J4Lu8+k+^_ zb6SrW?_W6}Rh;Z&MdWtCF%yp_V%*WvJOv;1n*T?3bImXvW!9=1-&4&~D3qaQuR#O&K3c6$(~l zCE!rO5I*inT|8U+`p%KEpagbW0GGKwaP60mAb^~aWT6@wHL%@^+;UU%vf@q@MvIRQPhb- z1CZzNBtJ06Oj5Jd!Iq(`b&rB8dZ$LW&bWK4C605kxnUnQn2&Y)sB`(4zONd{$4&dH z=bdrpY9~IXAH^bGY%V{FV|1Q*;3##u zbAp-tTh-n<%bfUI)jz1S4b@`-fMJe33lL_5=SMahJYRzapk>w}fom*)oB;D~qM+pn zfgease%{d(Dw_q5H8yP^bzKnka_l+rYimD)+Qob>qet>wxq~O$j;t2O||{+Tlk}nRy$=! zC0Hv54k1#^tyWwXF1uO*$_m=DOoAKD#0Q*)W!Ixvt4YgbvDTntREJ^VE>a`1Sr$CQ z0+G4#IMMN-xixVABlNQI0r{p-*P0dORRxYgU6?@X` za-6!l$KS4V{6*I?1dO{Af$)Ts%h}O=7K-GrqAt^!SID>3v8l<)rf9kvwA~j5G634F zuP=u2_AgwN{V9C7zjlEC@c`~(@PgL!f~sCBaWXu8_1=u4=(3-7Sq3{?Z~urFTa!T|hkhU%SK`@G}-vuTG73Qv)s!PGb74r4nnW|%saVR=o^&d0`f4Ty{ z0PeG$KbP;y@5>n5`8?|L4EItqD&a06`*z*0mBA4#!z)fWUiB!spf5lB$}Ze=JVyEh zEsG@UCvLO=_Dkl=J*$tIt%Dicph`~i6zQH9Gr@UxEy^7%X-ovOP^@434My5 z&ISjfYD*`=9?zdFtLiJwiWAh&h+~-* zC#ovPS!rH8N%iNW@MJZfk4Y!1?f5wJWHrcHl6mB0RqDVGJoh`bijPZwuMXtqm%mp# zI4d*V|DdYkb#J{WtVjC2`pGGVwji|Ih@6U=#dn%htqxyP!}!jQUz@} zoVJLSZ4fM#ZNO4dH6usLi?jG1^-pz!wc65B6@xr7U!10XaGWLPvwHOuADP+eGCua4 zqjn0mI2biZw8^6m+HPgkoYl=oz4@TGz<}6McRF3Ib|7N~ToC=wIC zy#V9zkm-DeTFU;cIm7N~@jSH`zYdruzcLrhQ%AvkWxhX4-6vam*E#BT?~?^&51B?m zmFE5>3(N`U!u(%n{&6lXJ}}G9gB4twDL-EoyUqco-2(N2d*;0vccB_0U^DCj_?ngG zlnYd<_LhPaM>+X{3*=eXs@C`w1NuP5pjb=pwMNK|CFf-xyFgv&IK4CbUZmE$Q|<}k z9Z0MdON($U2QJSnAk)T0<;+C@=$AQ#NPD)!vI(bLsw#ZUq`3`(naOiu&c?sIG(`Uz*W> zQj47%GVA}us}9bBfd4G}9t0h;5xJb%&xp3&7XNt`w-9m1&sL2gP+%{ZX;>4f8UupB z$0J>Q>LyiV%&9jLXV!R9ahP$-PM~DSMbn3@4!Bu1KdccGAI%u}F0=!wJesC5XqbxU zQe@k2wjuj0lUjUl!nC+a9oz*6ZFE}b$55IOcGONt8bY$wvWl#CWf=;?@n+FYfbpL* zkKUxVcXZYs-a_h#yEm)zoiEJ7o7L`|`&VvOXE+y{18$++OJ?CMsxrONhOVr3%Zo+z zZq1vPoY!#pVYE{IpUiW&s9oF#s7bz5wRQfU>9SPq?vAi$8&m-tJ91huopZ8dLK-kd zWJ!bl8juFsX8AU51IaOABNr}HEq@h7tFipLqStCdy3ZI#OE^tiDW=dGk<{Ewo8^e5 z{TFp+pHh~gc)gOZ3H$YiF8=&({3^EG#A6QXtjAZ$;KTs=v3d12HBPUBp&HFxFe{#C z`rNKMA?WROyLvgdx>Tn6*{nT4SDFcT0MDR89Q+w{9r4W6)?QkA>o)sW~#;c7lHwyok5&dg&enaxYCkDG&-cT;>Y2(~FMTZAPC zGo;^!@>-c6MJvtP{oUMuryAC;DU%(}TrbC~8>d%h+UG7d^fzYoU211}I+kB5Ja!{X zg+b6R)g+#NKP61CJbmX~>Uig=Ot*|`@5V2ycg*N})c76g2Tf;1I-c(gSGq`N@vt-D zqkpX7aM;eCy+_UN#G;FAfkzxbnS2=@!MYa|3AcyKf~=C6elIGqv)7n2?^S!Y_(1#X zJ_bXl3TDEaOHa3&PwrLi%j^Sajf15%t?z@rJ!2-`r>aUW?NePQnuKS}3HPbq&bOH* z_o;{Tr^b_go$-L`TmGk=&|vfsiA~Cz#*-V(?GK>P{?jYwD{lYh?epU!#683DKR!QB z7_2XWu#Dh=8eyU24RCIpWLm+)3djAWJi&JkmOp!b@LlY6=Z4=4`Ho6P+VBmX%$W}= zzxtN>RtGyM)?5sI{*C;E?@q@D#meo4CFbJ?RYz~_6KF|%JvDh+I#FqcobR?aJs(n6 zclwlrCg)Kn`Nk)H{xBM#`s5&Nc4BXMI6NXV`K3awE;KTEbdP?n{yKQ^r z;g04HPpR76)2hb3@)C2})2dtREcy`SVx5}ATjXBz zz|*R>v3t~*kb50l;=hi5Glz6g-m^BnpFummDs%NSYPRECkg0wSU3Eu{I4+JnXF2|J zP)vy$~5r-q8DQnNUQ~Zp zkN;iJw~eL4mGPr?p>BVpQYu4_)le~wuT3i=6GCpeyI=H7>Aiy82y+Liq|@lCZ0qS1;s zffs&${gyhLpY?Aev06?Vq#WU-&G~E9Ni7brtP?DFl_!}1|4AbdRL9h zFKumPWnigKT=G~9f)q#crD1d!-g?(nn^XxM}0<|ZHJFA4E zZB_}zwUB*I*#?1T#WvVP2^HC&hRk%8xH&eamKAQ=RIay5sLAWq>&_vW?LJW*oYV+b z0mcDg>}YU;SWpmcqA)!DQ?+aBC7;VOABxRFm<&I&QPBCJ=CM!JJfZ93K2xLJ`t`VJHi8(QDL+I7ggRPTrnnQIX9c}!bO%Bb^~5G z^|@+q?%AN4O%AwhmfdpMY!jj@Y<3J3UgQo97M+)r`176yCZ2{(s)X5Y+AF$Zb{qA% z>QVH>M<^2i*&oH;$y>L2P`x6@~&rjdQ}>^?Oo@hALqd%2bq-c8@HRcD5<&)2H9Pq&r_9mcsWVD{LgQ{7$mYL@wvqdOt` zJ?-dey@(cNPrXVBjuUN~-9#Vsn!Fm>&g#g-^vV3<$?MIkr0$TZckv&#WTRQbJzNvl zuQYN!b6-O5>o}ifS`_MOaTWw`s4+6rXG*j^eyvM&{`j?GK{6}|gzDnVZAzcyI%j6O zmFZ3{&^$h=r zfSY-sN?+s1Do*JTtm4fbBC81Z^s`BH)We+nGb20d5sq`8nV-^6q~2-bGDh#Rac-i zKB}uefen1StKOasY+kGT72W-^#EZ=^V`}wl{|7XzfhDhMOXgsqVVMWIX(L+3y?bcv zBbmSU&@BZ$f8J9s3I>jQcoxB-Uje~|T4{b{?bmz_5FBl@2##wYIMGOhbNLYvU)x|4 z;u}@VQlvazJfx~<3;50|sMEdmY);~m-nxTRa0p7u_(ca@P-70dr?ANUy^lWEo&hV; z=aKn>zWO8QBXe>;eG72cc{}}d*-H+ZLrZSp8(uO$ZKvB?Y9JH^1|s)tqCkEg1;%N4 z^i+v>l7u+Q6u8B8@zXlR{Gqrj)x=!rme@moy}kZSY=vXUyC)dYS`^2dbNlN9irzgF za~$Y#Lw~ScZ_|7SeXVn&xpN1-zq7_9chs$&<4xBcb#>e2SBc#Y8*1`UY==I!!-;+c z%+nfkNYLtJT2%zCph~t8{C3~4(QP~GR&@1bz7bg2He!>KL8D6t*fy;P5SDE_f8K}?C9epdrTUEn3JAv&kHaG92JDA-E>3#Qm@e^=0%OlDe z7L2G1e_n7&&;X$DgZuF+Y zjk#4umy;3Y84zR>#Tj5KC(b0Y;*4C}RGhI517QYNZNNjs8QU<$3w05KMGY@CV|Uf# zrj7w%0H$9hW_9l4{HPEo<2NrlYff<5< zg^CA$1Yl~teL^rL5G9L0xeuIJ2d4{m_o8O3ZPPmZG(_(naICljb8I3@wY3q21Iis7 zJD@M_D{6Rfwrxmn4b{EV>zuTWvbCH@LhvVMEJxJ-LOA&Gt?A|KaiHtp`?`m?Nfro$ zjiNcbfW?8Er0`zBq7?|yA^A__U=ewjJPy4BH?T~>OXk4lU)UYiq8x;hf6*`PPLs2H zn{$Tg-C#hU9|l7)%X~OYr>a*t({P@-8*!`%z+WK_(c-tU{Ewn36Mov%?xs&Gd;A>v z4ZC)z_)MA=yXp0H&qFwhlH(C6A94lm>{^C1MgYq0KD-dixvAG_#3|GYOH7#Er!C+Z zI&|y1QODO#GP>p^+2Z5H)i0 z1LzP%2a6&O;i5?dz3u3(la&(hqMDd`!#p@bPeQ3^T8z{K<#XIfJ-Olv+gVFLJ_>a) z*6TRX#&TR??jNaZntcq^1z|M7#m`6TuANT*jLrki1n4hMRw_M%u~=;Uoc)|5{&OK_c? zdw;Y(6mmOy48T6iTsp=+_~;njJ$=X9v7~*N;h`I8?BQl(^$`KP1}P1QA}f_YEc^(t zjWvn}*v1mw=oqgmO~cu%rpqL!8TwU(5csFy?UcO^CmtWL{Bxg4Z<@61!DdMfq@mo zQ$t1<8mI#%zv;u}i1KhF!yTO+Zxks+$6FZX@e8-c;y2$*cgmeWG(#L6Ie{g9-57w# z%b&o>d+A^0PT-?^>EFWl_L`&*VZ#O5J;q$Q_{s!@`{v90soEYe9=DScnaIHIjhZ6`{=VhF0c|jj6lBH z9K5e?=hF5M`|4V0E4OUhTldxHlzc>%HjpxB+@Gw^bT*i$ChH+>E=V{_>cF zq3OE6?keej_Sc=vh<6Ig3nb==v@p*Xblr<*34M~|#yfmwY_Ss;W~J>E7D?#-B9XZq zY|An!UPLb0KvfRvvd(_QmDaj=vP$DC%$oi6-sldx{Tg)tsQLY`Q31>|xBgnUm*six z*ZMpc!`iP8(7(%J6D!Mzebjl;{B(fMTh*-fZ@_^_gR9J657fsv^UbJ(^q>Q>hu+72 zmo?dddq1`I0KX{9_uKinITxOi2KJ0np;x!0OEzQqCtj0iSx4Ylj_YS-@*Ka!iOFf@ zVveSV)O_2$cp4gpiv7hH`eq)ie>1oda#b>Hwlm4I@sj{Qhs)9^;sm!xXqqfS6I2YC zKh7kl=u-s+ESRE?aPBu>Ptl?vPamQmcb1ut4nbu$&-~#x!MQFs|tsHx(&hTXXFui@}RrpunDFcr%2z7F*U=Vt7AREBo64}WmqtgB6*N5rL zyN^+dkSOsPK#?wvBm79-%E|>6M?f`sC%@GFT};Qr^#Q_@oN{XIx_ToT@8ZgxUil`p>Wd>i)b-OkKkp^MV^^USgIuym4l5qlwS00^z$JxP+b1ngakXXt}FcRJ@=CQ|Pl1L(+)n_mwn#l^E8?-LWx5khL){C^H ziRu*-JDOQIO}A_Leu{`Mn1!HCx|F1JtIdPcP}00;-kJu$d~5#6uia&2+<5tL|Y}Yueg8%M3=sppn3WVTE1-WMTE+ zH;ZX+ErWfB-lXeK zvyGbtjX$#!9ve>Sv+P|`*2*Y1H0Wv#Ab@M91p!96Atj2kQdxD0kCT&Pfnm>Mbqjal z9CO66x{LFUIsaJQuGgA=sj|>`n;f^hpaP$O2H^+-Ln96^2ou&jHTj8o=~$h{^!ClM zx}WgO-H!|O^(Pz`;f5{m+i_OB%B(+5U(@y?2fPN1Arsx_^5@T@A;RDJBC}*V6zeC` ze1<-xbez}?1p~}7r_Qi)%%5lIdCorY-|)-=2vDZ5+me?$*7<7B<(4l`3_Xf=@C zA1?^_#N@Pep|FVoB&{Rmss(84++^KvWB!ksZ%)?lJ8k4xaVkc_C3JF^l$>KMJ)UQJ)$3X_t4^2afWNf> z{{?k=;bsl5w?5v4xZ8Mm!oj2J4}N@UzNps&>i+x}tfR>uDHvh!JJ+ooN6>g6{c{1h zFBDaoooxX3_G_@Cw9LXiZGrnj(VE!?f!JvqY$E*^=Gee-v8H)E73RfGyTme97$fw$ zXr=6rcyf&S$86n27Mf&E;X-$w14I2gbK)F5r31MZWP5GAy`&z9OKJ;*2#W~km@nt( z{hW1XkJI&Z_s&Z*D^J(W@@}fujQz%3-GN)?hq-!J#F0T~pd`5TDs$i&yfuWKz!h-8 z8M-4ox$F$uoo6MzBJpPqPsVH zK%T}N)Q4yNjgBce6Fb4XX4IKN0vvPUnE_||%$fSY9(4}6rRZPsyUJW_0w*gQz2sE$ zF2>1U(TdfXh4&V;DZ$G}VbxJ7bH=>|{arOD)9ozX%_06~ue0@mWp9dr>VG@i_1}mk z&oU35t=o3~u)#G;tV(QdS6arWvN__gYkoRgpHjBEK~r<)Iq1vQnwQSOvUitx;9R|@ zTYtYvo`+Slx4H2=)M9HLr=$)n;@Yf;vh-7{OJybl5ghrDk|{Q?JUo){&ZSdRMN_Hj zQw^-~7^-3*HcZfwMrsy!cOtc@-ojnf%ow@2PfjS3j--h|q{_5#ds0bARM@{Mnr0Jb z0XUL3D|t@>Wkg9zPe2DL?uf`VQzdZ(UhVK}sp4wF3WUF+OPi}sqS#VoJLX`}TVtIS zW+u&t2RJayvQ^+;dzY1Q5h(w{ZpHi{>qSAbkFO*;4d()04l7YMo)37@l_17izT6oCVn z$Cv>}wwz-ReBNGI&9ne0k;094zOLBemX8GRQ5i3OOuh(X#5aG=RZj9va21B6CAk}X z^UszWX8-ebJ2dAfoUc>vn-3c!pNk(e_nZ&k@q+o_eBIgk!RYzAuiV{rzHVa-hjDxrX}Z+ zo~cmE_5d^H@{6EqbIr1g^i#o#NcOa=rCW?v!6dU#;99(7uDn?H37Xc@;(BRXlWm%X zEjNIzFD}++rtJ)iX>qqS}#Sf@my2cqM|VB;`to-R)hU4S^A3-dlN*E zDjh}*6v>EF3Sv&4Yd*e~L9w=)8%QUsZ);+I zM}n(hM+8CfM8gg#BgWt{6f`U_zD)y_I-FzkYn=-Qj>VcbS&6DOFE7!@;sH4PdYy4u z^B-@}#qP-O(Y6XoNmwTYOKC`!DEe1aUIBF&$d|u8N~``^l;4+pN{JBA3j%C8_Rsou zd_n&CXFR7?o7BzvNIuTG8I|Z#bN|hH2k!m-W}W_Zc+d;{Cm*v%Cr_vHJqCOY$>frd zj&OAFPgL`oR9)&0mH!1n*fd_`Qj+0wZ?ZY=7X5poo7dl>&u}J~=}S3F6U^$RcxX(> z9B?b7!d>`~IeD3`gAe?6nI1sfzRUGWPTCjC_0ZyxmU1OWnw@S#oE>RyxDB_jDW>#x zU0Xa&SgNArk!H~C_Flpx4J78xXFoi30msY2XNtcs4JzxnWe;j2B{T2E|IXw5!gu}CTh3=Dw zm2HE!@pr<4Uu~|s)4C}=a;Kip8t!?QE_C>uoYDQ9{2QXs*raGg3yn|St?ToBM2nL* z>G(=%0YsjDQ11kYBpyPLm}7Q( zNDs;qjD&yBlNRa|Ir3JWB^U{|`nreo5Iw0Hji=y^QOVcMhKF!Se83D`soOhmn|)T| zr#I5Pu@Yyf2aJALPjOB+$2_dN9Co{c&&_$FS&R<5DmY!LFW_1c9viY8mNQy_kzzwO zw$NTz}z1mT8N_ zDwBW~(;Q4I*=aFKQ2)Rl81uJBwBH3&eSfBeHHNg8{OJjkjW^E*#Cq{-DDcGfgLJQt z>Yn<0vPg=BlAdc#_3Gkw{R>6wkj+vQmLSls7?TyttGAEFeadkrB~CUoSk0 z6455N9h^otU7Tj4EN9M-1e`WDU^1}r0dqN!4-6>%p~*2~RY(Fd2w{L?AxvMEfo}Y+ zGH#CJ=M2x{pG2=%SKI*{_1 z^>mX_$b3_h2rv1xdFwGvb((FMHLn{y)dz1Q|2yRctb|u6J0qPBPP2-^GN6waxE&?S z;IE2V%Q!csbedfcSr&8Rs|W>twpRmT(A~{L<9vZSbQM1z$v^V7_i85hnwCn>Ym|%MgBTm zc8jO%fTzEx=Y+2-2QP^`d+(D%suoO8Z64$oEaBuCO3@=7f*~J0`y#vv7p$$oCLVq_Wmk;wEN!YV*h%efEyj zc4BZs`8w#1V^~Z=M!9r$x;ODa=ceftRg6P!b=6`(KvZkyjoV4rvfrs zWv;0$Ot;3X6~&tMWaP~i=*(zM(X`ie-@H(>O`bC#uOQC@TTqim6O})pP3tcz)I>ao zfCA{gbSU_-p-|Jbju}{1SdxBC_t&FBP1MTLBZEeX4T)^228C%LsAJg@B!W?J~FrZ5aEeo`f%1Q0rt+}$!Nz79il3?#-YCZ zSG~i(%jHgbL-+o7`&jvg9@BUqP4{^n^``ct+a?sPsoNH`jcnV$?;xFiOQ&1>=vs-L zvre@}3oh$S#qEhM=G3=zm%Y{n^>GA${6{J1#DAND=0MJle4W|F=$r50G83QgYy32td&(@iwmQV#jD?!_E<^D4%Am_cSd;D*qnvg5=?|;+h zV4FSlJ)8-an0wzNsBejBwodOLnx7Ht^y$v$nWxw39UW(6#`!?+>Y`}NnIdk~uNCcYu@}?KU205?|2))1&Al_&D{BozT4f^@@%zmlNY{=Ojg5}?>2%tQ+^q= zuFM)dtjOF)d|ydzm+XRwhX;1OO98Fk=H~Cw{BAV8e$b2B-B%dME^!I3h^1QHfRcgZ zI54@|yz_&;zVTT$iARuGW*+%b5095zz5_!P>%b+=yqS58O#OOBFA|*{eJnb9n%>~; zk$-zs#oeU0+l+SGJKpWX8m0YB*(W4Av4*f$U0v^({8*wqM3c#G<}a?d&?%w1x+QOY z%@+x;CbJ;n&2tLv9>+~br=+#%SLmIXU!k`@4_7EB^HMb-*k1vgLhnK1dCx2Io|IVG zNhRJa;&q-X@gl$(9c)u39Za}qskc*p!chQk(&F2#zpm69kQg|5D^~2ZMcYaLTWbv< zxeTbFCo(`olXl82FN~Sj%e?(CEN)>8%r=RNqVQri(8d@z3RdjTh|rGzL|HXgoViy!fkp@ zmJsHbXYbj?4zHg$GFxuf5( zVFX2QX%R)hk)CYUJ~sCy<9>@OdFhhFT(YZyDy={5nRD%NDE<%`s%= z;6_v$!1>W_ynWq8kC?~Xcr)d5rwXrqi}M0k9xdqzC1}jQpOhvQURBxE>)94`3;sh( z-Q*MIq6%+>JoH9|*R4f3xq@JFg7`O>Hf_o3C!-e&!LDt+{e+jftgUyTJoRl`ZMtnm&x@?%Ioo2T;-)*M%1&)8^6QqhwYlj#Op|K z2wFmy;mXByX)qLA#Oyj3+I4nWXLDe;drmu_(3s(_fT|I7l+lz z2ymBjv~TrrL=e zrHW~nGV$2RnT(S)mRZVDTfJaTL=5tz%XpCyH?LaIfg4%X6TDO)UULm0(Rv(9*@6bD zr|2Qd65Oo|0|opab3Mu<@m)(QVBtf+pB7T$6V6Y`;|NIUh{ERuS!hj zwXmkW&EvJ+iFlX~?&ftPOzVhl-eK*sUZvDr*>uzI-Jwf>y97d(w^Q< zy!OMM-muF04`kbd{KUYF!%4K*Kbf3mhWGLYQBI|kDPk_=PL=}6Bg$A^|X!A?s|eyggw2ox3`hdsrh}pL4hY*1upnY zzXDuZ@+IqI#lZ+Tf9sy#C-X%gZ%^U+ck4%$)86K!e%=wz#?0IOyekrUEq3z=##T|$ zRBeIbYaZo$tZ10yC@La-ZT(=V&@HDzD0E_g_hnX~(f)NGT7f2<7EWIIX|WO=26~@3 z3p1rVv8T=pnNtUOC%gIm>Cof>gzxVl@85nG?|XNSYx?Z!wJNc$r5r3}#_#HNt1bu- zU{Iw}urujA1!k!Clkf{M%9?X`g&Jsc%dVcdHNL*9H=!(3oTCId%9}pDy}m;W{Tu`o zhY)}xI|46gF@%6Z|E!BF1Qa%efI{&ZHrEgF($+vCL=yX|&=Jmg(xQG#PKtz_6ad69 zSb1`iH31`?0H{epXrkh6_9(`sPMR%zj>oZ_P0^jpAKNcDnwPV5 zg7|~-=mgQw3W}4Y=%y6w;4Z_U06qGHu!EsNBik%C!j@tiI?c{PT9JlXjL$-}Qn8VB z42U6AVD#b&1)6y(c>}D7J;y>+0;+^vnoQtSqf8a;5$KOtCMknv?{CC!N$6EL7+KHk zY<^)deuL5c;$ZCC>f=`Ygs_oIHEwpkps-h+44y@nv8PC+Ez2weN5_qP$~p?;O!H9B z?b;IQcDy{3^>?=Gm<<)@VJTkBVl(CPSPaYy%@p*IkaxsoF{~BMD$4h;hDV+WZOyr8 z6E6K17-#I<*SQ!+*&!P?377@j2zwZTd{>qVc$Zaa8^UD>(Mc)z5KP-F80NL=c#VXr z`UTba-S`FmvQ98EHvu?>_>I7<6`Lo9dHXcK;(V7pJadJ)B~qFtyu$R}%^UArVNTi2 z>(?cWNbuuFi*u&P4%sU>xjDxlPvzU=AUJDw^SZWw=Uf{ak)i^r1aA2MAF}ZKutA&AO)aKNvN?SfdAW9gC7$Fh71jKU_pa;OP#Mwh?p@FvsaVo%Q9v1kK zHPrDnYmA`hs4+qeb&T13d0$aEd|ICSj!K$Mk~*wXp=g9xn|We{x0e&ut_NNY`H=y# z*^%)z%g5zL#x?l3oC$G@!`gyC*-)Oe!@7NxH-*6E7NflhZ7z66xK%i^vf_Bm{+GZR z{zdb<(NNsgX6a~e`ml3IvuH8>cup7b&qg*LUJ$=kfdX|o*)a6^13?R)6V{t3!1vPDn~;l}=BAQs;Pi&6cIBchTT5I- z?lphj)4OK)r&cf)L?|cJe)_v4-!BAjz;bcP-(^H4Qby2D9M3HO7qi%v7C`^?X2Gw# z>k0ebVK1)}AN%bEWk1`@+so_I`mMz9V4qjkU7P=Ae%{*~#RTsq`CCSJUYc=LJ1*mUf}1$+d+NXCYi5_$QW`w2ybY>z?VG;{Ck-`TdG! zO3sxB>6+cIT3IPKmsy}ygZ*lqY9+-%T5Yyp&mZGOl8G^z{APhatk@1zZoXLnU~aSi zmAuF{L$b{lAt*S=i)?!D?;S!2*TVh1ilTKC|7u3@uVwpttvr5oi^T@SSS#{lytu#D zX23U3fT8`B`0?~h2PcPnSQKSXi~TnVo{A;m)9^bBj@EKy2LIZ}P5WPa-SV97HZkwQ zSXd1o;`U>XWIM~FwI+4gQF_QaR*2#?+aqWr;V-)1OgO~rUze@)l|WR=zaVmANGs6< zon*uz#0tUruC_kbHjP98$XLy-2YAEt?Df_=*-{^U5A=F9-ba%(M0Ol|o&@u|4XeMU z#m_HH1khRf$Qo}}xhpHPSlislgS-*QRPzt=uG(oK1V%!w_k#GrvPzBQX=!DvB)cg^ zbC91L{MV%ZwZ?Y+b)V1VZ)tdKlvdyL_fSGg;uvF z`>+~+x>uc_a%9`8o8HIb=~08!e`4vQ=FBE7z4Zy0Im0_BKbPpzdr=VZwg3Wl`^siU zL15d)ap+9%cz52D=Czq#bxmVPM3BiU=f4?|RLt^z*KAgxz(|T>u)tqs7SHn1jUq*I z3;h=(#kWrIM&)uI*cyTTPV{y!K9|%m#Y6*=NzAMK|9o2e{=2w7L=wJJEx7@M9Z=Au zXHN3=Yl#v{f-14gNOqdUG*L#G9Z&W;Qdnl6lfC}&(f-}${FA){clesnE2_Q`U29Nd zN&eCcZSg;}@smk|z9aFiNU_+0N|Qs{2|Yx$_czn=cV2qX-`1h>O^&jb2{c`JQP>Ww z{cWlr-0j*<%t$Grm+4sY9R`a&Y^?di@4TmqDa%ykmHPK*#{J%_jJuD0m-+3f-pj7L z{JYH1dhbZ5;EL}^d1H<})vL;^n(gi36wQ?j{%x7|r+Z7{&Nt?fdEOo+cmGoos=E<|XPZNm`iBC1ppXOC(UOV5r({&b^`3t?Too_N{T;Po?$g49`5h7WV zO_bU(tIkXbeafpd!vYDgHc}ixY9o|1RvY2iqVlLZvm~O3;NZ~LMJWSf!_NL5$j@UYD6bfq_v+y=Ad;~?|Y zmEL(aq7o&hji_XQqY;(-_|nX}%G=X@a2+W=yutEWaJ9FKeD1NTyw)6jwKq2CsDpXs zYVX)>>8-ltyi1*7u4t{z@)o5nbDbY>jd!MVy;*mSH;lN~uGe}uGlMnPVhdYls;|SZ zV3|4oI&T-}6LZ^j-Z^{>UgFJlW}AnXcs=ki{%naCiH3^mF-xMf+xYvq{5a&Tm){-7avXIQC{xx16vrXnkZz!Yr z_QvRFqI9>(evg@HH+j^RnrGg-+50Vuzwx(t&$iDfVwOhb;Aa zXEWfTAq;JWa_`k|Dp1bmpadyxz{luW(p&{F=V+n}T9J~e4XcAqNl_iFy#!TkRIsP!Yd{!PLgmQViiey?AC9MQQn z8Rjz69`IJWWXtKf(tDE(FC`Cq&ywlIyz+?m7C%=!>K!0I%OCd^IA3M1dEC2IeolN6 zpRoxUf0g%;OJX7C8E@xES{M}prUs?Gwp7`R9B=n#e*Y|p3E-XkocA_;ANoAVo>wh+ z0bAz;Gkdjn2_J1<^rkxBXXd=&5gK;S8ELFm$${reFM)bo0#&oyWZ1z|a|wa0WQe1e`%6Y$(SW zz+2^n=Xh3lmW!JT&vK1(nYBs>oPk^vLno8Mu$qbg)jK`nq845FCP9E*_{ZMFSY6K+5AL9KJ@xJubSx}!e#e1 z3qSM@$^#Sjw>&WAvhf=?%VjP?s}TjJHVuHOBGm@!mu|BeFpdAH0WfWnjNfi0I5mf& zbHF6799b8KUo5``{?7takc?lR78eI51u&WSKJspD_I}*Q+tnu1NF|c5n8hCxO_L)N z+m!Gr6mUpeA-;OTR^{nVWKz{zgpA~-^wylc-W!<*uP8NW64+Z1E&Iglke^vJ60=Et zNF-)%W~EUoSDN3bU(!663LGMmiO%ZIPrUigIcE5$-a$a$b)R~>9R?x`!eaV z!)IQq{rzz#p3i-OOqb7ik&2rMpLqwXr$}cZj9EN+y1C~wuh&6oggc10br`m}gQ#d7 z=f3RUzwV_F-91Y_2X63E`<{*insvbpxoq1x4t9Cih;sH#;z=xLzifk7O>V3gH$+Kv zl)P>c%%bD8s7K5XP*ezwu>n>1TH z#E1Xx?dx2WY5Nb4`kntUy}$Hc?f4$qTu2&^0UJ3lsF=cM%2qdVlK;rmd_^dzb6@7p zuZck6bM-gg4nlYfzw@T=^=X_a3i3CJ>#w*w!Y5L?#6r6Kiojvh*YTyU-;3ZFk|0;UUh(ddanyt-v3lD(-RUH zkner(_w+})rV^;PNgX&P}r_XQ>GeKFFmMwc{okU4}Cye){Deisz3M*R79$I z1YrOpGCJE`QEu|S<^en5p$T$k^!pSgO{Og*ehw&^e5IlkLlxMiC>}{({whD9D(zyR zbxv_Y2rj00C{spBkMi|QnJ#t>L5L+XvTR$2q_5rS;vF?5zxKO7{(7vt+m3m6lX=&+ zvBZ5B-m2T`Dd*Yd6|pn!mU>Fp?AgAsN0D7px(K=-27e>weFWpOA&(PBZFBf}?|L%$$63lfky&nuN>qVGk(HN3 z2AM+8(!o&>_$oLGILiuD%Q{D7#vv{ZDSi}-j^}8vK7^{3NZIxLF~&(9>d976}zP5X?;G3!?=Q z$_%tcA8Ge4DJRCNoWMy)qqYq>ms4F}3f>JEJ(SC7;MBeTR6x-hBQml>ZW?2V5>|C= zEU6!%AM{`$qBBrR3>`H<5%dT^xI^L!_JF!5B{zsx?G2UFacJB~ag+gYHklCX5Ry)$k@9FvTzAfHLfx`wSArdkFq`Js z%v_;b`wrITT$=H1x2QvHbcDu&Vg|PG*BUE@(j30KvC<3?n)pzv2qVTElMp3l+wjN` zK4Au3Y%HqQVP4r8=vWN;&S545D#tKse2D+%Q-UD*@9Mxsn?rbxw&S9-ei8Q%EF>n=5z5^zKzK?HlTri?Vl3BhG6nmfpQe zL>0((w0iwGy*n#dKbW*6T>mJ&`>)Q5)4h}AFyaI(BaXwUV(ZhuEr}^bAmGa!mRib5V2dQs=9eZpbWrhye+-MbF z)l#`PHf>JaODM5MNO+M}O268dX+oAjC;rBkffIug5bh{rp5){63YDfwAEXMf{-aQN z37FZsNO?RqM5of9(DqKE{F1*|X(#RGXA~=WI1DaUO40BG#ecuyt4fsSnY)FF58J5t zs3jIAMX}oD$4l_)$`QnaBdz-H5AQm<^vaP^Aiy76}ll5p`1RL;CyvS4Fc7?P1L$%8e z*1s#5bzzzWtc}~DH3DuyFhO=Gtf&G2wOWOVf>>7J6LB#dwMA>}b0l=8@UJ@wf|J`> z$%~llSoFj(Mb4FR;t~r;SWl9XA=i@Bjlyv_+Vihx$H0!qEGZz%f;;7GI~+NQ!JXHT z0czOZ#TaUZGLc0K%ChCi5$6B6WTgtqk;SHUW(+MoNKugDLCD-BNu)~2lv14yX@Jk} zBG}1CU6g2S2|5iE3E(~HR8;(~s}hh=Hekc)N-iI#D~)Ool}WYWSXZdb(V2g#31t4I zI%FxulBFDWY+IHh`fS0`XTgy!)^v!`HBfQOhhaFx1a-GVW%xtgl+H1!aX-XO3x`qT z#grQN*{(k-8Rf*7qetpXV5C0BNRKHso|=(jP@n^R^_dEJ$Nqb!aw`sF&Qb>8@cvm! zcNtj3x+?`OOgjk`@i2Bugn|sY(ND}UC8(9j+hHh1nW61M^vjQ7n21o3|n`= zWoFD_7&VEEpZwF_3U;16!u@>!Q;4>Glx~CxeUu+;yOh`maYSF-Si%?dRdf^w-qTmP zp6qj%^ivwwf4~=}og_)slY+^@V1fD|(Fgk}vIN=op>ve>zCY5j{k#4L|L7cupnviM zbU4gWiKH=FE26_+ydNEo@au4pD>L|m=PFrN;F4$*d(H=;>Lwxf^tE%9PV(Zp{NLv) z?R&oQ2LYs>j-vsKw4-71;U5XY!a`H)i}~V z(fF+Y=+C~rGr`Z&6hzNcTFA?G@$Kg+{ZgLz#zhc&;u~Iez7mw@e8UIQaqc(#4mwtU z!)McR-Z%V>^Obz<$!`#t37&_{O><)ZbG}kySu{hbG&z2K(m^zutWQ43PrpFPwtyQ- z)eoY26+M!yPdUg(;hxxT7%drZChPYfMEg(yi(GD$c8TpvZ5uSv2;gBhGSz;X3Q+Kk z7bqcQQT%*?G9=H$K-4_~8mmUPR(~zJwT6!zpft#gJ%N%*;)!JaEk0|2(&%jameJR@ zzouwZqf<M;8C&zjTzGoLpH zAgN6WkfMQZ6m7zqWwi-tk@e80e_=f;n~xfwcRsq`d~~bzsM~y$Z@5rNzBbn8ujYea zS`VVkn)tl2OSQAj1LmV&S&w?nM>ibR)1S;oxA8MBQnDMzKKC#4#@ALGG?Dz)iWUk3S_?@1-R%y;gJH{yi8Xk1bipf^D6gda zkq#7uV6m0|V~|oLy~r00Qd-6&C}=UZWMNC9UP}@c8&}4xQAf)a&;X9EoltUV9HVkd zqA0&3jMzZkqoY7hjWxU#=ITFT@rUgn8|&y`_}^Ws^a${|q;7ALE7-qz z+rdirk{RN{a=IYY{S?|%X|;@p4#TvRq91Zs=zAy9ORL383kE9`tbA~=(mKZczi={t z8={}v%>RqyGXGj(T7&sJVR}p*>V%|w_yjDe)X<^mZ4f#ggCgdiIYj9%Pn*uK9-@>L z!Bto$BdtG0e_}DtrqbEN({VNlXTi)4?n?L!OsKuYKNzC4x>nr&1puVT{6pBeTHnx_ zo}k2i5{iNPhuoshR1Ei>K`{xb?II{<$WW!A&GS#AH`{5x9@~twZFIIFAS%O%4sMcS z9c+zzn7@tH`2@z>s~WAaCfJ&H+t;7Z7)5Ag+8Di_8;?~JocXwitk#m-kb zZImaq@c5rsIX%oL1!#Wp)k=@ZA$L$gb|X6|j;ZV?H`E!2W6@y>I8JR8GcT4x+Uz;R z7NKGd>XjZUapVg;>Xp3_>29M$uBWLh`upi{g`%$I<>kr-?8#WFE9XVuz7_EV(mY-| z7EY@tqqmP$wn)*mYY>AWZH!)hEfgbZHUDg+@-Tj0I|{)y(wltGb;_gC=4j>h%Do7Z ziYDC%=NE6ZQsN%I1WOD4PjW7k%^f~}wgVI$u>!O)L{P9`n^ib%hmZzPPaXeY z@C+VRF2_U(lK-ObS1Lm#oN)u)vW;jE+a;l&f{pKDeC`pU>k?~3>HYd)3B}7T%1Y7hUC3)+T zYwK>$St`fbU~Jrf2Umh_%I*mS0^`%6RlBDqTpvTzfjW@bisV`S9XE0)E4N${Sb>#S@iKUF|!a`3X&}h_jhB z5qxXLTE2Or(y*?UPioCaJ5Eyiy7`g^l(o{*=;#Mwa+7B9ucj%dsk7W+FNzK)0Y4Gx zF^jjT0;QQ19bBd4B!lqWHdE;%;hncg!T22~9eCgTBU@vrb$fLVa{FMsP z7_?TlX)RTz5wzBddjT+P9CFgagchWObb;22;28+E>m^=3Us(oQ^1=B^0d`Ss@U&9q zmf1lBw38=4!$&@^iYGd%vKxGK08;@wl!aEH6x1?m79SHmyZw8m5nubVa#`d< zlpFQIlmRk}OboF_6>WB7(%0D1uOmkzVTsCO(jvBJIX2-alUKn8!skSlM;j1|c?61u zairZqc1sn(bhd!^Td53Bwu1trE1}975rzEISCqoY!6&Kr2+V067RCHYAorUBdD78? za7g6Nu%(3P2t@1;qF=67T08c8a5j<<8FR>K@XAmv9onHLMko?$Fi!Ur-FoaDWxoVCO?*%3 z;>Pjq4?yASJ?#r4N)!|>1r*MpZ)4UguS*Mgn~wn9m-%HMDFrldu<4i_6>~sxP$OsJvlP`y`UU#10ZkM#wG>cE~QTw@K*& z6gp>)e#N5I8PN18{CXPvUMBob~yXsqIaHP^p-K1Os@0f}(=B_X8 zI1(d^C#7iE3&MhGolO=bEWz-K?I7Zd`Hby~V~=ttG!w!c5mnsqI|Mk|l>emKu!jig zJ6>8%5MoFovsQ_a03fY4jrGadNWvhp`(#L}bppN42IDxb=oKW@fsut@Lc#*IFbx4B zb3{-J+Yk^FR2@31(-Kg-*j|g&ZjJ%e0^$M$Rp>1IoE^$N*oV4sBFbv9=GgLy8m50?zde^t5_S(MUjv$C>GY`yJ4fZ z7nYN(*FiqxD>D;WvXD4Nf}Gl90?k0w5qfE(J<1SiJ-=&@A*OgK=TKOu9VqGqex1G# z>QUTM-Lpq|NglV0SMN3SfK%9XU>|te8+^?^qvJ)pej z-Tfo>&EU#X!w7N;`(5>uQjLw@TOUNqV=*6b5Xo)_`1FH@M<4~;d5Jl72=XUox93L= zI#b#lQ8qy5H(4i#70CH{GUJzt!C`II={|IPp1c6G zSyx~M|Kk^t$X@WPa-}5wn@{_<0ZO0cH*}B(Cnyslg7Kgf4pEF{DtwmlpmgFW=uY$F zgHkw@`~OF|<$_)!YZK87ZLv|C8!)3NHk;G^I^B-GZA~z{4eG8FL)+QlO^T!N?oP!z>oLgb~Ro68az7bPTEF*p4>v zIG>WIK8b>$MGe)<&9w{^bt=Bs=3mSydbFdkf!p{L6t)Amj%^6(*698 zpxOoXd&)v;TO2AvYQvc0?C&57G%wP4%s0wSn{59k@u6 zP`rQnmg25Ja8E}yh_;T%P1xHtsSGdozTnSRdUC9l~70{=voqX zALUijmwTL9$RcJC9icoggklKM7&CTs+~*0!D4G$9L6NEy%Rqu9OpslEcQe&T@l6w( zsgt}PuBXtajOJ=#{U=|Quux&ag4w-L#8m*ezeO)fRiM7@kypPQ9apSACL!)AuTB&$m;X zN7LGaBK*#k%^D*819T zV@rDi*sMKJ+hIIjvK+<}=;My1o%r^J&ZX^i7=z^-OWUCaonnVE22~A*aalk0P)u`k zd@eD?Sl9(eoTCnqP(|dGbJfSGkn_P0v=V-AfAz_jI_DI?63XCq%3pGM&|BmpDF6&R zUu-uU<3`77`5NE^w8R>w0%z0IV!R2)DFh{yXdtAk(8X#_LC29Ubd?q8*FWpb2r#dNg?Bi8gqQ_F}XuCaAS?C1x8Cf@anwYNHr8`mI($^FOwr z`P=`)f+qASD;dTJUlPeM&_OXM;zlh8sTaivRbu$%pab!<=tR{RN9fHGTwX`2p5?isFz zC3GNlgu0MA@bU5mUNRBFWh+J^p+%|s7u1$qx6M(F;bZ8B)gHq(BPUTO@|F$KA4Yw;bW)o>wz@)hM+BTde#!O8wAx zNq~Lpmdp8?rS1$|J8!AGX*B72wNz?40o(eBs=*9~?9MI(+>7R1Y@glmK0fFMb&`Jw z(18jehCF=S5_dX3a)a93edtYz|Mxy$4vFk%-Kgr`m)>)+F?`C6>S#p%9llY0S&}A2 zU%W~E!C`xLy73bNA-VDSr(@K1p>@AtrNF?Ze{yT4Zi`rCP zJ(u^tMLknmADw=Sx=Kcg!1KncXI~Vz%Q=bdeMMEolU|VKdOR>z?bL#LM(H4;XH-K{ z^o+2{?Abc97J7K;Eovj`-*vY`;rWZdb-Q{1UlWG|4`op+&=h+nv#T{TgIvV zP<=Ukk2;&G9lkkUZG*!<$E(-3b`FKsCVie#?8WCPol$(=7yCSaXo3Nl=mgb~I&uO` z&4}$H3S`T3S!Cv{6u+?mvtu@-<7j?^%>FdX>pVvY$ zfICN-5GkNR@-9;$dwk5Vo2rT(rIt)p+o4v-cT?40Bir{7at7r-AO=5}=lyWL0xCTI z*@7OV$o=9r$qG0V1(Wncdpz_{JY^PE`i1W4+r-75hG>A_wy_ku*{np<_(z}ho+$!e z>=hCJpd)g!u5E7!pQ1A#gmuyyiOVq(SFIxv{m0j>k%*J{k%&t)5?76pIPpPpjzp?4 zlK2N5BdN>xCS>20Rce-W))xYJpcLqVzD4{Hc^331x#Ap@)fKV@qDCk)kaGF@kVs0A zEkROA;9Pl}r$4N=Z=P67{Q8I0RsTQ0kMDm(EtWU!;d#^5?0PHq5{`x8bqKn&fJ?{q zv!|=wgT>@7E!S7Z--e$P4-zrr&rVklQ~u|o8ES6CfPZf+2?PHPic2d1Dr*hYL6u=+ zdI@zT6LtCm&#(f15g6ZxW|i`Ta4`_K$SQ~|P$Kj;@nAnFJUBx@JgyRZg1HyzNZ6^1 zHtdL(s_JOnvCdEwMs#(%vFuz_)(hvt*8oCDHEtm%VDu(XNeyjkk`a@9fp>n!!M`dgqel4B8DZSJEMsFc&Hef*lo)V9r5 z?K7Z2x5TVikFK>JUAd31eoT!7aE0nUxO80T{kYnz!58~H6=#zR9Gn;lr_}87eK20_ z<4Yb_PnTEke!YKtjTFZYZU(nD!NCJk4s}Pmi7-Ugr&kGwB2)~TZT!!wy|ME-j`O+vt|!%- zu_MOMPpYXBbc^Vbr_@lA{MJMsUaYp0m+s^P7pq-;Z=vXmTMu%5nVKG5wpg7ZnU_k% zC4SiwHA9{;k>9)oI{bFNWC^esZR}qHs`}Q%Xx>t_p+pzDEK@I#t0wZQW$=PQlhK}o zeDOo{%;(fCvi~}SIY948X4sbC1$BYgsS=$R`(9!o&V4WO;}^c`1$CM8rMWMv+uW0+ z09Tnm%&S+Z4;{CO{x7L{^3?VG`j^ymr3ioHCH0vAx)E3|$sWY{@#kMuv-s9ks=}wg ztln&W%!M9mQMEJP=o?k9JKk5KUqsd4Bx!AQ^DF8z?!2k6WE0iH7_y&*nun!;1rV$IOB)W@+J!2|D$>^pOqVZr8XBXf7 zhT7EDMiAY8glE60HumEC`WL+Gn`+ZsZ>oq$F)MLl1m;fxXV*en14#bRJvU)dO_jlbZ~?1(i!d!x?G@zjb#~2!*PNaM9dRRUjr~&! z(E}jlsB1bvE~o!>6u${36}c|RHDYOSa|L-g@L;~Y(mbw`BXmJGHxzN}|J;bsDzVf* z1~goHK!17$9srdOh+dLm!N|bI9Ge|3AK49*0`U|Cz@EmTFzBX>9mPRzii`ik%^;5d z!7-0IiwyrVxfHS?PB9k1p1-hKZIM6N_zgM2#omBvmHIo_8VPJVG-4309;NzN=ELhy4+A=c z@xaR111n_`!)#T>sfiumVbvHp^bUO!1YfKp>`aK^LxA8P>MW1{cZ{0aj4TrrvMnqV zVk-+W+0bqfF~f+57vG`=+pV7K#@fTAZMHFU6lg*+u`e1;l1g>nCDW2}* z==X1{UMUDNqQppufz9UM2tF0$zIW8S?DZ#ViH7cHjlIcY{jGRMEr`E)=l!f9PkL7^ zXl<-0;Do5wY8~0|(a~TEwll$B7|~O)uK3V*)fT7y00o@zW4C$SPe-4% zXnfY9fnCB}G;rn^3x~?Gy#21)wanhJXYXfXfyH+05ev*K78qcH;Sq2E8x%L##M{58 z?h=MFQ6h{CWkTR4s1xb63}vUSGweZEtW(>jEG%)RkOd*g7?)bDS!z~Lm#lvH}SO}sKwZ4{9hlam)f&}6vrd{?r%UcQC|rp zQ`?|6P4^MWv5M1e5kfOqcn~tiWyu%(}mppQey^xBORd>t`ZzDdO;E) zwSec8$?bTT^=e6Ta}qq(gu$3nbHY5Bu&VWHztanWw5|@IT;h;t95V1l`iQYH<*)@Z68ohMv+2HkWt(NPW7NktbOrZxw%24Ef3p>b3Rp_Bf(Tw2K2R z7jH0)0Q$oQwF3eQ^ERs4IJDoWzLIJ2d!Nnd-C*?YP3o1QDloG^;MGhS8ERB_rP3YG z@V&hHD+nOfn-H_;BLdkdtS2MyXhBSb4hLTt=tU6pFi6BLXMBoAC z^n)HjB2WeMPQ{&6;@$Xzwg3@-P_-liaTCRB9CxvsP6e%Gk_bG4lA(Da5g5&iMh!)k z-op$Ut-7hF*BESTm~j{gn8TgMZYJ(ZxBD9G>@4sskdP6$_$#gsD#yvcane=rGDKbq zMvaSy=oCDV-X+NblO7}qN5Fv;a)?7D2pm9vk~We60uUp5p3nVQZII)K`bL?k zsqh-nx)4=Qg;2q-|5VL815XOt_ay-nWmDYcxPscIu5e1wLkFt?Ks&jXMv6XB8%B~K zk%VCP(_OvMO0wBG0w75!s5*{1S|-ECu#S>YP;w9fv}N**7%k}ON+RocE|`X6O$lX; zLCuAPf=C`nC{p(bh6v8OMW*e(>Ff(rMA;^e7O_3HgaU>IgtH_R^EBu!a0kQM0==@b zGB`SvLU8pEguri8$*&L4x`PohN$rdYHl!C4TZjf2(u$bNY%numj7L9m>vX9j2v zp`(QTArD^hV>OBS6cd?hOsh%=k!rx{FystW;6$k$Ptea(fe(_O7ksMbwj5YSogz#f zNQen33c^sCJeceacA;;qB@kMmQNswy-CHzu@AY6i2NrzIHRL@9oK^%NWyp=gNDZgyc9?ssX)6xJX=%- zwquRZVh+%Ogtq_yB!yvJ#KfV@sofStm;e|yUcfD4>S7k^1OTWhz;P!G>m)cC*cQ$Q zDqxV*y|5r;c*N*42%ETkHe>_znLqy-3>yLd`sZqPq^@sZr4n!mj~#*~5JF-?u*8>e za~o<33#b##6f=)Wx4=Q7c9-5z0-F^~FJ!cAImM ziw8azbpE(KcVV2sYm$3yOiqT(OP|fNP__ofriPOQ#*(NT!&q!eWcS~Mh=~XW$|e~o zn{<4XJ(}`0EC_A5QcCMioPDU6O!%4T|>4P zr-p2gCoS0?&qB5*{{XLgE|77VQ<`@ed_oC1q2kj*1zwb-+3}q}q zBUK;^vibQZU#f-D)JMO9BYG;&{7N0w*bp5)4N94or2w@OZA*baN`eD+qW~fcNuc#M zHJ|U=rY?#Qh1CcoLMA}5BcL{griiRQggg)T8kOUNv3)40byNTZL;#>XMpy&qQHyWvn@B4u4;yGfp1>!+06iqN7D|gaV$M8z1k?cpwOGnO8@Us>1)+wHpA@u8%pct%zV9~pJ`EnDAiht=5QFb~d7p2<_fv?*V$l=JjxA(cdhY6E`fjo0 z#9B)Vx@pN-Z|f%0uh9Ytnh_`pWcsL^>0>)4!Sp>;kI!M15E3}bzJTYDgd=pQN`eL` zoQA_TRBw)n;M<_8b~Q~BeuLpd{B?yQLTH{X12PbvtIgwlakM!8ain!BcyAaY1hivf zyJ>Ln=)YhRAioE}7q*~>=-fIPY!GTgus-!yh-N@ZtQ7o3KW20PcC~4Xvy9PTo(wYt z?wl30dQZUs*{}t`3~}LhwM$>L4B12Aj@Lj^3wMZGda2p9f>ArEv`1g-;D3Vs(IoM0 z+tr?Z*8yhGEr@*+no$euflBD^dYKj-enYN~!21(xT%699^?a1Lw>cKR!f*UeEyb{p z(V{UPG&-ABGx2ZpJeg_^2;@rQ-+iYx=}tH-2Jd5?DecJ(b&ITwy3{*_uM&1cg0aMi z49IgNQJ}SI$aZl}MNX z&=kc?lUyyZ1VTx^iB8o(Ez`zk+%iNVJlD|{HPGGpcq}g*5DgIE)5PE`p$|B&52WIt zknwzMvJ?al1HAL)ppfOMEkH#q@=!`p!48nvUqZ(6CYhQMk!P5oaD9XKKv6d2Zal$) zDxbAeJuN^+UQ?*%-|bY3PluTp0yH&Y3YW-i1yxCfoe0a*g##{tBw}%TNV-n9rLHW3 zB!O%s1Z{v!4b~SRqZN!k=h2=jL8erQd%@q|E;TBm#C zuH#KNIvJCv#B@_9`H)>|a&vQ1(Y@@r?z!T+$EWU68#fi$_dnX5NUS^g;ebFlkVPu! zKo~Bjn^q`jx|nJ&0Bhn96TLS83w$L3L=w|&AQa7V48WrJFx45ZIU>G&x9XEp`0m~6 z%}1{U0Wp669@S6mKz!IV4T~;;7uE}A#H3L?&=tL|DUFH+UQEFqElEr}EtViGBSSQ05t4T%&_S`sO)nG$JGv}9PD z#RE00&9%sMHzN|Fhae>KQ%svwDjgUBBvAb-46O^!;DeUnpqujsL(?p z3P_s~XTS!%{JWasrgj5|)rX`C{={J;1Zvx1b(QB5xLf$@pX+7t<^NTmlCI+e{!$0y zJJ0{6R(HfrAIvf2v?Cuw5cvsUM!>3iWpV~^+-dE_X4zg4o+V+%iuvRt>X75XYeo|G zrhnsy8Bx|z>NDdIyMwwoN@Aa*aOzny>!rc}8BXcsW_lYeyI=)Ui|5F!M1Ju%zEK8g z#nZpbY;?+XWb=TwJBWYaXC3%rH*1RiZ*;Tf>CXPqL&@k`vWFF9RX-tO-#fcx3S^%K0OhxP00e9PhNaK>dNWWN@1e&2c66~}`FzrxEV(s=fJSrfz;vLtp~=NM&8ALpxL167+~mU*pg3B3L}6X% z^B_N09v2V;RQB9)``C@K&T{2F{BFit&~X8yKHtN?XRJ-aUwTYqhe39DJvKRI#ZHJw zRAPycqATz9&w9tFk@M48LG6*830WLOBxfLlO$Uvr&R{p7`ZLR9(};#=vWE}_-KIVp zsJ{UlE=dFVbvdj9Ncqz_ zMiX0d*iy{QJ-Ms`hXc8++&>8RQ&4AAGLCl0W7kW#{!Bymx^zi&L?h;wj{Cv;8nbh} zun!_~V{2p3i)#Mg#%vf~9}>j6O06Cz3q(U4(_wx;JR>xcr6IOJM1!o9WH&{F=m*r6 zd~%qLawA5B&l%{?k}9IC2}_c&{N*s3hB0$7Pb2B6MB9@6*E zcEkC2h*vgepVh0eE&@nNx~2uIbWDUZTQ;GI@KMZe^8(hAx_^EF>(+ktM8Hk22M>#s zqtg#?B#7C_MUYsxKnUtH2o0hSQxOP?YZS<}dLn<{Y~t4fc70^V3<(e-L#$3)v3)`t zoay2su9(XferG%&6WI_2IUbFFXR~-mT&(3C)GLO0TIccah<)5}u`#}0%S$NpK`+gm z!KGF#Ju;JCuH`W(ne^DK__nu*{)mgUyh9a3@XllL@4O@45f_hsr->`cc=?xH6E#fN$?>X-Bc(Diz@DaYRi1n8q=3R?f zUuttoF$+qAqR$qyMsh?5s}c#TU{3f~cSuojti&lk0fr zcC1p}HXa)R5gsR}B?t6v{QY+99O+Y@-JYFm0KiQEz&gR`DE)~zyb~1oVSxgt1}N|f zfx>zT4i(&rfdoGckcj8tnX?;@2Tg0}4^&A6aqy0y@Vdg=1!%I$*yszEyJ1H;I}Iky zpsPTJ!)!Sz%Q(&MAg?n|SqFKwd79ioUMWu5EyRf7OHYNh#rFHaRtyaOstkzn1wUNI z3T>rJ+(4vN9`D})n7M#o+ktiU{83-_^F0);I9@m zQV@6kb6b|5N1OG5W{LPU@c@~7JiSuy18G^Q zre|4rw+mBI^%9G#OfDq2Gi)3W>1LrYT>G#{5Vs1#L9B%e7DL$m6kj){0Kp1ASTclJ zPG2>hpn@BEWkhD<+{ghUl1SDj;XgygUGi-s#vZ^Tv`Qwlf~iV;6}p8_cl9Ql6j~Jq zWsCqkO$y0mPXHd#^2eUAz&+DA?1yO?Be$c|Y?A>0wv1(U!7G-9*={DmMkpW-Rw8(j zu@fn|q+kLhOxA%b!6Z`L-Q7xAOEPPupt}NWvcMg9MT0m4>SP;dz#L|r0dd64`Cu)F zupE|`hSCs+K$V^VxHQ%h@S=~1<&xAdtv|JeU&eZo^>Na<7%=n=T*K-}>H{4af@O&` zNA4#KnRq;n-4LK&0W89?NuS2!8RUiV@OL}2(^1;V+l93iWB|-f2-}!AXY43`{K7Bp z!rH_#iJT!>327;gh%A~TVN`CXS3+uq^xlq)lZEt$LJkne1lv4W#C!s6a7lDoswgLY z5IDsOX(E!A0^%Z*Ac$Zy)&jv;z-Evc3fjal$&P+0FeO6RA~43sdv;~v$R}{70Y?E_ zvuvkGN<)&GF5x|xDEpGR0mpuX`TZ$*j~b+q%IODi&icXJj%R)NAT0yXXir!O3a&5= zY7k&(Q9+k2a;1j-XbP=dNG4i%Pf_HTx}3tl?aJyS@)IM2y5hmrh%mYVy$oXt}L4t15rJFmuGC+=~EfFUO3SdO?Tdbuj=l*$Q3curct(anTi_Q!^CCFMXtsjdlnI*%QRt7+sK8B% zj-{TVrl5Yq=rVr8=`1?{YSyo_t3Smf@v75VW=5q1hp_O@W`qQxmCp(AmriGeIpPl4 zBy_nq&{GCgHhmNPkJGWRKjodyV2#qhq|X4~Gcb@T**$;`K3;JKD>?3pUx~LZ9!>$C z4r*jZc%t(LF~TQe%p2b_B0O;objghH#1D&W{Z z$~P*d$UC4}DYzQw3`J#94g^Y;oB@R#v2^BBkSpjZNaA8apjSaWwD5jP*+tZ1KVnxA zxGcybj+MV3)>YOoAie-h0xBaC1dq5V{4zsWIp9U5z|aUQ$}u`Xaan|lgaH76kO+x> ziD+3|fJk_3P)1H6EE58yup0wK%pviQb(Y!IhvcD=D83?rG*HYe#qWxkSrMm8(VMhN zVllJ$W!rN*cVkaLYy6@c^Gfpg5BaxevK%O~f1Js#gDH_;)19r2C82b!EeWNIm4woj zXuDjlSN$le0C?h(P$02T5{jp0!2tfyz) zJQRvZwyHIV;&I4H3DU(toNR5RV}j&a#XsVA!tJV8ORw_09&DR5nE&2`HL88Q_O4lp zj~AAqM8+#S#tUL(jMrgjwDWF6%9WXS^_vgs&+>WW z^Vm9R2H$-idq$oBl6pQHlQ98P2q}(6HUTC^Uoe|3;@KClPQl?I7_ii`cPLsMWW(ESbA@@Sqkw1x+U&yYM?1qJx?fHvX0rsE&>LPYp{XgGA8`Tt$GQf|%X&9*F&kd^N^^>w!(Pg* z>_jC0Uiv^=rvz-2^(O;LBzrz zIuOX?%?7btX?j#2#M($?5m+;n1^J9i**^Q(Mo_b&QwK9HN$2pUL)h>J|Jq8jS}UC< z5}^_0_$26kK6{nV9l~xiTM6+_L)m@ik6-Q98j{k6)*42?9mXb5lOu++p7w3gF}lrh z+sC&JXW8|CY8lkT*8n+<=A3~hejoK;0n?oQB0{u}@V7^>OHog*@s;c=+nSL?p%_q= zVBEcmwWI#%SFyWAzpi4F?e}SvTqFS8d^P)reOaiI1gL2JYgj+g-D}yS==Go1vPLP- zw8ktGN8{lN))tH8q6+kB9rui6MFxY%M#u(Fg6s*N1pNUL3kjm8u0f}UZZ5V=HrP9^ zfxXLy+JPSidlwJXVDAoE6H=YZxH>WiL?e!v8l@bBQ{#h?Sn$PM8O2(qEHA|vhiku)OrqM1iPCNV}A z#AAwvp@ve~hY|%1m_L)*hrD_WyV5&nj)WS){##fp@3ZshwDT>jt^DXde#0$n0La7I zTUg7C`I9`5gk4_!=XnzPi}CA=qw=k+T9SU@Pu<4WWS|+6I6T2LXm+%8lJuYX*s<&m z8^tpS^ZyzPzrbMr=k2T!@HgiUHW$BMy@QoX>!SPaV9g}yL9X4&21*}9EAE8Bo`~e1 zcd=Gkp!2BF3JM^BO;$E%zA@>nlc;SBP*T^ z8sZe%@WYaSacV3OJW8krJ032X;xE6!pOV=&CIxvZm4$04@ws zRhZ?#GyKj8Y?^=jyJU$@u3&dZ>)*>3OUCjBA{xsZFT{uvepo~arxwh?(T(MeYbH_R z-+8?8%iBqYgb-x8Y24^comA+Oi7e>s5XgJN9WtJEbf|tLh6N|p9ZSs(VttbG5s#o| z&rF>HH;+Qkj5_ht(X+pSpRPb>ET)hPqyq#fhKne@M6!UmVxlW85whdB^oC?m<9|$I zxon+*%9L{m#dhr)-fS`pUS0F52m1tL%BTS-;I33xz$HTI>-Zu*K`n^N00@La)3E2F zaj}R*F$ii2A6qgR{4t4dpUfUcQufVL*poK>A%iYQUS1OjJKgUGr8gZ8Q2q^;yu-dC zWzd2SUL>Td|ITVN?0M2iXG% zvM!kh*W^_G@HBQ44&Ev@FvkeF?&CtD7IuGeQMff$IcTi_aj^a?XSwj-jkBifPjzzB zO$r&%`AEDgqq4+1RiNk^-&e&-B2{}lj1&yH++8l0>;L%*vQlMGpYNt=M29qwD~#|_ zik&oisOO$-WJAa>j|g)U(KMJ1-ZCGr`7p9Ez#BFht+_}qM2C#F!g4wrKwL=#I+1zX zrN6VEFL{V%pE2)Ubexrt4Z-m?m8t-SHpPSJDl7}A**6QD9k@siE770&8jA$~1LfQg zvnF!Y9-jX&yDTzkt>~QW!Z0LjAcbd>j^r@{h}ThY*tplx_F6jo{SXN@lCHqXp@`H= zkG>l6d$i0cQsF^m9;>?6GK>TkSc2FnTlU<17}9_XaVmGCHMjw)6s7n)FiCOZS7*+nxU%WYf3@1Mz9b(>(!q06O5;PB9= z6o=eS3)N7v#r{(3Y~t+0avD#m3ix z%pf?zhz)Spn%^8}DmBb|Ew>z15IoLQD%#C}Hz=@(pFW!v$NK9OM-uXwl8z>pHLUJ& z{RQui_4hc<)<3$xLidxNVAH9*4u66T^R4+4>Flg0|LX}>-@oQV&@h^ffvCX)w^>hU zTwnl(#6UzBo>l}+>r>{^b5I!v^2KvtqqvNJJBNk(LiBg(X0+3z;>;WJdu6sYJsFE+})>|b&B=PDcaS7 zK1a{S(b#hmSUDn*cA?=3D2OE=gW%DT4Yk+{g!lgHc~0AEw!@Ze+g7tITQUlZ9NU&$ zmu=Nq_P2&%RlpNO&F=f(Hmn+De}!Qcc8Y9a$Bo|hBpWZKR;3oWTpgsdp*T(9N%L8! z+{$NV(z3~&>eeU86?!!#F;lwzKt5#z zet_8vq*{27sZI+dJ{Wx{4ghzl3ob}H`h+KW@zd;#!pTp9C0TF4i4gw=?%Homdy>z3 znw9vz{{b#DtnH0Yv;OR|9AR<=Eq4>y{+5?K!!l#$@)MfUqia-QN{^~1%&VVa$Cy&F zd~2OjSafXPfY-8>)5V&$a=HeChh-}_rj#xMtmc&RvIXp7q9fB5uvSuU{@MZr7j2II zYXN&&k~Z^Mi`Wq95dUov`@PX-iTuHc0zxprNXS-T5R}6TmAc5~%H``;utLM6hp95O z2Po^%9%`BZgf+m>9&ppr9vs#H@ql5{6A#od={ad!4LVYXNly@?2VP>GjsAh>|1Skb zHL8Ptm=u_+&$0`1p>JR_i)+;zwJU|9_@)tt%(toieOB8#X zx`*$6mOUd?@o7tdUlw80QyoOfXYDByu!s_6<6r?;4zBb#2UkWgJ?L8!POs_U627oZ zs)(H#Ous9bK^3v%++99rMQr%@4F8WKRMI9>R6oY@cO_XkO&4q8w0O|K=%9EI=c4*d zK#w4E4Ty~c23u{gH9mhSTL^iw-!j%C`%e@i{1d5j0G&Psg>eAADoDG(@FmOG6{PlQ z&$0CMZ8k7b$&Ip}aHGR>?CgxyhK#6?jF^mk6sE6un?Lj%!fGbG%|CdKjXHC7Dz)zx z$?Zg2_QDGbvtNl+56+zcocUd(dO{Rr`l4@4y97uY?(34chltkOm$Ptq`GZtwkStrN zW+y8R<&pF=5CwGU_2uj|8Iyf@IdoKemODCT`M9<8j-F+>F^@aT7pM6N%uc7KqwYBz z&SJ}7kkO-=5jccB%c49bdHLvK%~_^v5SHR87hR+;8`brUy65;D+(x|M1=clZ!mA!o zBESa*Ju>m(2ywb8t%%4AEL4PbBV3AT155?%q^Yp@HYHOb=n%U7AogUZyGe*K{OARi zjRK1J09G04TQ>@eqFdkbEfG~x%r1sENnbZjY~+q8C>k6^>&PTPBMyb#mqaBQWU73T zfucwhOy*GXG4c6wFhq?x^?+gcnvvDy%Ed4S<2DrjQ7^LWfus$1MbW1cvi5r|P1dWg zc@@%UQ(O^R9yD2_7Lw2$aMjjgg%S%~6zaGS>Nug-UcL>j3+)KilL*38l-to)LOJ?J z-GwUS1%r%h61@VfNyB%e$*y?do&5koM;eI;vC=oZjQ*ACQ-VS<@{(jwLP{6`3P(!c zyO7NOe^U;#C0Wc*3Jf|Z`!eEX)>XQh&wH6&W?RWb-gj#IK%UPBexJ94@?h38wn#&Xon zQh-!RkZ6pOZH^9j4c298MfAujCcANzSF;B0SfYT_K$gIEx)fxI@bOFDW(ScI&}%K5 z>ezGL5l;X;!=VJ!6^20~tO>fH6b5-ir5abDFABjDllO%2XTDpwly$KWWWKxvA>F!5 zq)O2v3$dIUppYy@o`Lw`$`Y)-3a=i4&t(a}?p?M)dM4WSJ%(^hvqUIfHw%`2_&#eN z!BtwWFxAn@N2mkV01Af+p%P$pVunM?4JG8laA=EE3YCx!YNJFhm(nooz)+2N~_0hr$BhH-+c&m5nSW1581R@UYfI>wTL03v)>76q||M$9bj4Q zZTbd!fvyHag#RY_aU0edikh~pfvLC)>UQo&CUryl8!7aNJxUdPG7tFV(CAODV-E$r zncR0RQ~03+tO5V?BUXBJKdD#o{iL2#KWQINR12bh4%=Y%6KQ5O`dO#tAt3+?!$Vv@ zv$%gF)0F+wJjD{l3IPn5zJiSi)(G%v8&QM=Li>9g*_ia06&ipuk>H$72=TP%B8Qd} z5n{pTN=<{XEU2)EG;%zrkqu5`Pc>P7`HoGj zsgHOTW|b?O;ZY4^xs4lUR&SoZncWz}IfuBA7|{|!eYcNUN7XhDQqT@t%O`)#zLaOa z#jpH?{UwfD*g86vd^i|6+ z*$DbECL4BbNW+F`fpUyE+xsP4tn?JT@9GyUH)4y(Wa36uO59yxP$-W}gjA)lcap+M z`XoO*3*>Wxu!Si@tqzN3IslUxb*F7mOy-r!7k$CbmfqoqzJOAT!S~wAMm4$L-OY6g zkt15o80I?54FeX2q8~z-{$eYv?B?>9iA)6%7Gz0b6hr0H7w_RMzGMxBNtSj<22P*z zC7T&pZ;Y=Hl?C(&5`QSdA{kPh&mkp=CMgyw)?`;aFn$wOS4Uh1l-uF=uICIXsU=1} zrKJ#+d}5Kp#RK`#1uakxBKw#$7|5GCDg?6Vm0z)oWE$-2U$g7mT7wlNHg2$@!ilv& z$wft8Co)0vA>XilL{0j9%bM0h3M@4a+6|y05*ypej{6qE(Jy@2x9lIZj9P7HH_26R z^10iQPB+s6rT{P+`*=G$l2Y|1%}Ch2gg4s3viQ&6F`eFQ_dV;@*nUG4i6;!uQG7!# zr~j!pGrnhcQS%u)SOvXQxx;w*?Hx#!!~KIh*qCJV1IhgLov5ff@dw0(;n8<~Fdj|b z$r{q5Eq1aqsi{#rp`+pW^iFm&J(u$%>qf^RKN`>7^&@+mITb7cmj1g~_fBzc05dW* zh}pH7g_zpXpyZg^LfrkGZ`g$xW}<$QppB$fxQbl$L@2xqoSC>I?sbj#JwPVu3g3f> z2kGk67F-59b+9Rq!A_56Q$Q*Tp@(CZkKD}^L4v`sc;#+3bm&xL!cvivV{r?bD}fMD zDj--w)*?b8aD#3+Ms1-_*k>3yplR>%%6)9q(G1@k6HJl_lEVKb7`_(_zt9j&Li<^EZ^6REB-SC@CFHXZ zGSc|{tn&cUL!nO+d&Q~|6IJSH*~tkLvOo(?cwFhrM3-8mugeacxb&5fb3qI_PO53* zhmIY{1~Rh`c*CFA`k3XSox^hBwHR?*%RbeP;3eDksoXe5oEOXudY6P7)?~!OK9x)M zsoY@0yMlRSpMn`CX1RcZ664JXj}sFK)$VA^1_cwJyB5=4bTuBOa{)#Xw&7XcxynEh=;vPxqk* zZ}Dn#?V#*fig~jnO$23MnxyrRKI2a%X&oXHOiQPJuQ&+_W8i(2$vW7p*ghv0%yrke zfuqAPO7=BnD@(-ID?z-CVY+B8%n-)yX41&<4)}*%ldY|U> zXE_NC%6=Jy#xbupp&=F1qOB)y6~?GQ%hOHDh7Ur7K}J4C%d?WT(t)#y^MR(pFDT&* z>9dBve&K_%*q;TVMIZv^j~j75$vhv6^D6Vak{+6A{ynR;Yaw~zYy7Qbt$75Q z#}e6lXPd{}_!|8_B)*E|$!^=nJzS|w=-?*dZ~4QrF6s5zJro{BKitkAvi0MG`J}gG z8IL^)Kc}Q;;|GLD2_+z5W`tZN%0kNg>J%-#r_kSEebwK1%5U0V_X5bJdL|T$Ow%+> zCRp$!@Km@w@$7n3d?kOqYi5 zSk|6GEIJ_UVo}tw6hB?40YiQTY}RGm#ABI2Etl?RRX`ZTuVnRWNW4YQsopehm$T-eorPQ?Ju2pAV z8d7_tUiYkq@(VV_%G@nOE)6aY@V@@DSiN9&pZ^8#$VUQu@n{;Hle4 zKe3SXM>nJG_@8p@=iDFT?*6a_WM6O0T5L(8*6@0jxZ+~=g@^IRc2sE~#QcQMSG3|7 zlXD6b2^syxs$i<-*jUpUWd|@K1PlMLGJ?K3B7UdO`_K z4K0A)CM}@U!2ULx)-P@Mo07iz6^i$50`!=wX*q#ewD+`pp`HO#x$1j|@8aesK20?n2d0qn=?ZyL`dmtQ|*o->^9 zHqWV^@^*esJ*~3Yz0<+p?g6DG+@%~9a2r7eU92tbe?+TiH~&{Xt%JPqFfUBkP=0F_ zzb0MF4_A#B5$zaWQFsO4k*PIDM5n(##K~2>Q+=(uZ$88Xq?Yij>T4a(tp+6qNuscN z!9HT+a^NN!c8sg8bP^GycA&o2zCn%sGEr`u6^CSO3CX);X^mxUj5#<TC3trhJsdS|XSCEoX3FHfUnj3kHl7JNv)FlvM z@V{6bSc#jG!tg+2v`FZq)ktA+LfVD&#(MDsd0MkH5=Y2LjhqI|Y~zMnq5P=IM^8>_ zc;+eCvxqNks5MI+?+&1Pn(+31!M|y!l>%&PBW#MO zWl*KBLt2;EggOaBLe@LsZoeq3y)FI0bDC&{^$Tb*OQ2+bJR<2^R$G+op^%or&u*ff zOW)*8{{A;ncI;|-_C|htQ>}|!`5k|`DX8olfAW7e1=U^h9&go5>x5FOS2okeNbmA5 zn`tfOUnQQ@TwBy~F@#kwA|eqWgEcI)9g>?x1SRg}yIf^161bK<#kV%sLcY~6LbE_T zq|`#|=lj(Rj=Zpi*0c4i%S1~=x&&5=*60^upV=awv0HqDZ)l;lumda)x6n%E%6oWm zzNXW0biOtlTa+pVS{`+_us~}|moG2S8l^r@J{ojd#)9VGw9vBbZY?U%niv6mP>xx? z=!{?3RX{Av6eSpKtP~}j8bOAlpww#F@jQqcr70oI01p{~hT@@>#zQF%W2_TVAQv=` z$yasRXauH=ZmD%dN!!IOwN{ZG|HQsbY#_08D+5>L5Q|ZW0wB&Lt7DA7e75f1186ZG zVfDNShCWb22a`Bv&&RdW!YwNAF-k1H>k<`Z;2fmlQ<&>y_-?V<%t_)Ow9<+&%->oO z=Rd;R6>9l3kwXe$D8X@Jq1MP}J-eh(E5Wnd3hCKA$=g zx28uIYv;mRwWe4*UHbUt5-n3|U4;lP;$auS^n(zlnKH$%2nz#n4GRmD7JGog&p>st z0??oN*`-=frI)_)F*$&}K=m_Fl9$geMT;x>;1{KGozNdK*k zcvWkyD2P|sAWB<=XphoDV0i?a2Fz#-rGe*`Y9&0ijn*ZV7wOaE`+jvBP0imTQ5?yV zgC068G!E4`EOSdJwu$UGh}59X+xeU}+F9g1`=Je()OMcSR@*FX;a|4ZE>*WsA`9~9 zs0lb?__yt}R>|qmjU(i_yRDs8keUHan_T?j%93_kGivISc3OwzOy_fv`i|!S=%Aqy zpy&-GERPE*P4`LIE(z&-L9xvmbYvHBL}m?O*&5peT}9HE`5AiM$Zx>w9=Pkp&>3DS~t!Zi#XG^@3){K{T z)-<}kv6GhBsy1kWg%h-Z#?0q@TkWj1PEUbMET+L7gGVAQd1|zj$Dix0`BMGP%VOxx z2ctVXYfnn31FQAcvNWsyt5;Onbg@hM@~+wdx#|I)beeXqS~X2*9wWo(xL!StALxU@ zPCiX5q9^`Od*1;bRnh%@@9w5<%Fb-4p=?48B@_#Ylw5j~4kAkLMHB&FtQ!@ih!W}q zMF~w2P=l1E2~iPIS|~z5Kv48Wlp-L~l<#-u-n)Af5?q7N_x=CR^KG8VopPq1IWu$S z%$ao!SRY&3G*Pl4C=~*mHe^q!r-ZK|YglBx3Q@o|kZ)i7nW~+fp=!&+wEZHo5vyF& zpCt+9B1iNe2D}0-yqE6)MOb5&_;2O*U1Qd^ z+(}hRc|Z{rR8ifQ=PRMwg6X1N6IP+x?JcU220Wux6Lmd%u60!ElVW}oHiv2uA{*=# zu!E?34uohYMeC-lyen^F;>D&qLL6vX5JEiMj14XAPcjS1$sUi?ew?nlF!fw?h>k5; zaRcYd`*SdH?sg2ADrz;yG8>)VySX)2;;Cj#^L^5sja1P-Ky;&Rlw93^I9ywlMp=t$ z?XiHjDjar-b}dM?1zH)deUK*3wPJ|{54;CjvkJIz-MckQq1+a<)^oGB(MMPHHf*JJJW@l@cG-Rc2^tB zJ#Cy$QX|o{c=e`TZX`scxQ2?6?Qt}eA<{Zx*`M5jg?8GYx(=vF%t9pw%}cb;ZK}xM zi6;GtMtJO*1{mHjG=5&`qnYSEAw=7vBShXjy5yI~TZPHvSBI9agu+=AZ<5cUKDG()5fL zr(G;sWIiPb@~L~ex|kMpnm?OAY}$-8F{~rdPBwa(5>(2@N+$>ec_~!+o8QWU6kmA)r~%*)bf`#@8}+cGeJ3`20=q7P2ZAPu<49%LMK+wQ6zJr zV^~$YVs!0=Ml|6p^d0EN?on-73w;sYf#DSku9P{?EOcmJiD^BUr;@)QdFGisjpjSp zgZ-*jDmZ1cR}R~?k7tP9y;!Nof=t@dAFkcDAbKRnuI&|ld$Q7n$>EqIh#ZdKZCG)n zCo28&RmlxT! zzvR5&TyIm==Mh&GR~}=rL6`rz{;UJkU+(OWnf+UFzCSDKog_=IP_gh2x~8eDRD8b| zm6VF^_mD7nlmG-Iiv`(nH1)5|_tHOfwuPQ(sm&Y;V`b^ylG-_yQJP@FnL{5jws zAgDHwdG0{3O{#j)t{oN=2ePWh{E^R&D(#tB5Fjx;7Hkkc~7CJu+)|W=jhUiP9Cx$R6YI$AE8lwAOG5kG4*^?!)AVMP4 z2bQf%TC_G{hFCWAACQ6zNK8E{`VM39$$#IvZ`!pl_2IM7CRPq*#e?oX}m5^%@bL!vV z(B9W4=$?fjbVq`jK5ydA1~y$!`~y^&^#mJ@YjELDLUL(}sQn~c9K@)&fou8V=971v z=W;FmM3Yf$2GTz`iZ#Qh)KlzUd^$eGD&7D0_;=l=t<@<>b$JGXgN8rEhfgt2%qfS{ zSta0i^eI+4uV2_`R(deO4FHSDhQ%kvR!Q(3)Vs2+F0Q)idk95a5BU-oE~%0?Z4SPb z;v{ulQ@~wFvR7`bcA_{*_L?2!A{I8B{mb>gJ`W5PuZ?C^JxCp#ySjjd8Zy@eJFyAr zHGBE;o~rr8!O_@9tP@uN9J4`%N~Lguf<~S?B6AF@Dte4z)yq-5#%diq*raqe7migk z(joq(>KX*DDB_4^V_2_B1pv~{$s}S^oOo`m##k2bo?>&>v8&Ikcs0jt3(<2dtH_5s z>*nKMrqq1W29B&pBP{~VjBUKMAaW3@{qgXJz&`;zQFl<=WR(J(Hlp+?;QJk|$S#3RqM`w=_sc^UiQ z^K5=VG{cjhXhvC6G{Xbb1Pk9(DL}h3$W!4Q;y$pji3Qbbgy>GI5TR8t>HmUg zhDR68u)WRjVC#$Q(LhfW>P%7;_p<7NG_3MIL7m7*d7p>FV@it*FN+Mw^cJcxrqB@in*NLnDG{!2I5EQyfxdd-2I1k&zJE`)_>`*G}67uqDa8||i$}#bx z%}cCvr3Iu~*~y!rE7$~sN)M-9iD4wMqWFHD zh@*CrR;VS``nKds2Q+`E|+P_K5Jk!7MK`l(NjKe(hoL=B!Gmk(OE2k!x1P@h836neWRC)>+ji zr#bx&&>h8nN&lBAn*UFpWyq~Ptdu^hemMRW}5gbZ*a1(*$T|~%xUv9eh<@T@_Je=-*f%pgRec^m6!@L1Oce3T22O{nlJ2FTn zdfCzdg}?Vz+0x#~4ik$wHw$t}pdA%wmrD=bFd;#7EZzDbUonDfK=W_|4TVs5v)9Nh)-wBYi~QK zy1r8rW2g;X$G~mCjEWv5wLDSu(hSK4Zh#PB6cIjB1#=9VLa`G&<|{szU9|<4y8lQD z`G3VySC>NeVX1ps^?sKv+liF7s39a zC=I7k8ZI{Uh=}r9$7f)8(sgt~aO?_iAD$#qZPKT|705OeCU_(usSTsphW1+sX5-3; zLn;mvFMNcJ(*aRFgH`C|Z-FeVrA(TU;J=2^$Rt!*bTnik%>OHJ0Chq`iv|nW9&o3k z7qb80GhrbpQpQBFbRjnESOR{v5JFxj#2*XU7kJ^}lSN>A_YyxXVomX>x|p>Ln>dFK zNRNwW7qi+CZzfA_B%Es&Gx@%J;u6*=0#}~x)s+XLZDR9c)>&jPVX>6<$tA2L1YvJ3 z(X%T3E~^D^Ux#<`HoE${IQ$-4g4ct+OR+&n7Vj(tFYOI+X(>yxrA`oK-e+Y3dn*fe zBow@b$+LqI&%Vz*cbi7e`>awc6HTmG8hklS!mMpwAX+X%WnUMAm$9nu@h_vMpP?^g0%xTVU^D~Npi!ajh6t@rRZ|DS5yMm3gvboVHQJM$K8RE0uq6Qw-B8j^a$EJ9Qo_R^~_yrzBYNXc-fwW*vygX^kbSvX_)E>xV~#5~REWyF7B zu*}Q4`@KQVYPOl0q1|>?No-leb_Hs0?a81>p5(TCy%yvhcgN4Jg?Q7iBGkv~p!yAc zY=l3X{XX`$k28yQ>saxBp)94n1rep7tK>&@@Gps6lALnE-Iq7n5?Ddp&J&SM^~idb zkfIM9xo9t3gKt<5zSdH4X+85kwkKT;ywivYv3NA*MKEyaevjqeoHe81`DnX0K-jRC zaBXB?J05XDh4Jx?tQb7nY+_|Z+$Ny8w5L%&AKS!+M}Jvd`;B=>4Wy#|J44I&3ELI% zIz1GJ%9R(re6bIT?VFiLULpo1l9z}<39Ofh;kYcqwy=Hw^9SRNELIz2F8NcI4g&J! zrw{}{dw<66Eqzs91H;WaT%Sv_yAqv^9nW{iuEVZ5T)jl!&(QcMMEYkqgEac%x6jy9 z)DZ(eXWjE3M!|RdjnAd98mMn&(QGSAC}omhM?NIj_wrU2p`sX5zhIBy^Ya&Mnt$Xk z*v9swW@Eo(!$1^HeCa0&wePl!o44OJE%cTCie=09;Lm@}dg496hjtXiT@UI`kL0e8 z+`~%x_U&L{Di)eYcCwZDOx?wn;ZtWft5_tNE?X6sSFN-#oU}Ik93l7=dTSF@&OcVS89opxFvFiwhL5fcY*j9m|)D$@wlDX#^Iig`zD6 ziN%T6dC?#n$h=;R$p+(KtMFyBO6?`nv$EuQ(u%cOV6|ao4+o_)NIq^*buY3QC;IJ$ zyz~sQdoLS>2Od-QvB$CW{BR%ZX;U*rpF^N(WgL-Q)c=O9g{mcFa2RBeH_@y zU4X3yR40bxnRI9xh0jHiau7F;QvdYzI>;b@BGdR5G3)2#8#Bxjb8?Q1DG;-m*qpGjOW(WB&;gw;WhS8FKEg(K`Q)%MA&z6(cj zHfLLPN<4F%t&CZD2KvGvK0?QzADt0(zr*47tG@^Q#{Vt`k>84+0)ESW^3D2={b_?> z&y4TcrK*86B9VqtLs1??^ ze=xIfYH$5uCKHY{NWZb>Xz55H23z_`@#KHmB}*wIHI#DHX`ES1Iw^LZW{I^#5u;KO z+Uz1mc|ws8&TVF$ByECr*Mqd(vB3{VII~WQvOhzX`HhpJ&Ce`8X-`Ri^j#$_(e2oJ z(;rF`4z;w}2{G+wcBM+7ZKyV8!HxRU8+2M|OR(d#3|tyK!zx)UNp}YLuJKrBH6PIZFOtU&>h)q9z?VL5&xJ#>1?GtF~C6FOag$ky@Z& zktmoLc@BH-6Jqi?R?E^;c$EEj-}ZB?oz3>a8BzQaA4ARAw4qQW%2qNn!Qzbyz z@pdhgI)0`O95OsHbQm=UPzemEM8JvfY)m5%D$Q9gT4b)-c&@I+NynmgQ4$N_dnp=e92E^Q6+bWW8 zK!1?APu0?}{_*qM9Hy3{Y3f7h9H=Zpcy5NCaRwO#}WjaO>(=o#1e8Cf$_h`Ti zvYcUNduRP<^pJ+hdo27j9H^!>KhfkS8y9F$^AacB;S6enD{r4(yU8whGaC}?6F=Yd zpC1)K?I;}-;7QIEjn!9O$)d?$>}sHV*0h5vA00!8XKpdi>@qx|w^>FKJqdKSpSgNV zF*`doPiNnzlIkC8xxt1@*TieVS^ufeztgp-6uPzySRABlkEBjnBlAW|E!1fF(_+gP+3Z7YDEHUs2ioD=H}PkSi)1R#f#uIIXBe z_YmILmhqRE7s6}R%t)0oU7A93tH-IS;O+dSuf}Ye{b|fzVWW^nORUN;^`<&}e}?dI z6&&8sFm7STT6Bd4$4Zqt;0A>89;nHdFrJDkq=fVB0W@2kFPg3L)0EYD&@49BL59l{ zOK29Gm!=3cfm=^ktujlIn2youk;D?CLkwtnGO3Fn+aznt(ED6y{b!*XDwnZA*duw( zUjA_f27f-|s=z~wAnQ9lvcUS@@i6sYsi=lJVOS;U!zzLJuXLt|!S?B1s8_)Zjxx|1 zR|S6AQ?zNKgOfM$>)(jM@bS%e@@WoRMwY1Q;u-3nVy}x=FKZ4k%izNfv0OrkCn5m} ziQ_IFUmij|^y;b{fIwcu24%|H5l=42_<|v)i5ZNS^Op#>+3~78<4Nj8@eAW+@QLJn zmin8R&-pj%OflBYTj8_C&7a2S{y07ypM`O}wK~&xHjWQc;p|eB4}^0=QQq94p7N>j zyp#&=UYSz-K7K>KX#$2UcfjV9{Y;KkQX|mLFhP79-pWG1brVo*>b*zn~3HpkPocL zp<$7Z^A8OYelq7+hp7@>swd3Fvx8(705Nr&D$#9ZlcH0k6Twi4-nA?m@Gr5mEGLcV z=gM+l;C#1ue&eK|C)tzY@0Y+RdPYBTt%#(6>F0!O%3B8b{bW|rr!YwMAMB^de-q5aI- zQWw*Uu^YsOL|#2mQLAK$zoG?6mi%w2C`3t6(L?2Ut3XBnk%GYgEfs~1KvdLKf%n5; z9bJJB4b-=MeuK4~xmGNndtdOc)R%VBa=co&czz;P*lA72V2Vu`Twd09XGQ+F`n#xC ziPykqSS5bQzaz4ao&;GMqXeE{#Qg#+xqrB)p!b1kg}ALUPbqWLkqDNjofs{l)s^~S zWy$4@RBJbWizuJOJtfXU8z7pC6s09#%L^ex>|H#eu0KW3ByQ1uSh$7iS4sRu^-a;T z3Lm2W;#*mTk5biNM7e6bFXr(H)p&39Pv4K#_+xgpy{~aie%+y7^EJ4S7qhbQX`n@ltKDVoZ@>{5AaO+}unAN-iuMhpfuQcFY@X2Ywo7!Fu^Ob4HdpOkg z;+e+$S@k8~<;HvvT24ILoIi%oy5_tzd=ECK)k1rb(TexMr&~+zf$x7>^2!!pwKaAS z?R~Rb^F&Kq7p|<;SJ;X*E>O%ks9g>5k$vqR;xADVv)l1E@af&2@5sLygC0&|NC#dO zE3{c1cxUyZ?{o*=+m3I`E)9#b@BSQtvkP8ogg0Q&g-Zf z#i;JQox0JN)g65dXR#i<13p7~@R9f&>Op~`;-iT1s;}px{E@)JUYO+aS5@5rK)jff$TYeJPd-8|y}RI$6MeWC#N5OqSB06Sf{4Zjs)MS_@cdFn}3z_uD$?QQ9Jgbho5UO&vS&Z56;@?9Z!~JNzR6={*mmSPg*EU0Db8 z7=S4Qc;$raZh5W;fPWnF`!(z>#EF$Gp_9Hz0{hw86+sasiv+n8 zg7JXK)JMalxoRMP#^3W{)bn)*@r8j7v!ZoSoi53J@xgcB>4yhfhgYF$Ebbe^Uq+{| z8^U{H?^Sdte;)JO%%OZgK7)tx{uTX?O}()V(&qHoRO&uSe@M@pQz|RRV^iY7FdlD9 z-6*1mW7fGT?jOztIrj_)IUX-=4Cmb&>5l?Q;R5w>+!&-wiDA0VPuz0TKBV;H%=BHF zC4IWRQ$x%c!Ba?I=YbKJ-+mLnj{pt+O;mfFm$pHPW}C-B%h!wXkMl*OxiV=auUgzt zri!}?9+f$XNV;a(N#o{-k-VasDrS!4tJF)r7EkakD$Y^DM)BX(Pkd2NaaF~sQOs!m zsK4Wht02aX=5woTgtqrzaE<`^sn#T#0m?h;GYBf{cQe4-rxjIorMq^^S9c8fW^rdo zcQtN6LP#9QOWJ*1KZ`D7`9%s*!3)V9(&K6H2B59&X`Tpq&NrXtmGl(UJaFGU&8yj7 zKQ8S5;Yr0zlILfB5XoTxRzJXAc4PIwhf{II!yhJ6e2qlR`HFf3*u{{hPr>dR# z-3sivGw|jU!ak1I_cxtnptKo>!>ix`x$QH&JQjx6(&nn65$u*HCcswM{?8$c`O{9r5(c^i+lRyUxxSi(T5R;Dgzyyki zSL9_WEUj;C(ys$|07wG>7h@c6q_bcRMVQDnDQ*|@&BR`tXzTH8bRMw{hN(o z53mK0bM8in7T-U|&ju)~CEtVy>vS4Xz;r4%LeVc+siO4+B&bD)JOLT{0&n~8mcu%& z2UQN5)_v_?M-fuyWB6;!9nrQ+!+d~7>^l?s)HU!pStCmMCV6%mzwCL5^hSW&0jUN}X{@+5;%pgji|d}@u0!IDH2zqi@P*5` z@^oG%fV-}s@y$Rtmj&HO>2deMT!$Qp(P`=#u&icLb5s{|Jzm?vBjgrzF8WW4Sro+- zRc7$Df#$Ltm?Z>-&XJTxnVEOr*U!%66;vTIW^#+-a4Xvh3Ji8_Pe1i2 zRCD{OM;IYw2NLR`A&Rpp=qpEa?VZCL1`w=p#r!uA?0o@d(KQj3&dWK4WE?Y+6-$XRs^Tz zir@?J@myZ3$hd@Z@It%ewP^^pW64m?b=7xuF7HYVv376qp^)fY_ZBaee+`3DAt2Wd zd>)?>I>(;ihzb=S&E`eKmU%of?tLn5n5M#;xU1L_xn_xD^LW{Nrt77L7jAxHpA@21 z9_C7uo&-*#sowO@~<&;v`qU`O1!f3sPCP(aq^0z zR>yoSl-i5U^LaPdFLpf9i{Xi;8U`lII$R~>q|bWjw*w;cfXufSe2NMSEFwAUG}aK~NnHUCbNA;1BqtfvK-h!@;Bo zft8k(sS?D9z#)j_sr6#0ms3zW=qeLNw`x|@h9U^iiTx!N*mS|z5# zt;vMvn+!@OS>2N|`Cc0sBRy6@bYPx1zlzrczs0kfPX+MQTXSiHocGOJP~t6wt|6#ItK49MDsIw1!tG3pBNBak_*zZh_;LI<={; zJVL|u_21TTcVI+Y>kz!ucjLAE0rf5M{8}sNvJQlxl9FrCoVC1ashf_35PJLq7t71j zXpA76)CNE0lql=tZNVrQ;p0^vyn?rl6xUh14i3JHN5M;duETgh7*nkV)(TX8Nv95k zHjkjo!!D>k-RlEq(%@vYhz55CgaH>oz>(B&{6(UeL`=ZjiCf2$)$c@;b^Jb@R6PS% zV4C}f*r+3;AE_1RWYy+?`YtMN6uqU5+WaLP>!qAS#r1pzE;H|64@TK0ace!V?p=!| zs_J@I#fvPE&q5@Z>w?tn66ZQEzfrDpb`&4wHg_i05(c#upy6Vc5a^XMygUe}b0{fh z6U#U7h>rQ>m~U=Dj80>4hHM1W=X+6eBhV;W4BNHgVi`$@Vq*gjcZ@nIGnK zV-1T=B1SWi7;Lrq;^i&;2oXD6D@hU)v-p1km~16CLDgH%O~*gy)x?lbx#bBVD;@{M z#g%w`{!>)q5wZC*(CTDya}hB~7u=p6hq>TY>DX11ad^AaP|6c(0niojz+Q;#g4#X27i;k`;!`;DPdRvk5Wf#6 z+c~21KCD5e&J-2*bBory!ZpqG{rpk%z}fx$TOj&Z2T0c7lDPN{Zx|)typdY5@$OCi zgZyCx%sR*$LqG6hgExH&q@X|7XS6oLA^}_7 zRj8NtqtXKCVvDC`BnlCw9kqg@+#W}Kf>drGLw8t0@l;`+2x7+%yz&FvZYsK_16Os8 zx1jSojnnxgmSc)$eg1P06D6X`JNch;66&02(^J>Ob>cHrp## z#m!&%y8%jNUH(K`_eqiY?vtp2K;TdO%3DfYlrndOi?Xd`E8;LNfQxkEKkBfKi_;Is z7HfjHJ}nPgTe(I-HI3xqeRY=Cpq{&a7BW8v(EDe%9#BE`r%59p?;w^ zjP-soqz`)iTRo%2f-B)oh}3pLF(%jc<9|`@E8nmS{Fa(RZ%1Mb6m(Tzl{Z-cK~GuB zBVCg&5SYKumC4;y2Ov>Sb^pl11WW-e1k}y?U8H6&C1t zD^>yVZW(HcP`4-<<&JA?2aWPKq-BAK-KIsL zsh~FsC1di*D0iaB40jjxuX!=J{VUDjF1ZmkFsH~sdHx}8fe|2U*CxW%G?y8YTv4gi^Q|-zWVMdleAM97@Gh-3VolrE$|5< zB35OmyHta%^4;C+ylBT>DD5a(YTH%=WvMqP)a!Q)Kl6gQ<9!CCDHLlOkAD$ z5-8GXPqAUiL~$KZF6gIVxGE&oJ{cJ&I&ixhv3H7jH)6_`H;dyy&Y^U@+Al1Gcn%~+ zWa+ybF~r*(dNZb#_v}g%qppPuyRzcpbk`b7jVNSjEcHXQbXDiFLxjm}Z|krOiXok6 zSVE1BnuvMOSL4r^y=u%losMEm*ICq?_xG)R(8uH8)2NVu}}^Vx_~H~&!|-aag3H&lsnEYy^{IIX{dx4wagt!&uDS}k<6A^@{<_l zh;=tyQUDkZzNkCj&7JfYXuxpYQ?`%z%n@5hJuI#}ViO<24k$2+ure@5k(IOuHHp)l z=^GppTTiVq%a%wRgb<{htq#Kj@0g#=T(A#Ys|Ooiu9?2<(AZOS-*HWNY_q_c#5zQR z8pm>o)QyNO6_^tWm4-Pd&{^lbuFfR`jbfdq?l9xWV6$h)Xvlf$WJGLIpiG5oS$~

    zlceu|MFf@C9dVf{q2~EA&n?>>}^ODY92Q$2 zYEc@n*f}822Uu(;(B(=zc3Sf_L^Ls0{8hD1(?L;WIZfZ>u?+(!MYNhj6<5(Ljm-yU zSQ}*4k|3P=6zqET`T@Mc?! z*6=T|kt6)YxkDq1Ma5#58f`2W_+5*~HiSOGS;fu4XfA9l;se(45Hv|%TO!u0Mh_!l z2e8)g$dGnWOf4DvtP1sf@v$`_QBXHNwoRDiVmcE=hc{j6VrB(b2}m^5FBMxe+L`)= zV<{*{YPj>gE52ee?q5}Vg_^Z}s>@xW)V%}xj_KR4@92RZd`1lP3?1zm@kIaO0|(Ue zR2Z%J14s8CGVt-fW~i@hHTPmy_<(_f`i>njrnm3&`tH}tiaw9In~Obt++}V(cXMdUdU@#$vllinpe?2S!hR+2#yU>4ytY zBKkE{D$RHOHTNz%h{g74?l*0zuZsa`?sdX5-QDzovxsSjaj1%N4Bz80-@%-KISCU2 z|4^7Pm>=Q(3Ff~ris(4q?UvCIqJ-mLe$gY~9|_}xxjnkq%smRh(J(PEu`n(e2Ez?Q z8M=*)m7=^+M^P#^P?SB9ijrALQGN#8vf7GL9&r+3UPc-CI>Yii>I0E z-J>WUIuzvtm?bceqqgHOU)l6}5MF#x=R0jq51>bC#D=-~V@^c7Vg$&2T zejKfL12C0QsJW2{L+0mT?^+w_Ag!K&Sy>m~j*3zpIFp6%#x^JnennK9VzVi#4J5;+ z+Fay-oXCOM?kNyX=sm|>saD#XHfO>PZ=ps@jzhB~%Glv@F08 z-8td&&2g8s*~ZTo`_tVIsGo`Gx$bIM7uB2VuB0v!{pPwCcy}(aIU&daXjqbmqLhXoSV)jmKtnAtFA(P#Bhqk9{o$?;_=z}^~)mcG#DtWp{SybMfP82WkeO@K*+DF;&? zrUFbwl<5K@gw{v<;>~g`b&<{MEE-N}#-ZEw*vh+TCHriU%|$k6#d+us2LhE;J@l6_ z;D)OI9Q0mMGd9W%h;>y_;^Lr@2J~n|j$*h#W&D0Yp`vHk@)t5J z+KjK)aW)W9mPW;}qhB&2#KfV>OHfu9${IVW0{T_|)k7p#Uw`u`(PnBXdU$PM7)qm^ zpva$~tte?T_IabCdd7;<4Ho7qf)S+uypN(UI4YX)uFY9A%S_s6hmX+}ZpbfYA@Kf; z%AopvWBs*kgQSY|_0V9FzZdmznx^z0>QS^7dig!{#z-JlvFVDIMvmdgvv?Zve2@Bn zBSwVYH+rd`187NvW)Y}{%EcpIHXI=*(M+XKQP_*VgxpKJXkycUWkL4JBp|n?h}F!9 zl}3(mgp>tVWWZ7Jbwu-6qKUKf+%9jTQPgaJG`|3Rl;ttn@JW~9_UJh^M7PUu_|xwT z!UiCGk=mY7O;pz;YgDlSK3 zR_Gh<@24rco92J{vw_T11jeK-L(ED@6h_M+$L~Pa%1AU5jtY;q*2|h|M4Mrh)lBzM zG*pt})lL9-k8LDeRn%&M9yVelQ#6}C`X_@zRK?J`2-GNpLR~>^H^9`!ROCR*HAZg^ zMB!#(EVhLITcAx-06Pw_X85;2%F76k1nv;L_a_ieid4T9CR8M}83W`VMBEL4AJ8}1 zXsGq@qs%FShJ;%q(aC_J!psBZC$e-LUlV2_;1ba=Zy~+RMp!c4uP6=C#6&SJgn`7^ z^tOCZc~D$?$K4}j`v*2>N6}}#yR}G}?+&+VS-utX-Of-*fvsEOo?1b@;A^(S-P0cN zM+cOmlcMYw%Xhomdyj8Zl(uM{9xz>Deuf*X7{A+dEVuhI!XGnWDUSN3?(Sy9al%dM zQCbwv3^&=y6t%bkQ&buGqM{5(jM5#^)c9`b2>cS$_P8G`lbU9C-b-DRf{1I-x{dM8 ztcMoFcb+)C$6dN)7GU_OikMPhqG0TmFr`!iB8sxv?qaso>7s77yCM!MdS|;!db6k7 zo$MaPraXrvdgA*$zE6YB!oM8RjoylCuc?MB%@8(RwW+#YRaPRbqg)Tqusff{R7a2w zT3a>+WFI9=`2Yo+6{h1%XZY7r9m*K2i#ys?z+h1byV#xW4sV!^`G~sj8{?afDpB4H z%K}2*G{YTXxK9F(e&6<1w52me++KG(@Az4EXOSHUm;_)IfE8e;$e5-UBg|F_mesJt z4@3jfZyZck3fXMRQJ^3&8m$C~(qn<$RGt!{dO7yDz_bK6&CaQcHfgpUy8*b7Vmj=$ z%Aow(QrIetHqw5lucB;^!iuU7!0`L1kNilIh*&ukD+!jdVV^_(^hoAessjr zWDu0Mh4{u@J#sGqPO7NT(_;5G?qVf`th}=1(fv0ynOfVkDOA$Q;;(PqHNXH#KIkqM zHx772ztl}TQ}D^$+N*S9(et3Yc+4AAHvIIDc;%ow$*aso8MEfwo$tiWDz7LDVCZ*G zV{}j>&>LhF0{bXr(+fj+G5l5nrZfC6SHW@@^kfQ#{44m zJ=n`24fWADtN@S`!z)E~ShFJx(8fJ}e-XV8bgm*3MWPC8| z46`2J4KN#FHo<%Xvl(U!^~q|xbFDfE6rtq^4D8X0@)FEun89NeWeC29Fp3lUWBff1 zq#3CwQvnyz8EaOU;)v&c7z?oO*r(t-#5-6~X2A1l02c$vcpRoO>_h~}v;@#$B)YI4 zx^WbWiiqjRpbfq^5%xq!Y!AACY>YuQ@okT=B7mh|7K;2S%x5s4!)!(Iv)2GOzJOyJ z%$KSXsceVkD}-DS%TKz;ww(jik3i(^pw)!(gJbpCVj#XC$;u_*6|E7j0|=<4`~ezG z{@pNHL@L@=pIt6iv+?~*e00*?(R-^MVYWm005sN)W$mkN>1$KUx2FN8Ds6zmU!xHB zBZnRM($v2bUn>L7~>N|3{qJ6zVFX0J%KbIv;8it13iqf4%;}1cHOoM3-J9WyZ_zIYIux}UTPPyCK zGB=4)r`+#j=O6#0`vbA_M|X>MSm}dyY_U5hmvW-{vD(Lsg!;iO#{dq&HxwoercwpD zl2syLkAxWr6rYNsI$@83Q5_A$sNdZ8`DXm&o*5l}@molbZwWapYF&005h<75j_@Bs ze+*T$g-3nuF1ugmA=xiEoG(*NYKmJY-60|}EY2g6!{VxXmEtH>>MIWCU+U38m~&wq zs2lxq3=&6nJbs~+MW^1vkK85U-h@)4&EzlMaO2~5zk^;g;Y%Ul*YJS5G~6=~?ll3* zz{7!2YbH<@mUr$AWZ;228QpHeQ-LmH6r1h@xPJnXBsUd`GU!t$5Fbl0>BdL?$i2S- zR^w(3Fq3JMCpd_QL$S0B*lF&XG|}Mv%u*>A-c9hL%VB z2&(e{jAWP_524O|u%5xU4Zf@UVr2^)DvDwr!;0bzaLW5S0GoD27ffkn=g74=|SMHz%KJP+RtM9+l%dDy>$xx}cfs`4OebFP|huMhk5>bkuF z>^G1#&Akm_S5O4gev!J5>fZO3T zvQda;u%9;y(H!;}Mj=|jUJSH=3fdC(OGf&wVE0}#9IfHFW!T%mzS6L_g?)Y{J@P}a z)8dX2Y6trVXgjjEhy8kay`UXnA82IU5%!}%I)dp0dqas2s?r(u;x(kdSLp&r79tZ+ zSJ)>YW4P3AuqWN8C;Bk#)y$_Ib-&AoeGOl50+8Yk%6r1?;c~=S!SmJg@ zzMlpR#d>6In&=!A*D7+#bhxoYSTd1c4WHP5f%54?bVs0WOQ7DEpw)55FPiJ zEp3+Xt>`#cnC;z#;)A%jvbG%yeY@l0YCCPOtQR&2qYu+lZ;P7s$=^pEQ5S>g_NeKb z|2}FGIxU|9UqIBZfdZGN0^^q=|Kr~#m``9flZS{;j4M$LyGKR4y2atFz72k4zJ%E> z+9bx6M&KSS{IU?34bQzW`(XA9F9N-aas&kEQ?xW5q|d^4Bq@GA2LSpt1G=5ptx9JX zRy&5h9+tVk8TRZbtf~zA2G}nd_Od|p%ZB|wAa1{#_9ocv8TO~WO|YQ+%;B`X*9UVr zEHTT_rGFT~@87FvM=A6jgr26*KFIj05nALv5V+4B&VCEfj@Jy&t`3Y^!@d*a;D%w} z2K!CJ{xzncKXtoT`5fzrzl;Do0^~#l_f3!oj1~C{uM7pA$f@G4+BArD&!x!K*!wA~ zQEzN6Jrgg(oLmRa-VSQ+6uVFdLjeNXZ1@DIZsC2)QSH z0e3UtB>l`72A0bRnE;6Steg%&`Klg8+YV1#bwtmh(5fl$#?K7BK%vP9P2GmXABz$v z%f}TBrQDWo6C2CN#Yd7on*zIv6DUatxgqviKCYCv2CNxhB8Z_Q=_d;%iJ6!p@b)Wjr2~0 zKvxnhAxIdZTIScHUB$R~uO%g!5a8sGvU>?-xImHbMTFEHD9jk(82ueuQRI=zIeusE8`!o~BT59Ry#c;KwaVQ*hc&1lL7q1}rhtFe}r~ zjJ%FQA3*4K3LQ=30Y54h#XUix^$>c2LSsQ?=x2sb+J(>u5t_cs;dRCg#;~QIfi_yE z8Jq=+Kh%tzL!tE%`80)oiCK$&W@zeegf>9vbXcPE1TLk(h6r2-OKhraXs?-X3R;Q6 z39(O*Wgdp=udvXH>?(OQf@RVkB>SfYBjA?-KU)ecnXtrsjyaWnRGS1e#dZqS5Sl}l zw`wceDYB>-lNVs|$_!Jp;WfXiqD>_Wg{70FF`_MnC8ikmG4wN=D2qayAT*moXVua} z%|yd`9trnwUk&q|jCf&7#l^mbRg|Is4H6w$=zfO~FeH z1T~XR-H*r=ng)wM)NF&LX6QN!Jz%tf88_PuJpoI!87hl~c7b2%HgL4XY83x)egu=9 zr&|vgK0m@S{&50H-WyGfJfcd^;MZ6TYn@WFnLb zt%kMqZ|)34Fj)jc4680MU17SxoW;~aKiMW|MZhH82__n}=W42qqF~a=IEeNyK`cA^ zQ6eD#xS2{W>;O=|gAQj2V&&0~nl?}P1%$_#;V6&9i1b6K`?3eY;35n4a~3Qy@R2_g zEQdlL_M&R1VT+{|H2rh}gVC6pgK!#+X|R+uW9$8!q8Lty2f{PpYwLmNnH0Pb?Lt32d!)Xdf*(b2 z4h5evQrB@4!51j_F$AX`fkh+Q4+~ZS@XCM<8VA8*g7MP7QAimaUTu>fW;?<3Mo=Ha z5D1vQ+9^NC1p?`d;C_Z75b%Muso$D8rNf463W_qoFaz-gYgk+D2k~aXT6Pfp2ODMx zzQiu3AFMDa^J#(_3gJAHR%|jC_X`$P{hrqpFhjY0--Se^-iT)<`f79D5MVq zsMO>6WJwHj`uVe5dM7A}MwC{z7hpVZ`H`4*fdb@UsElMwQ|>r>N0hYhFdV8F_@5Wx zX#lJv02db6^vetI9{`*nfL;0u(t8`kI6zD~0f{"require"!==e&&(e+=".js");let s=Promise.resolve();return r[e]||(s=new Promise((async s=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=s}else importScripts(e),s()}))),s.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},s=(s,r)=>{Promise.all(s.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(s)};self.define=(s,n,i)=>{r[s]||(r[s]=Promise.resolve().then((()=>{let r={};const o={uri:location.origin+s.slice(1)};return Promise.all(n.map((s=>{switch(s){case"exports":return r;case"module":return o;default:return e(s)}}))).then((e=>{const s=i(...e);return r.default||(r.default=s),r}))})))}}define("./service-worker.js",["./workbox-15dd0bab"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.clientsClaim(),e.precacheAndRoute([{url:"Logo192x192.png",revision:"15e06927b5e6e2b55c5ae6fb783d2618"},{url:"Logo48x48.png",revision:"65270f0df7353ad8c75ba5140d6d7c6a"},{url:"Logo512x512.png",revision:"50991847b13d0d0de738dc34d15e0920"},{url:"css/app.8d40a360.css",revision:null},{url:"css/chunk-vendors.a9765fa5.css",revision:null},{url:"favicon.png",revision:"f3da3682ba8d648ebaa9e09a27875c20"},{url:"fonts/OpenSans-Bold.21b37d1a.woff2",revision:"21b37d1abf90816560781f286c7dfa90"},{url:"fonts/OpenSans-BoldItalic.95149f80.woff2",revision:"95149f80a181cfb7c63078e3f44134cb"},{url:"fonts/OpenSans-Italic.ee451d9a.woff2",revision:"ee451d9aa59d5cf65407f17971d12090"},{url:"fonts/OpenSans-Regular.8abbb9d9.woff2",revision:"8abbb9d98c0c7304060190592408ab78"},{url:"fonts/OpenSans-SemiBold.2595cae6.woff2",revision:"2595cae6483bb50cbeb0cb40e3292231"},{url:"fonts/OpenSans-SemiBoldItalic.40ca9121.woff2",revision:"40ca91217266fa60c6e81c539a059190"},{url:"img/file.f5540c43.png",revision:"f5540c433396049050945be85ee9c4b1"},{url:"index.html",revision:"04bc2905ebb1480b519cc122bd691f43"},{url:"js/_worker.c13cc3a9.worker.js",revision:null},{url:"js/app.023944c6.js",revision:null},{url:"js/chunk-60cbf026.37d9df6c.js",revision:null},{url:"js/chunk-vendors.bb2c58c6.js",revision:null},{url:"js/sql-wasm.wasm",revision:"0e5325d0fff4dc0e465001b053b44bb7"},{url:"manifest.webmanifest",revision:"6b085b7ef6a4cd86a1cf5ad97b0d7160"}],{})})); +if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let s=Promise.resolve();return r[e]||(s=new Promise((async s=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=s}else importScripts(e),s()}))),s.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},s=(s,r)=>{Promise.all(s.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(s)};self.define=(s,n,i)=>{r[s]||(r[s]=Promise.resolve().then((()=>{let r={};const o={uri:location.origin+s.slice(1)};return Promise.all(n.map((s=>{switch(s){case"exports":return r;case"module":return o;default:return e(s)}}))).then((e=>{const s=i(...e);return r.default||(r.default=s),r}))})))}}define("./service-worker.js",["./workbox-15dd0bab"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.clientsClaim(),e.precacheAndRoute([{url:"Logo192x192.png",revision:"15e06927b5e6e2b55c5ae6fb783d2618"},{url:"Logo48x48.png",revision:"65270f0df7353ad8c75ba5140d6d7c6a"},{url:"Logo512x512.png",revision:"50991847b13d0d0de738dc34d15e0920"},{url:"css/app.8d40a360.css",revision:null},{url:"css/chunk-vendors.a9765fa5.css",revision:null},{url:"favicon.png",revision:"f3da3682ba8d648ebaa9e09a27875c20"},{url:"fonts/OpenSans-Bold.21b37d1a.woff2",revision:"21b37d1abf90816560781f286c7dfa90"},{url:"fonts/OpenSans-BoldItalic.95149f80.woff2",revision:"95149f80a181cfb7c63078e3f44134cb"},{url:"fonts/OpenSans-Italic.ee451d9a.woff2",revision:"ee451d9aa59d5cf65407f17971d12090"},{url:"fonts/OpenSans-Regular.8abbb9d9.woff2",revision:"8abbb9d98c0c7304060190592408ab78"},{url:"fonts/OpenSans-SemiBold.2595cae6.woff2",revision:"2595cae6483bb50cbeb0cb40e3292231"},{url:"fonts/OpenSans-SemiBoldItalic.40ca9121.woff2",revision:"40ca91217266fa60c6e81c539a059190"},{url:"img/file.f5540c43.png",revision:"f5540c433396049050945be85ee9c4b1"},{url:"index.html",revision:"eb6cdb770c0e7cb2a384e6583367b82e"},{url:"js/_worker.5e0dd41a.worker.js",revision:null},{url:"js/app.e4131c1b.js",revision:null},{url:"js/chunk-60cbf026.37d9df6c.js",revision:null},{url:"js/chunk-vendors.bb2c58c6.js",revision:null},{url:"js/sql-wasm.wasm",revision:"7b34172eda0b1fc383b6a090ccb1cc16"},{url:"manifest.webmanifest",revision:"6b085b7ef6a4cd86a1cf5ad97b0d7160"}],{})})); //# sourceMappingURL=service-worker.js.map diff --git a/service-worker.js.map b/service-worker.js.map index a1bbb3c..5cf30d4 100644 --- a/service-worker.js.map +++ b/service-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"service-worker.js","sources":["../../../../../tmp/cc592d1dc52dd89686a80491afdd62bd/service-worker.js"],"sourcesContent":["import {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/sqliteviz/sqliteviz/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/sqliteviz/sqliteviz/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"Logo192x192.png\",\n \"revision\": \"15e06927b5e6e2b55c5ae6fb783d2618\"\n },\n {\n \"url\": \"Logo48x48.png\",\n \"revision\": \"65270f0df7353ad8c75ba5140d6d7c6a\"\n },\n {\n \"url\": \"Logo512x512.png\",\n \"revision\": \"50991847b13d0d0de738dc34d15e0920\"\n },\n {\n \"url\": \"css/app.8d40a360.css\",\n \"revision\": null\n },\n {\n \"url\": \"css/chunk-vendors.a9765fa5.css\",\n \"revision\": null\n },\n {\n \"url\": \"favicon.png\",\n \"revision\": \"f3da3682ba8d648ebaa9e09a27875c20\"\n },\n {\n \"url\": \"fonts/OpenSans-Bold.21b37d1a.woff2\",\n \"revision\": \"21b37d1abf90816560781f286c7dfa90\"\n },\n {\n \"url\": \"fonts/OpenSans-BoldItalic.95149f80.woff2\",\n \"revision\": \"95149f80a181cfb7c63078e3f44134cb\"\n },\n {\n \"url\": \"fonts/OpenSans-Italic.ee451d9a.woff2\",\n \"revision\": \"ee451d9aa59d5cf65407f17971d12090\"\n },\n {\n \"url\": \"fonts/OpenSans-Regular.8abbb9d9.woff2\",\n \"revision\": \"8abbb9d98c0c7304060190592408ab78\"\n },\n {\n \"url\": \"fonts/OpenSans-SemiBold.2595cae6.woff2\",\n \"revision\": \"2595cae6483bb50cbeb0cb40e3292231\"\n },\n {\n \"url\": \"fonts/OpenSans-SemiBoldItalic.40ca9121.woff2\",\n \"revision\": \"40ca91217266fa60c6e81c539a059190\"\n },\n {\n \"url\": \"img/file.f5540c43.png\",\n \"revision\": \"f5540c433396049050945be85ee9c4b1\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"04bc2905ebb1480b519cc122bd691f43\"\n },\n {\n \"url\": \"js/_worker.c13cc3a9.worker.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/app.023944c6.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/chunk-60cbf026.37d9df6c.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/chunk-vendors.bb2c58c6.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/sql-wasm.wasm\",\n \"revision\": \"0e5325d0fff4dc0e465001b053b44bb7\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"6b085b7ef6a4cd86a1cf5ad97b0d7160\"\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting"],"mappings":"szBAoBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,qDAY2B,CAClC,KACS,2BACK,oCAEd,KACS,yBACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,MAEd,KACS,0CACK,MAEd,KACS,uBACK,oCAEd,KACS,8CACK,oCAEd,KACS,oDACK,oCAEd,KACS,gDACK,oCAEd,KACS,iDACK,oCAEd,KACS,kDACK,oCAEd,KACS,wDACK,oCAEd,KACS,iCACK,oCAEd,KACS,sBACK,oCAEd,KACS,yCACK,MAEd,KACS,8BACK,MAEd,KACS,yCACK,MAEd,KACS,wCACK,MAEd,KACS,4BACK,oCAEd,KACS,gCACK,qCAEb"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../tmp/fd1ae0f29e7ceb27d5cf11ad278cd007/service-worker.js"],"sourcesContent":["import {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/sqliteviz/sqliteviz/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/sqliteviz/sqliteviz/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"Logo192x192.png\",\n \"revision\": \"15e06927b5e6e2b55c5ae6fb783d2618\"\n },\n {\n \"url\": \"Logo48x48.png\",\n \"revision\": \"65270f0df7353ad8c75ba5140d6d7c6a\"\n },\n {\n \"url\": \"Logo512x512.png\",\n \"revision\": \"50991847b13d0d0de738dc34d15e0920\"\n },\n {\n \"url\": \"css/app.8d40a360.css\",\n \"revision\": null\n },\n {\n \"url\": \"css/chunk-vendors.a9765fa5.css\",\n \"revision\": null\n },\n {\n \"url\": \"favicon.png\",\n \"revision\": \"f3da3682ba8d648ebaa9e09a27875c20\"\n },\n {\n \"url\": \"fonts/OpenSans-Bold.21b37d1a.woff2\",\n \"revision\": \"21b37d1abf90816560781f286c7dfa90\"\n },\n {\n \"url\": \"fonts/OpenSans-BoldItalic.95149f80.woff2\",\n \"revision\": \"95149f80a181cfb7c63078e3f44134cb\"\n },\n {\n \"url\": \"fonts/OpenSans-Italic.ee451d9a.woff2\",\n \"revision\": \"ee451d9aa59d5cf65407f17971d12090\"\n },\n {\n \"url\": \"fonts/OpenSans-Regular.8abbb9d9.woff2\",\n \"revision\": \"8abbb9d98c0c7304060190592408ab78\"\n },\n {\n \"url\": \"fonts/OpenSans-SemiBold.2595cae6.woff2\",\n \"revision\": \"2595cae6483bb50cbeb0cb40e3292231\"\n },\n {\n \"url\": \"fonts/OpenSans-SemiBoldItalic.40ca9121.woff2\",\n \"revision\": \"40ca91217266fa60c6e81c539a059190\"\n },\n {\n \"url\": \"img/file.f5540c43.png\",\n \"revision\": \"f5540c433396049050945be85ee9c4b1\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"eb6cdb770c0e7cb2a384e6583367b82e\"\n },\n {\n \"url\": \"js/_worker.5e0dd41a.worker.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/app.e4131c1b.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/chunk-60cbf026.37d9df6c.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/chunk-vendors.bb2c58c6.js\",\n \"revision\": null\n },\n {\n \"url\": \"js/sql-wasm.wasm\",\n \"revision\": \"7b34172eda0b1fc383b6a090ccb1cc16\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"6b085b7ef6a4cd86a1cf5ad97b0d7160\"\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting"],"mappings":"szBAoBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,qDAY2B,CAClC,KACS,2BACK,oCAEd,KACS,yBACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,MAEd,KACS,0CACK,MAEd,KACS,uBACK,oCAEd,KACS,8CACK,oCAEd,KACS,oDACK,oCAEd,KACS,gDACK,oCAEd,KACS,iDACK,oCAEd,KACS,kDACK,oCAEd,KACS,wDACK,oCAEd,KACS,iCACK,oCAEd,KACS,sBACK,oCAEd,KACS,yCACK,MAEd,KACS,8BACK,MAEd,KACS,yCACK,MAEd,KACS,wCACK,MAEd,KACS,4BACK,oCAEd,KACS,gCACK,qCAEb"} \ No newline at end of file

    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%0DX}wB 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≫=ovy)&=PTwI|~pMdgqFH0;2|7Y_g+zkC|5)QQKPK2pxP63(3&7oapAe3(6+ zW#1`fQ@+y?>zA6~;GZ05D791p^g%?<=jjbCWjp53!nxOA%9|yA`#3r^Cl?~!;19zG zly`B&7Nx1o<}EV6_g@tbxhTKm1w`&5Ik|s-aL#{ygv69`^&6^KP~c6ib0#o zHiR|crD`tu796)K!y_%gJ5H5B!bU*Si4u6xESU&4sGJRjha4Ks@V+<#MlxOFcyYaR zH69VdBK4}`(dX-moklv_L%#qUbUpsODbI&$u@VF&osAo&a-+D0;SgR3D2p%zgugpn zbDrUR8(PED%P_d!7YXEZ9r<()CaOMZmt`%-%GXEro#N&G_-w2g@ShkxKtLeg6sW`V zoaQ5rIYy_M>?c%k zvm<9DTp|wgZC`L#(ZT$7TEZ~W-VPX<#7EA)PNGO^%b3lJuQ#F4lz0*R{;~~J*Clih zTOrFzr%JZdoD`Ag3`dOL$VI-F<@#IvDl??37|$(9{L{lIJp&K}ptgXoz`}g=4@9bb z@1feH7^VF6SjgJ$$-3O*=l!*Y;&)e@0~3Do21a&$a9~S{|ND<&pivYy>T?p#hTY*i z+_3`sfxC_OZR#GD;`VGDNHU=UhvgEjU0SRvNC#=a)(>MqdD;*|^%FU#WZI<*e4YB- zF3N@ED`f#X`|(m3px$N9{_p9Vtj8OSuBM?xtoAPa!(B0Yh+2d;L+G9%3)eKWfxeed z7WP`I;p7^{(dWcQH}fO!hB0RyJ^JNDxG!d14Yt$ol7R~8Z|tSBhH^<94*pE~a$JmZ zW8F5#yc^L3f<-7~*nd%2Uc5lX@(EqOQ&{4w_cllKc5fG2%(yGNx>q4=(cUnlNN zhoTwns4#x>(-vG|t8>Zvl3lvtC~ye)^WT4*2nSpw=$CZZ>&r%pY*8c6_Ze)m3##ON z5k1)0Gp$!-EDkja4L?5cmv#=TyQSEC6%B2J9z%Ct$ z_wTVD67r&QUwWi<0dHjkU+j~ohHfp3Gdarzku*D%w+QOSCX)Vr-WziRp{!Qyr((^W z-RXcR%XZ=-*Lg0#=Ykh2mqn~S`d4e$C-Ykd9UeYC06E=aR*P1p=|RsY|9;QC{9DU= z{-+Yas^=+oUHz-!ZcB#YZ(2f>$U03;3pJTZy;*_>netGIPShSu(bryz$vHw7GY!)JGb zVF(bQVIh8jt_VIOZW_A+o_WlVd$Bile5D(Nhj`Be{zzO3gBOL+BM*?mB*?dgl-X@= z{_(z{3aP1Jleodxv(Q=PSKG69vr#jjy)Pj6fLaKoJEinq;;A}z+L$yl`%_D=ug-8fMEUz?2^L~CpkjHAs*=8inbI6Gp{ zx-bacCcj{j%!OfU1*_Hmxkq;Bw<%hrj-cqnIA=<;Tz4Y`)RX&Uw(k@=cHb?rjWEpm*TPkgm zNV**+F#Dr7TS-aBuh^1h$VcPs0usQ~SB&K%s&RzBQ>B2-neNZAVhgQ#uEAhe;3>C2 zS5>y)O(rwPDa8@z3VF1*ard%mKb7;sF6^SW!vn~9b+9M7&wdvcOv61KM2W+Lm+Q&# zz}c~2nPo52Ws*LyNSjH$PH9{c2GbsgJ>qWBkcPqFdM;onlUMc&^dK1b0eIra^5t+g zm+7)>f^&(d2NBvK%stll%xNdxMedZ3xXTX}d8C^uPxFqHec;$ULW9;c{!z^9uToS_rNiLQlbaW~ueT<(hWy2tY<8y)cRl|6@Lnborj`U?A)^9B0JAf=to#MJO0sOQ zA#^^{+JcmzKxCyk8KfF8mEZ>=FraLBGo`BEMG-H%sAcx}N6`gRB&`}r@Za@?rY+}D z*7wmJ8D){;4__BV_33Lgw|el=B=PPnumK)E%qD2rj!) z+O~5Z714IzcpXfPIg21Y8fG-5ieIWLv_N4KW8H+joD;f%JQij7>qnW0ng-<#hhgxH zteHt>aY`R)c8Tli!{vzB@e7+i^2x=>U3DK;(j>-ehQf~RfJKE2#_|X;MJvt>1*nzM zS(H}v{0P9y+V4v&*2_uNf6@K$(SryT1mRMG$9Drn`GA2_~-+d-GcQ<#Q+ubCSzJ_DZFUd7>hu=mzzgP@lpD`cr;4)qEa*$4&6*JB-c`B%G+&uiTKcY~uRQ;?P z{LG!N@>J|8fUSM!6nmSLtg06u9>*(}e5#RXq?&BN$Zebr!7yWdMVcObYU#H|Tyn1h zv*pXY2k>m1_nQ~{6u*1AF9GgcmxFEMeICMWWj3xlGbo}@`5|%_XNL~SeZP!#(u}mHv z3Bbd5oTuIKU_|rPW{bQuvu2fHV~ObVh~y*LdF>LyZPFudV7 zrFO&i9TKd8LX}%Z$9atC3fFU-bq70_2du{8JmPxe`Hl$AK(VCN;&Ys0djH}*$V&yo zl3V5HJSF{be@qDa21CO2`kE93)YlaLYorGOX74`A>sjq7=;1h3|L1-0=IO7o&(+{O zatHWh_c+YnT(+FLBfRGb^hW1$oO-LF&b{EIpn`$<*}x#k8hrj%RC4eb-|Gb=>GUoH z4v8kgyrv8UFmnU%pxG#jXanaubJUts?mh(O|C?`y1IMEg?N+l-O_b%}w$2HnZ1R1{ z(FD_y(J7R{eilkFHhntb%SJNSBL0?@?C%!U8S?$5^o~jVBWvz;b!2J7shKynnwK4# zOx1z$ND#<@=;ByMb`nJ+#R!0vcM_eb`JzBq4jN1Jf=l#*OtgYblzK8*R8!q{yalZ+ zwk+kf#%!N-CSANO$k{!8U4?lV!5$ zD%mXUbdHvN&WriiA(H4Fng1>RvRv~?V!0=?Tq8&xG}1*c6tn2D7u~f}Mq?+k*vZUu zFiRdxl0=tDVksxGRLjh_GD#ZSCJe8WL?=sPQRg(!?d8fK)4?SE0WgK9)h9&R^GOb~ zCr8;MjJ*PMb%$>Zj4qF#Ssgq&Wh%9@}tf3ZHCt`LW%xK?mYp%IZ^OfCXsrsH=D(t)!Y`b?` zJZG~{bw3>ctbL#zH^&=q^%ylY!WarM>46DKX#kS{rLpy`uV+iCXJ@CwT>`@RqY)1T z8km41{nD~?jmZNcpq#>1=6s>nscIe2%j0F%eeL;F7@Lg^!_AKBc1?M?sl3XWU+XMn zc#_pW%^8x-4a4n@>Ly2dnWeM}O>qfE;#N(0sgt;>8UJ4-tZJrMcBD;8$S@%%Vuk}G z)r{}YMbkR17(AQc6U}vHa-JAHH%AT~@e{dG$=oSq^c2!M^B6pZ4evwy4|zkzykQc_ zQOV>fWO9_#cuE*N#SQOc1`jDi#*~p0fy2lA2M<}p$E=YPss9UU|2sm+6D-UH zI_k1LMdglyMo&qtpS(it#R6yaqpMou8BuFF_q%oJJ2>ou90c zujqdvY2>R}e04t?c$gn|m=8WCY&a!+LcgE?5E?e!ayJ{RiwAhGn-T7L@;q(fL;RAt zo1H;L^v&})1sxJLM@7t5clJCQMF( znElU@yPxG86Lu#-+=}OMk-DFy91{lqFIGqpbrX3Si99Vt?`IPZ^G(y6Co-uM*i%XD zt0lH|0Lz_k*P@+o)q7L!8=em(boSqEGnxEPo)0s=+n?M+nScV1hZ|J;@9_O8eah`m z?4isarOr3@2=*VLJF+2hbX0uZI3E|``#JbA@fQ;OtwbLeq5C=LG4T@;{Oo^@`28I2 zn0U!QC&33b?muvmy`N(p6Q@pyRU^R%&`R=YQTez$5b?EJzMh(K<9~Hchy%_a=5{`O z9!vP}zohQwb}0DXllKdI6n!4iBVs8g@s-o~$ryWtjr_s}Kf%M_V38l#NsjF$CU+9k zddL|8LPp=ggP)w?Z_daM?j*-I5|gK2l=<{18py$d~)Jnd5G^kW%eJ^22T*eXK;~o(MkB|C49Ey zUONfzJmvQvat2SJ!)H*Cb5BV4W+Z*K<6k@fjgZ=ZQ0Y4vLEn2Y4w{MGxO+>b;{zt+ z_5UtHRFGK~r3fj?m89_{r~^C(49;VQ7cnDCkC3FqNYY%zX{;00xdyR@#)9IU^j;w85Ft9Y|PPs3DElvVbX1zb}ND@#MD+rIb7?)sS zM3%)ymUaF=3yUmE7+wq>UK}T~5FxUV@E@zpe2z|!1$c@yTcmG}^;*Vu6^rr`i{c^{ z^A(PH&%$|v=R9|IT0}oA4LdBQA5}ygQ`C?RTS6^-#?=DN{m;kwD3^X&0;Ve6Vp zM=5L|6f>8LnhwOtj>E|Y=j0;fqV{UwhWmdGul=@p2S= zG?IAS2Si*Bk*-Bj*P~}H2BCbWrd#mCzB zQwZP4%Q&|M224rw_x3Co0ipp{(m%}Ku5@4ApWNM#@^>}fXZm|PV?}^KK$r9n&W{}Z zmwN#Y#jO~RK={i(aKtACUfv|`9Z-ngA4rNPK$nNV(aa!dk~a-r-Yz~&{t@rUX=1KS zsiB^Af3%oI<_-snCf`b~c%k%)^Vyu^u&U+giL8P1P>)66Hsd)?1b?i`PN`q33M7v6 z60rEPQ!gX`Bl~I@&Ca&3Rlu=Sp}s^|{3hMsAhQ{qUm>+*3uub!#-PPXtw zNAP?z)$6W;Oyih_*X63P^r@eP=ER~5(AjRAGxyG^5N^W$d4PycyJRx|8$kHww5U2FO!3(smPR0RDAIL*`=Si9Y*^x&FY7QTq~_&oaBaGjdBKD}D@ zK0Brp%=Nx#uMCOZ_B<|y@k7F8TH2HQroCjeFjhOX>xGl8VxA~hG$UD2c>Nj zJ1zxHV2}oE=qUHah=4`ojEG-gm~=ORA*$%H&$`qjecn>;NYA+oJnfPLEVRLLUHa&~ zJEatOU%e$uzAQ-k(Z={adq7bub`sD%Gm+Esr40^y+Xxu>H0@`*4z;VJ+iQjA(ha5_;whBTrGx|8;wyC8lTv7;FFYWab4vten2=iiD@(UiBj za7#(EWyx4jBjhO!H(CL0d7K|N^=!?9l%mcLG$J5J{oR)@R!Fg`YJDQgGP^kG{9?BI z(P;#PCUcGnu6m$T>+-1?YrSz;e_Ap9qUlO3uU9CW3OR8t*U~@$r03+TV-P}j>>S_H zE~DF0QktrlkJCLuJd=e2p4na-{Q(HKl779pg|f*aBktelbyt)1CNKGUf5joY;R8}a zhsnY`^fBEjZ6YG#fzr*f)gIA;#<7Y!Ite~|k^H#cl<~yHBb?2FS#=uWKE6YCeLrui zuGOMnx0rS=nxmKi$>pbiCx2!`E>@z;6|q>R`?Pb^UDsC}C?)2w)2$#YyD0r>!=kf- zZRL!Mig6ttg$~Yr4l6)V0OmXH@S9Ge+h*s;sV!GEa{_I)8d97T9^b)e4N>m8J#A1ytC8jB@YO`O3Ld4;KHv$vRF2 zOUwH3g{ntDP*JRytXCDIG~I&>Y!JMYriN;Q!+c7lo@680v**gkfLFIiSrNc;1<@5D zvP;K1lCJG*cv=r*9UpJMCz;h#&lcwBAJN%f@S?c^Elrdi*Wf|g*521c8L)e!<&?lU!|(3X4cys}4X1r6Waux?AhB-Mo+`FDc!-$mtTw9L|{(&Y|&Ysg4jH6Dwo zywj@DvSse$Io}n!s)zX<@bJ9rdLHB(K$BIkZ^Pv`-AFx$;WTen+sX&9gjP5pPs4)@H27=Fu`2b7B029;g1?vZ(Uy$LbbW+*X+ zSV9KC3tQls+(|rpGLsG~5p186nrap+C)~W8nfP=(Q;|AK^Xb>M*c7qbi8Dlt4ww2` zOMi$vgBV6&rfqoH&`e%Lb^38(2w@#?y&ha;|E*dtvU|=4@fbk!^&82lA%%|lCc)_2 zD!B?p=2mLCp<0K@E%QN&3z~vl@{Fd&9tjZuLTN8e6yK?Zt0)w1Om62|-133rxpl+t zMH@8sPK4##HP`=r0V~|qYax(~p5)T1Zqd*^5}5<~`fOsQV-+@}D2|8f-6g_xv?Q1b zZyAOhm_v(4+Nh=zSbz>zyh57Y3NiGo0A@OyZuR`t?e=RUH~r<@p6jKfI#ipP&*lU$ zrFkOj%=4hy1Lq^s(K|qQ{tn`KUE0E9JLuq6G1T?-b zux|ZzsYXn`coK7*KZidw3|+g8ncsEn`+Y;7^(#rrsA6E+4 zfLevF?2>Px9ST?*jrdG0W%EWOqactL$S6 zFNRmh@5>8>p?EwsyUn3&W8#m(E?!<$Q>k@(TMDt7yPb^YtQNe|XaxE%31v6jOfDb2 zb+Gx!gbgM)v+$%wEhtd7?%tI(F$kSS!$EUPa;jfGVJjOi=rxhUh;`clCth!o@sv^E zJwh0I0MB&y`RuhtYc&cG83|@!(IZwmlM0$&VwqMnF4HR*Xf-uNacNls+%y8 zg-LADMtup-?$V;FOL7yBY_?J)!IdH%;)Zmy?$FC>ikt$Kx1o2@N@)VJp!U{r!E@R2 zXn7dqP!&d{?FTW{@nAZjOpg;bL&QWPzVp1;MS~(zJpiJ2^FZcNJ+TwGpi~Tx*r*kp zlzsQaT9iLsb9`P&4_0Q3fC2-uHtf5~Isz-9pzqyU8BW2RK0$P5G?tg(o|tU?V?7ns z00~?mBi2Jx{OzBxB$BnNp#4l$E5+Z(SjuPn-+xKTRno!g&Gyj&(>6}hd@MtqYVQN= zq6EOeC5?RFlL*makYEZ#q5^ItRB7?5d-83e%yo2k4Uf}X7q8dbZ5I8DW#X@==_t!w zJJ7igORQSHA}XOin+pc=Q#*%++gcz@cHE<)CVa6F!ZX}Y#~Su}Q#ymPLMV8JP5Pm~ zRqmU6xk35gs$bs$W^LlcZK26L%VXm;1EmX{G4e|PmX~50rLN2M6hg0G3iBiy>?msG z-~CL*{O!oL7)kiz*l~d*ZRMAagSETUgmP4U!pe-6D^6s%^N}Y@Mrv57XBUh1D?Fj8 z21a#oh$R|sC|)0%_$ChfU7{OtDJNJQZj@L)9<(aFNy{z3TlhmMQIQ_gpz9u{8xEy( z5AK*;1GM)17bqHu(|SZc3dshoKpwditj5EqMtn2Ke9CW2*~a26(xldezg3T>vgTp$2p#PSqn%8q?Ygnd(oIM;gns#Pt!Yc?fa!Qd`(& z#Zf5KeVO8)x)_CguBfWNlCT2jW(4ZIQ|0YKjZld&E{z!6f9mOV?@EfR3T2k?mnM}~ z)r<+~{vg0}{x)3ox;`o0f6>^wf--MFM0_oQu<^9kLfk5>oVBUurT&)j&Y8AP)h;2) za$z6?Kvuj~djAQl$|rId?WMaSUbNe0USf8lHaJnQk2soA%dl2E8J8nqT-iTG%+Ye7B#g>!2n8_~tKS*e@8%o_DJ}8nj$z-@)Z=O-|pI z|3$2ur&Q|y)_kUtsD{)+DX#k+1)t(60bRa|ize=UJn6HE#XjP(dceGW0X_fo#OyO= ze+9L!*;y9RFMC$@F4|}ZWkhMd`{j5VT3d#F`$_6??yk1mj%CS&KF6d~))9wCCcYU4 zsFUak91ukdjrHdCn3R=PXsE6|quZ)J4~y5H{J9r+GFdojuhnF1c6GL^JVz z&as;*c-6uqnpoLzUM0V_zB)7A`yr@c%&|fI8Ckhc(q!mmbKQfI9(?%Lb$xb}cG9Rx zam;<{>j3YiegBL|erc^iPP6xHqzw9(f7G(?CQ`8IaJ>y{xYT#!I%Fusp{UlAP+p_) zi`t+t4%Cp>iSbx1(ja6zbdyQ7X89i33;RhG_%|;g*oeZlA)~YEfX*lj1!Y^Vw!apgN#CsI*6t~18h757tP2cDdS_lyUiYR%X_Dak z$uA*(k4kv*SIn~I<|n=<4o(?fm}vMA-^7J1pztK__IpP_xIP<-qRT^#AN40RhNAgN z#2U1viJV}mXA?zX7>(#uAPN@?Krq)M1+v{di~2b~r*a(+lo?S#2Cjry#0W(5-E^|p z8Hn?nTVm$rI~Cjda-2FT*_87rk+Z4X{h*FB`GqbT^W1#Mgwa%5Pm{KKT$!pm)2=9v zXa$CvHR+%5yK=7G(z-8E(DLZym#Qgg9nFB9eqW-My(c8-lPAAPWWo$2U^NT45^?-T z?<)tA4qu2Gk3u!ut)lhz+ID5=}3Toz-nIy?Hjg)sq;rcbqd22a>@4cJ) zA2GM2pa?BeO{6kxK!5+4^N7&d%we}^T~b?s%-F5mPvx1repy{zfa7GDF?Lf8q>4=$ zYhtlhnQSr)F4eY$1gn?veSd4+O9di9i550#8oIn3vM6lcXmW{Mkja(`X{T`qKo zPD9P1+IkH|yA9;i0p7a{M*Wr!H;)Tm@KaKeIiEKwTHfs@Kra2v)T34lwx1;?Vx6mx z#cV3}%(x=;gIMLa?qd8G+&}I5WR2+d1%Yn`F;m{i`bOWwLGf=FCeOrka6^>g0AZaI zSuQLm)$kid-an^EAy~^DPXt$2XWA&NmS7X)1Il3fOq~e;x!aks#O%k;5 zs6rYxKWc<|z)jIu);uUQ3(pnipz8;|{}A}q63#NOX6Ltxj+(@vw6~$$$s{`ANAA{YtdFo{QgCE98(+lZ3AqpiV~3{wc6_+@f2SLce;moi7zj zgaB`S7kB4|kj_)8M$F|=@j+wC$m8a3)|SMSr|GrsGhYj}ZHTqKVr$&l}FB#QumsK`n#;h%^zn9_3Pb!GftwY{Ka&;aP|m!wd~H)>%*et7HaD-(N8Je zd$U$mfU4_LMKwvz+#tGYW@p~E+{JOE9BY+zrx&6IrKXgqKpWYS7UFiMc@mkWeKPqn zYS+G>y`_nv?ZHl9{r3{=(Cdp&W|^blDpq7+zFbU!ySa$YaYZ{;=emGI6{~iln#w0P z>>>Q6flUva(fGw*hWaJ7d^VPb#uTi!)!M=)fbQ8%p_yY@lQK0;mz)*I(UP{(#f&8! zd}MOwyNayt8u+3&nxnQt4z|swt0x_k$W^J^RRpr2j7=`We!a|v>?fIBa>XgDP?QYR!IMQr-QamC_Qs2Sb&=}OilR$A0n8q)mzw}1DE z0N$E@ysaUkL&$#P2lOgA7~6Q&B$9&4eL^>OuWH^c-ldv&?}nbYTyP4+G^LRsAcf}( zAY&a>WXH9jU)5&9;my?dgJjhMT-}COiv$wyHaAIbvmK&~A0r@@f|} zmet2`Np^a3gyfTP3p_p2g!vENb45%d00^5fq}?qc+z77Wxqju99q}E?I+gn8MM7W? zbtZ;ybpbyoeCoeGbTOB($HY)N+G4%m2Ty{nPEv;z^4HFKp^OW_$+T2bdx;pXjaGOJ zN|$4)a7*22UuylqiX~x3ZufwHDq};f7sKXP5dBK+{hhtMD)gdrv3Bt0O%tz)fyF~y0bb+Z@k*n@`!s&d&5OaeSI#n3e2J*)7dU>O~| zDXN=NHMMLyW_-x)IurJ|zjPLMe4Bn4)kQWJao*(QsAwmS z4S8$v>icx0h(tl&miB zHrXmEyDWST!wR%W_hM;1*dsn&-iTKY-1#WVlZMDK}p31i0#`Lmw+S zBbgFS6YyORYCNvISnlm9;@X%NEn$df-hOrPP_};l2^B6PlDX&#uqN^tx>48EtMt{t z3=17FZ{()Q+i{+<$irpf^pfz7=3VmuPU=QQaWrY_;4V!-EJv}0vqMx~XyZ7A2!LDr zMOeSk*iN9>o3hzrQ@3Y+2T*6~`CchcH3vnHE91fDFgwGKP%oPGP6qF}tMyPd*{>A9 zx`%CtCb&QT}*tR3yg z77Ci9{xQz@Ih$eTS2Md|W3iu}-UT?_AQJQJJ z=EH>KWWez!4f4{zm~s@0%mwsZPzY4eX9UYH82g99m?O}HJ@B7XBX;G z{-VM;(<_SCUqfmZoaL+i!Yfi3pDS-`VPC%|R(xK==sh+XnE;Rt^g-4+2xg$5HM@gl z2%o2VVIj)IF&GUr3r|85ZbIZPx)ZQG#4u9~OjTuuoSU~i$8!A+`xq&|z_Qxh4AvKV z>xYX6;Ov>6TCXtVQ13jr*h&I$#n_x}m}}vw8Pc$amO0pPz4r$<8%OL8#f(v~SdL@Z z5r$Dpo&OPhTmZ(961A_WRtC-1n7Uq&vHNVcre8lh-O#a{y-@oeI1snn4xkn;IOLb|^cZwjjgN9LBo| z6Jzo9Vu+he)GQwNrlBCm6C61kc?>p|-YAW?k#?f(fic$(#Oco+P??M|A7&V8Khd5#yPxv>e{- znCvr>Lx2sJ8zz3HK;==!_F`l@BOAOkPaO|J*MP=o+J!CnC_BP;EF@G=Oq7Pn#_`}E zICHq)t84>iX*7R~nBmecZW$0d8GW7#{6`=T4{Sg}qKF4r`z29V7s7ve8y`C*a_Iu7cx%B01WLqCf;0 zLMXBX*q#hJ@azf<0R7QQw7|hI9xhhqb^sV$^3sEhf<$`R;Xo!rt)>xP8j(lfdgI6i zVC!yxp{nOcx z;0BpqZliDp!sPzb2*v}=9H16yC=*d|+-?S)0k}Fb1*8ylAWnloUb?%(vkeLg91wq` z2B0R9*1;|zZHMPF9O#>AGiAwb0s)(tUV1i^7tniPwH5~^;&pN>6o#+1%Yb+tPVzx7zZ(Og9M-k zSulGT$PF+sq}#3wcw^Mn!J34krR;)uZj(SP%IesKK@coB*br>E*6q>3Ap%@aJ9JrKi836b2(V>>)s5^UiP6>zs0Fdq zZ~1ekfVwcCwLY_eZFX-==hA>seX0s)P7jpAzmYB`|r=Q@~m<^f6% z`N@Cv7tHX7W3fe80Dh1$TVsSG*hpVxgyVyfHyc3R^=AnV0Li~x+vbQcVgomjH8KN! zHxwaP&g)|X3O3#)#wLjcPgI0c1_l+J5HQl7Y$RlsVPO;?kFZ5){{>iwzA|8g`b(L_ zl+82%!ikg7+ujT(kqk0i7Sqy&^rkvhF&xl3<^Y?mpnAfo)3?LGz-=k zRl;CHpbbI*KNw<+p^O1WL+m1)B(9Kb2;9ce5Kx&5qC$K;OvpgtPDb&UeHjL7 zCtn%R`~$09Lx1eq+?FFu*SpJn!=;Fz;-2jm^^y}EZnQkl74l|rUVzN`*kyTz_OX|B zG@?1U^Sjipy@T6__wZCTE_U+9x(nQcAL5yz*%T)|qgbP-P79DKpp$S-enC~LUbxYq zM?#p&m#2q*bRnNw)ICmaNGOaslaChISeg0Yz4xv(Jb;veS^+N6y|*F%Gxhv!c_~XT zZeN4qORz~d>gHpvdTjmOD_{-Obpo{B(&z(d(wqs~$9nYDf{Ty`eyFspreA6NV+rDKvcA|G3$LbhbJ>vR~OYMT`^7G!^oF zuo(5xU|hSl;9!A=?KYy&fP1C#YofxAMwVU343xbAeiigJylQ7lsqS>**rNU?oxXBBZF93m|^8AdV7*G$CHP0b$lGuLg*)@pX z5Vmyp-8uSmQLM%^*hfUJlwU>a&gEf^6Nd=iw!v!&tc%jdbr(2 zxEQV)ESFvbVIPG(d0RD6PcusNyj%T@tpBQAzv8@{*GiH`9YfDxUK|k?C>4BkZK1-1 z2VfLof!G;>i36V$GEL6Inb{?M*}Qzqr$mKLav`+H|Zf^8oAT2M$21z;>z&@1Ke|A)JNIc;}lt=Ph3vPJJlbk@pl zPbnWJ(_&AxxQzK~JIBHLje*NA25kdhjku*0O!nuF{-b_j$ZYs@d$@&{>T{oXf=Dll zh`(qGMZL-J{0!dsMzM0y*P|Zbq~6#}jEt859D16)Ildjf!Fs&YN&}Q$an6feS$V{7 zv&=;iVyWL+{YOZPS84Xnn!VcVzw-RtJ}=%qF99ht)dxGO^6C$R{8a!Nrl0a}!tQJe z{=Ey&FXt%z9m;<-S;<10=k7P~9lmp-`;^Z{GGH|ZEN91hy=Iw>{SO zyP7h5Lf6#30Lv#-ol-+8!v#C}K{~Ozt*atFx(KBxn#oK|2SO|83fwqJ#5}V-o!oqU zoc#PB9x>}943Inpx*Mq=r3XVY<+O+{hSqtd38axC z#up4MRVR)$D#z%;n5Ov@*jMzSm;zAWTZkdvX^G$?0Q&WX`e0nw`9k7r`dFyuQ73(v zX13<~s?~B3hv7(?2}CBab=olBmWamrrU<7pp8U(Px&^K*Z?)-Y-DFo#zAiZ&h zVQ;d|-#+Ub6QYCeEEyH-Im%P!`+r}WdUKLjF9d3W6gWY zX9#1PfR<-o$VBXE4CTwrS4A(Tb3oRgtbX%ErJNvp+ZoFq+=GoeQ-s4iWWe~Y@X*Af zk5WOtgIs7C92%`CLsAk9B6ReJYAHkWh&*TkCXZf?da{-KWA;~UmMD$J?E?tG34li+ zU@{FlD$1@jGLiH$)l;vXE1$OX1%0f2mvXlV06bV|^0wNTX5hK_?S4gxN*xUyeEzAQ z*mw&DgO7)rMj6v}3}apyLM_MAL;P}Zx}%cEI~*#w1Lm-?98y=Wh@+Moe61v6-XMaClCGi+{*QyBaK zxYWN1dVHsB%lV;ygmoRi$NrMb>t(S$4Pp=m_B`LY%Jup5c={fwx$*P+Iaun51+=%n z?(}4xsvm_tM8=Ze$kq70UA)Pw-+X&G-rt=cUdFylzCAr2?w2&+*YIWO>U8mc9i1dD zBqE}d|9gSEngo0~d@p?P>#4l)e|oqA?x{(5N@FR)xVCw z!#^xYH9)U>M8W|Ke-7C@^-Zzw$WCe%4uU3vzL7hOZB=p!u4|mS_bnftp|g)g>K_C% zbbf!Rk(dhMYky@crV@c4KxLJFqPa!7|fpsaPP1i$Q4K_t%C`Rhn#gMfUl)W9B<-YCh|TX8p8ffI_NkQ4rCQXFzVR3uH$5Hf-8 zdQrU~F7h>%VjV67n<8B%j+HtkR&(X zcGJtTq77vo>542kcq0P`m{IFij+Ulfk-?ncF!=A|g_LF80Y|73#R-ceGXKCmGvi#P zvhoy-Wz1BPQodf>bu}=u+!KWv>)^4*CQ)#Bekp0b-99Pd6VG2A2#J9Qw#>Gk#@{mK`K=m7LaYbRM2aHt4Emt9KcW)>Hm__VX3uf z6L-lcoouu67PEcGx>N`iYHr8>oo!SrG99NHcU=QwNvO^ms%u_M&iPed10%G}eiGW5 zkU9?lsWIm3JQjj0$c<_iK|+Q`j|a!@-TXUsE_(r0&u+^ngdVVz@cAb-K{xyB-2KQ; z?S$5_qvIp;PxVVCKx3bEF}Fz$ZQPjk)Dg)TwfwLeW&?t{ZaEFEsF4#FL1+v;w;beA z&@_k30xdL18u;n6PJ~Qij^qev`u9xa%s@6o(o=u1cx}ZYCDb>LHcOD=V3o-a!{6rs z35jebIfoBZ&^dA6Dl|>-r0Wz$pL(Poq>X7@))Y-jhrshPz|)geA{+GiiCY4dpm*8- z@N|yBkpL2~1yVu&! znhsupVJAiq@JL8d+EmPysL+@YdYKMeH$-Lv3E{q+_Ta|M7fF_^xT#d-lXC6S7s=E{ z!hRENb{D!DI@E}KLz!KK=$NJ|5lJJ6Yu8Rsd}MU|x)$1V!LQ6`H6!nBnE-}byzi76 zTVS>0dQMiZaRmqpi%d@(z7^g#r>C@(g*;iT5@Df+&M{UNYTK5@jqp_lWLFj`%uErPoYiG5iCNr33rzU87@lS7;5)| zs|a-1J1A=rQ9dHMcv6%BX~-cGB093CC~Ub}^_Da7bYt+eC^ z2VX!DKY{ntks@j!Ek)hAu_u9RN}W1|_k*%BZ1_$z-F}VT(JT2SLTmj;e3|X@w;5|; zw0;|W^1YG@d%xnqB8e5Oleh@GJZY~S2g1TvT2JSc{SA~RV&@t7!Ap?7E)10++kn4` zRv`eI{X_t(sme6uQqM(Y^1GC%9C<}&A};3<7E|yWMac0IQ%VXZYOh56o)q0X?IM@z zEGFcx5;ZN&h3a@sPl5srwY0{5ur)CZ&=pH(lIvfX*yPwpFKJqc*|Kob zA0Sii6v>r0G2=Y&kR-#zaRvwK7Ds-Z$TejJ^6W)L0Pp#w0jd# zPxlO3f*agv=|U1{CNp#*H<|J!EU*w8{NH%nck@W;3?8%a=C~kjkfJ?=s$BQRMu-tW zu~j<+VD18CrcO5weY{aJxh4IKrqweL{fd~#(!2t`#FyZK0%^U#Z z0mnYk_ct745z$|nQVNPicHu6<`jc2_4^kR>-r<&$Ox47^U5wD& zqeOjL7i7r)a6aYMGdIM=o4D^%xE%~)?L>Oq8@SS ztup|V$hcXvS7o{3P@c7N5hNUq^ankEF;q9|F`)+61#)FFqK8(zXnEge;@$?-X^wGd z{B-CR1sY?0f4>BSck^(=d$?}Xw#sJnz9SN)-iS#@N zP`605qfn!d$~IOrsV@F?C9+ul6KxV5KBrYK+U!8V)_6#6AuvT02L{8Y$DI8|j@O?k z#!*zafg{OW$Y~b=hWKkrTz&WT6)65mT>TQWtJu+XRK+>D;5G}u4eY38C*=6|BZre< znx1dyBbXv3!qf|vmT;+Uh#S~yAa1*KIX)pbZ+<`&Xyce3^{JM@GdW8zAJWOz?r<83 zF-uIg@(fg66&LOD`UPE8`;b|J=Vubb4#$2(a?6Q5H0 z`BQykK1_%^2vw=@mEMyg3U<}dBgN?rtpaDOUk1S1PORnDK#$?hL(;HkB9j41tI{RM^Ja=+u(_dB&D{~yehES* zz!ZN(k#nfa4<$k_gRL&L-@bfh`cElrt5GL15CZU-9f-f+pV~}v+U*!7d69f)6Ff?$ zK&T_~{BskK!a}(+r{jk~t3K_QI4QnPt z8d`Tb1R?&2$#5fFxORl1Dx%~U4ts{M&RuW3$LEdgsRN3uHHYW&ZdG&uG9C2&T+Rio z=>)2{3c+>mn}8G=@XP!yyl&jP6^Yvb&Tx>om4`U zsb^6GIv5WS$ht9c3(F_iK|eU7;}Um;g)>E0{k4wp4{texH`z;`pG)4NwYv$Jg77rS>wR?J9Ra^9K#n^85)ij8tEJ zgJR@QuzPZL4_$pb@g1l+f|SI#u|!5;TL}-{50hbct6WD_&sZ%?%if@@gw{VFXS4+< zD?l<=4%vJGvHGRDaHe=hJhS-yn!beHn}1~jK5RzWh*{uX2z8dTzB|g6sb5#Yepjh_ zw3Fcmj)Ikt_V}J=@f0LH9Hz~yFhel9ns{R15Pm;LL&hGK?o%Pk8qB+EBF;Dl0g@op zvz_ngsi~|THZ_J zZ*kRvzP~0&2FX0&O%+DMU0xHwnb%EVBr@~bl=~>)!q47dHg@{A+myesDuw;#?<6@Z zqKeVCz#B}P$@dx0;on^n=PRvserwLf8bhWwdaPHMpaw|Ps$JfQ_$a-w>EYl3??%zQ zNxpCcaqUTM4@DZ47$7LQ6|FFbwO)%w^O5o7A@jm}@vhs29H$4Q zJ75+GMF1=KU)rQL9foevm1i{l2at-(J-L*TneoOs$7LlY)2~UMQ9rglBKQQSOb!=iF0}!vKxel+ z?L+#?fA6~fIMntmDidZ3$fU zNR0%oG|wZ(dZ<_2Iq~?j4&F!N4Y9|_%q3m9b%|8a_KczrM1CSMta!aI^U?gY&00wd z5`q~G;t7A_Pc(kXX>A|2FDRAWy`e81PQC8VImmbGDqgpY0U3H3B^9E*FdkBfS@>bo zS}Zn|dkpg&=$kwOHs_A(d?J>$RtN>M>_lx^pHd#h;Uu11y(KpKo!pNTk1^qAsgXKU zAaC3W=TbpcCYX5~J2VMS&|ZBw7VaHzaa*krTOHTdFv-IM$Rh*FYr(3M5SBfpQ=AP~ z)|I*NfgH-m1~T*^IcD~Eph-V=p3NPIEby5=&eyg#C2}(WIzjw>CZ$G~%W01iZD$X7 z*Jd>;NYiHJxq5xdGwLm|?0;^p5a{a^-3#eMHgDBh&}@L!n0 ziIu_Y1xm^l!Hoe@(6*}mXxU;+Z}BwHpaM};5dI7iA56=sI$63-;)2fMKsY{Fx;LU| z){zaTf8cxosqA#SICbK`E|3vQtPv?}5KH*6Ca(;bW)iwOqm@xEc`p!jyOV_4%?`u zrUAPvVBbCf(^=~82f2pe=j`d>}I{HWyi{B)O8qk7VxmxQes(r8`eKy{A$PsZ&F&y&s zbmXr+uQFNygC2`9tQtGi0xBP?SRr}LLkBezsAX#@IMvXsz$wJ*teQk&z0@_@2&01E zY#5q&uB{46-Xo~ZzD!pd$9Y!2^ctbDss7m!H5{4kJsl`XY4?h|Net@23!QwAzV4CZ zC*QA}r<13)zfN#WEq@%kYXu~Prj^uqu{T^<1QxC3O_a8M*lRAyR-(X#HDN#|j0q*< z3yNwPB6-kWH>jv26D@AwaF+x;b1JQYYZ`w7C9mlj=*}&!EP7FRyGs+!I5V>#$`X+Z zI3?=22wV%)uR3%lpiR>?LZkjonOUL@x5KYw$t=3~ab<;E=DAp|_S+H{P(S?uZ7dKrv zG<|9}YNTNhu`$^Rb8`gOoq<`ZuUn=LfJg8PTQ&6(68ijAS%p>6@&SXcKgUy$l9Z;c zY_B05l|Wl=U*!zR2-bqgMhM=!LoM98UP%_v8)?E>aswU`RkYvoWw#0V^1Iav&L&Ia z0R{0-2tNMoA&j9$E11Qbi+sww;E0IgX8o&I#GYO`d%9rV-%Kq`^@}-SkbVmjuwQs2 zl|znYOhyYDDiDZCEit(Ja8E}-_glC;T3dGz4{jFSojE6{-48+sL+73qYFKs+h5U{uB*J$fW zsB7k6FMm9qSq*4_aW@U6^k;12um&VV|fJp16F8d*D$@ zcEKSF8_5ohMNgl}P_#G{JE9oK5nLC6a3ews3pNOuYRH>Y(pZJoRFErj6rv<37Q_(N(RUM%1c8~H zNntGZL39bM!$y#&Y!m^(J)9!F-aADk9r7jb=Cb2TUnTc*u;A3>-ZM;^JMpi!b+oe< zCV3(I1$`?VTLFpX0BS?2_W@n6I~wu7cT-|;GEc=p#3%N_SPc@ufV7@gf8c3&s9ykr zfbMQQx5KCGYHlCAmOvH089M8kvDN^dXjR%1U0AzG+L2kTe&+E8okkjlxPrxAe7)1kv z1Ul_n(&o2&OFOxZIjncsGIHWxu+wG1oB%j>vu6WzfH-InFufK?o<-J(jleNok z@8aj`@5lYug8?xKH3icRR|BNQqY<$wgaG@!@p5s0C(xl|0QU{30FHmxWg#*1gHUt# zL+Onj$yanWpm5>a_5+@S3ok~@fj7$A;AgT6MQCt;9E^X|mp5B%0qG5IFwue29|g%N zbl%tvr9_whKkfWdh)w-Gdt?2&PHj0-9kq1^EmV&XrKjm*B;m@C9KUoq3blSLDT&#!fM`8pq{Lo(f7H zvN`W*T>4whZ%mn5aiVA`VaF9a`}N3F7@`s`KiIBHOE_KSU`{C@U(n~_kRK-LynG`WgR-d)z z2yp}Rma{;Y5M0>5?rgGaF*b0UbDddTBjnR7|LcaiwB4l2a1M+ddnMBjK8F@@wFT1y z@ad$MeCK`1{7;WJg{W^6w{b;KmulwvUjG(&GNY!&J1AXKe;b})Nk?cr$5i4LAr?IJ z9l(Me?1k}$AobMkseAS7xqBV%%WBI^b1u@8$o4VBxRkt!&2-(&h--KPoQz)$Mv{*fWUkPb*CuS6mIC>xaX_+0(Fc`w{C7-(-(h! z^6pIxT?w&4f;S}28~~HY1n`mIA6bYITz(Yp&4HhPYg!Q8aN$oQ$T}moa1DPepY9H~ zqyY}>ZekES-Ty@s;ux>_onmmV-p{GsWKXl2IRqX*=_X2sga~!z=Ae-yeBvQy0tByV zeIU2bi&sfrH~VR3r!L;BriCETeUT8fh$brg+`iI38zwAy2hdzr<&EO)PvC_$O)*h< zWn_ZJNkNy8G#PM4g%}!I7%sl?ov_&sv#J-D2iVy3GO8GW&V}?N#YoG%;;+xx!~QDI z=o^2fB~hJs=_NgICxaibmuCc-0|GbPxxbZtk^?;jJtS0K+;iy(GPgtL=I4n|7;Ynf z+RiUbI47R&nubrvF2i%w(v&R8N+^)25*3xcCyui5x-jXBCnDTATzk`(-BHQUo z8p0+>7$TWsmDWjO!YL7UkbQIiX263eLWUjGGr=coS9>| zdsBUyWk!ZHuB$}PPM)+CS+RlbyY)ojn5|#Ec-g+oD_&Zxsp2>BkN@$ihoq&*{$-I! z=QLX{%4w=U8x%X}0xvhJZgQ*c=l_!|!L7J2NDWo;&%`aVBrkuy1n@8Nx6Kqzr{C3w z#^v>wGh}BVf$OI3L1znmbc$gP`DQl~N-Nya_u-{w)_P0)XRncycMXl9cN%}2k z%-S2ydih~fx0y46Q~=pBN_j$(!1VI_`ZhxkR2=QU>28ngKQhQfb*rEBbwC)fEuPIA zZ_U}Kqpt1L+w!{g4-XJx!gXficD)j~pMd`LS zTA+}LdFeG1zT^)$@({poASL6HPMMuJWVi=*L38B}>*ve0h(OCBXJdKIV-U-#)87|8 zg^kbD3?K2br%kuYEnUgSD>aMf|GOnD;c1oS*rz%_;BiT@>MV8y>7%1P7Igt`C41;?sACy(?wY_)9*R@uKn$z8N__D~EhN zyb~HFc!{yn1=s3v#WQR_MLGBW&lcTRY-DD3>w5Zjg6R%YKN2mmw}aCQ{}`WK^TX+{ zGDgS6hclh4Ls90hJWt;f&8MWT8~LIeQA(XWzzhWirSoGB7BricVR;zK#9NJm5+gKz z{qRN#yi$1KZwJ$%h`k|vGjMtQqm~@jJVa^Gw>W|yh1`77;>cUzKRs6NysBbdwGfb< z)FhBvC5^@trE}>u8sp~5GTM`blt1_gE6au+TL%-*F4)w^!k^eQ>5M|+M{kYAtU@!@ z0Bjm)fl6j>fje0stME02VjWUrXFHkY(EE z#wY!irCpma!s@_@2YHliw$$qN>RITwL+qqk&Wx%Q8LbLa@iiEaqd=`5CH(rP*dCyS zwNf@0p29hcCmv4mY!7B%3S^r%MP@VSfXE_TyNm6xBCnjL^?O^<`EIwf?Z_h9oTim~ zZj#f#=WpsHr(u-cryeULr(>P>u_E)}@@v-~+9am~oezv6^U(61>-W>5^Wkn6xnV`I zyr;S|?{o?Lp5|ZT@eje2-PazuBJ-HnjNg$GZ@39BB`fOj53SFI->njFi1Hw|fDgKa zul>)xZ*j8E=|n$VKt$1Yckaiw=zOm`iv2!E`~%}P;9`0D=;wrYO8A395va0JI)Ry9+-ts!yePN58S%oxWTuHP&4M@y{wizoY2l=> z8%R1o+G$^5y9}Y(7TtX)Nw>`fKnSPXw+H|9G<#&k>x82%ByUv4^vuU4S-#2pmb3?| z^0gB9z+ptE!Q<8KiT-?Cv5=0rfgm;LN&Fyb0&FN!)Xap~+Km#ur)w-4PV z#rm>tfaqM8#9WumT$RimoRg@p3VY^V!IL5)aR;aIF|=4;GNOZRKU&@ zpi28btoAffjhCv;#n9>~*Zd#EnjI+|F}R*7hud?hravVeu6~YgBRM&yxj6KO+t*2s zZ6~sL=$)>bCfoUk{{!=X;TmrL0eiSTeM~cH#4d^LE3fDlmpob^iS0_CEc#ss=ee?I zj#{cv8IU5@N*8UbiPM_&^EvvHr8Li3Tr^kuADB!2%g@0Ng+mj zD9kf|O}*bqu(yv`dUVP6&kLezCs=xDCthmk_7TYc1H*sOmKteIijt?s&Q)T$QvMGF z|0PG6B`1+32cXE3GhQWnK!y#T9TpTbradHARPXdga*=hk%B35eT}|TJ@^`hJ&iJ?? zD%%Q%XXVHFMs=~FxO)0CIQE0me`qhRbCNbZP8yh|4$kKPAv~KoIGZ^nddWm;Yainf?_sc}N@HrTm}r%?Bm%2jlksLzVUOV9k3XKa zp9~-IJQmfsKG3+X8hASKAagp4T`X*# zgpjSw?JRdX%UmoxnuK7Z$lWA*I!j(GoSKB7`*TJ1Y!<&**sTb`MFRgUj(d^ZrA+#4 zmcCrLwFn_Qf!kT?Od)qMpTAt#SSfU*2w_SRKO>Qwjnu`0;vU1rN$%_@YH^CIJd?FL zQ=D;rs!)d`R_**~MsySKQCyWNkm_=u+F<)7d3q$D^#6<4=@H@2+5Z-)Q;K5o)FcAk z1kay0Gsj*o?p8#w8SlAB{8%P@rkJ`|$WSic`t#Dyb*ZyC>T+=(rP#M3f@n!ToJ3DH z%0~;iv$?3n!t{Lc6~_6(bDh{4_4B!0fGFQvd6hUI6J(O1UM2YdJ{&wu4^JY+{dbp97R$;s{iirxTHMm_TX!B@t} z*V^FgN;Iu^f*H_?bKi^3{4I`s-<$kDMG25rdgCFsdmlA)%oRT4gpxZ-#vd!`Z5#ix zL2~OMxp$v1bj%(;V}+9IM#g_F;qCfANP4^esNND@y2$^ldRy!}9*(^6h~K|AV&@0Y z@1Ytfft=Ku`Wdy5{HCV!p{REjGdhhLn&%2HcKScjn@zmN8c99CS<>h{mCPC-&KSB}sqYi7NF@7W=kqojFLJ0TVx_#d!)!_y|e)0DepT zr~IUpl#k&5rJR(Hn3Rv46kqD}cw~`Ng7mRTvoi+ysSMO99n^nPM)DL+;(v2e@^n(- z^d}E=cmc?mGfoUSwMTnRL&L!R!_@u%Nv`o>?D79(SMw;N<)y>c+Wt~?cB&Q+sTP2T zQVaH#Qj+U{4{@AA;Q zt;2s2YGz?Ga>(mC{_4sY&<`AHA9b2$rx>V+l063J;!J4=?TU?=02cdTG6uMbgo?$4 z#cUYrpj!o#j1(UG1g}^?67i>EPre)7hq=0)sTFwT(l=}I@~a(v%{KG;?mn8zfJ4R; ztVEo?2^Mo(?{l0L@4yTk>%9%n+-Krx&-H&@?aq46m2o^Hn2%KA?$gYeoIc8u1X{V? z-p)J9QV8$vP?Ns>XLAcq4uCTz<(Ab1E;eS|PnClZ*e5>q05i{)DHAL{6h=%F^H%AF ze6{(bC8WUfgjIHqH0ORg57USpPCIAU;m(!d&sLSobizLp<6NeWG7N* zZ1ZiFmxcS^R{{*atKjC6NX0jw)}nJ+j18^|(%C6IJCK6T_DBQYkO1GoDRx|6jwCt6 zy{38ZVZz?5F1co@(mtE>ZYU>AqseZSRQ5+^?in!M{`JAYKDf3-Z(P+-KD#6Fy95d;N9-!St?qVfGVC1aXE&l@Yl{7-iYvb2zILsJN>Qh;wU14||fRz5is%B;=_ za}T?|q5JsCWHpBVeQJ1~w%aoC1CSvBWc?OQG{ROGnS#L%ymSLeyWa~FC6|ExKwH7E zDxMuvmm2S4K64G%9AOO4kCU z;dzlH$j(@glMlgW41ngHY(r=(Y$IA$U-VX};BR3mSVncvDRrc*g8&0E`z z$nku(Dfx|&?=aX?&~OuUQFK@NrgTIPEz3JY6vUGy7~p#m45D>|K|D3J~hAO1S|Y`g#XzZ=zJlxqMlhW9tw3M3k#tK%#`pnF~`@kni$d_7f*_<-Td?xp05m>291A3+i z2ADoGzSa~1ys;NF?vaT-o?civM7LMsT@|fx~Zx?|X`u3TNYzA1O?_$M4U``2j}` zy?QuW!B%LY%~ zVe=e*apx*QlU?wQ<0HIsuT#ai1vx6gCUn2dg~6cX0*jzh)cKJR@s*68MR+?KV#?&g ziBZ)d7S?^`0J=xGHWLOdj+oIu{;iYguRnvc6F0wz(80+o7Fk+VW84*Cfb0-U9&^0n z@G;&3tJMA;C@SJ_s0AZX^`B}YD-JYYk&j8G_9ba3wXG0o`=I-GIg3U25ITpg-i_%j z{2{oH%nzwXCM>y+R@;^B;k`G}flw+;jZi7k*cb}Zg~4fShv0( z5KN$Ec&91*>NeoHvfH+yUIoBknKZa4*AIVXkgjfE;xOy_?f=t)6j!LP(Ho=reH$oUWpvKo{d-pZR}zkGd9x(2*c-;~BvKT< z=LEfOEW#j)*8RhESz*o?EM8Vx$OITHJQkDnmYIFG6(V@xtAcD+m>NJz>!6NKqtMjX z%>T%;n1!pFrOAtixyVm9IgBfx`I=}ssGXEzk5LS3In*=o`&t9XDGWJ86Jy!6NOeRd zR_cVE_s8qT#9o*!{LLJW%1dNLqx26>ai^&(~PD`^P1$KJl`S=l_FG#edl7>4sg7Y&+RA^wYJxUI-$3(Hdey z=NM77zyk8<-GC?KxzxX38OBmN0RhiIDYL!vC9`n{@K3*Rbp(UkC3w9@p2vW{_>2Z} zR(gv3xD|m8+WV%sX%Mx<9Z97YPZG1@lip_Js9>BCB8kFt|1TE`Zxy7H+rj+u?Sn6n$lLhFxP5 zxjL7xe&gv%8@6r{vRdz|cBWFZ+62q-6hB0D`U4V{Tyfz|X_!X}4Z8v{1|v%1UV_04 z#z1iNo@x7;KE&^MK0Zx`If=Ep-=i?O4Yvjw7J9@K<>rWpVmBhzwLKmFk{Z~KdQb{2 zY13q@d4T1+LtBdLkogaXc=NOqTpfGMm3Bkqt%igXb9MSrqoX1B8Z}DCIi|Uie~UBF z@hbyN`&wxmCuLs3X-7BN`yXFLm&A*_Kyl5LOa2@OH8^Fqfru{8LW%jZ5OwOmh>B5u z!yhy8`@reHBn?EIChYKQsPHw zGZx@F8Y(SX5Db-gBAjEsAxncPv&@s?cM6Wy8iCdT%X~s9Y^88P>;! z;L*HgOR~!B%9ub$Dz=6|;<&ISCM6n6YLNh&!O)Q09k^DA`=Lh9=0{7dGN&T<#&iE@ zuy5cC0z0rGZq_`HC{OlURlIn3S1{jr4ET0%O0#6%ZHjQJS7d>o{t+L*5Vx6~YVYV%d9#qMrWSnxUfJ~uu*2=ahn zdO*@`Nwh)FswBC`;wJjaU(FPWS*uc2LeiTEA3a8P-sVfBj`GtYq;+k*I6Q&NBBI5M z&MOuA4INml;(+S+e?mT@ZI80U>TEFMSf?4c@bswckgZplE=#}9L2K5+Dv#+W6!gt8 zN^mvt>>dW|_m5WCv{LK+(?gT;A~yj-t{PTNI1|awM~j43Rl`zQMEm*zq{|;tVzd2w zxMu2Yaq$)UBIf}_DKHRvDZ;lfxSM{*nLF|Nb$xvICF4QcDag>9e2?(A(Avfqky3ec#j(pi!agkI>&gJ_?VLYP ziyT9g@~y{tGCwoa)II}W6qV(*Hi+-<<#q>@?)|@-ccCbZTD#Qo^{d7Zo+`SY|2f5! z0JZLZiV;0KaQw!y`)5zgSRY*&wP_mT=tyr3zhCWB`4s#bQs=nZg+@zvHH}_2=Lc*^ z?sz**A88P{m8FwjsZzNSq$djKrV*UGCq)x(&-`VkBAJ=_~h2-RHh8$(=15aC1^*o{7lb&+RN#!JAit&BGw>bBJOOUf< z>^#Z!x18QjyR9oEXyU-`&XpqO$Kz&y_w$5GTLu&rpBDyU!#AjyNhPPD?2eivh~wu< zmLH26l92w8MjkNBXDiu`Ev#&RYCx%DI9QsBNe0@OE^;Vv--}zW@;zRU!Wj|C_B-Or z6vw*}tm&5Z)p+U1dxU8mSc&sd+U2uj<~R_~Bn zspj!4<>_jlu+1a4omIV*%NKknPcdj=F0G4N=N zxq_QsE%@WdEGGnQ{El#|Ig;cw=1fM-wBcV*mwqt_m>D8LzUu3zgTySiZ?t6AEy8US&DiZe zFlNeTaj|h0CI*xkj!o>QEfwJt|IrPEw9JyA+?CK9;h_yoD*X!Fwyb0<-@mRnku)?_ z^b{M+I9AfkxZ?&;^$-kiOSA&g5weqbcWKmf4tt6$Epia#J)1Tqb-EXVJJ~Av2PoSy zD0*m;E27E1=5@C+OB~GP%9l(>h7_}_4vrPuHaI*tSBEJW`5HgsaQmb5toqrd`lnyn zCX*_u6b>rdIT2oacRCmeGG|kY#|Czii4EI(#`wp4OX&d=m-7Jnf#P@(2A;5Xvhq^_u;-n)V2Po1|GN=PU0~ z<(`94rF!G;G4_il*}c)!Y`eWyI(-U8KHw(x_CL35bw@n~M=>tbAGVUWRFI$ZjoL$1 zt~e-uMco7LeLaEix~+`G>d-t&Xm1X2oT?_g7-wv#LWKr(`HzkraZM>XJbZ_5Os&pG zaYmfWz}CaP?CYM#~^LlyolwH zY&@v^UBy#Do%nAcx{*KX#u^T$4j=UA)MWdO8a)R&4jXj4m@ARS(XDSukxZmfMarbm zqW}QusT3VZWbF%5Ol6+!FUdXap0@=_6oZ6&_Kujnb&Ejd_FWa$4cCKH=|En>gYJh8 zvu%dUk!IX%dB$gh*1V|2#}O7ypGIfs%C;$v-oL5Xoi#JX5XfPXzuHEh`G$heKP)*5 z5%0y>BX)Zd>s?8CkE83|)TCNyn`^9EJskmu%%#uZ+VerkdhF+s&DZyfCEon;YG1N# z*I~v~tWP@-?OX$h!s(=&aBgTTYWO{6S2xAU>&gFCNca^~SFu|vl(c(G$Zw-4ddk*r zz#lQRIMOjH>RWCf@D#W-VZ;Ru6Ioipu7_ErP@A+59Wo14Hl9<&Fw6+Qrpgw2^~?Zx zUzau9mRZQ=(XaCgyOC8*<|5WdnLRi%vP3~EYc;fTiuC}t{9b?T$(mY3W^!&?2{l>t z2cgCitM>SNXr7#w#9RKR2-sTu%ep3POOWAZ?Xu6~4Io4eT%O1HbnR@|StpDhZK4%; z3}2cRQJNEc(-m7zmC43H;(2Zj_-6wJgMEDoCL+A{ClDcawjrbP=0?H2S z+BX>qDcnv9_Olm8 z$E|}L;aimbrS}*j%>gTZ923AS!>FWu4eSVWU#=DR5@_>nt{8N)W*8464ykP~Xn*Gx z`MW4I8SOK_>tT-29d>r(FNm&5P-&F2TXu&B_UahWYQmGw7KH_F7+Ow>L=T9n!Gx;a zNcc zN$;{P$8G2}yn|xKt*X46`*a4=5$76#lj9sP4+Y5-TLRbL!w|FNH{?24vd%Ca&>C9M z#q=HOUW}u%nt_E5{DZOeiNce552Z3l#m7qPTP^y+XEl2^Y+gdeehYfaE4 zq?IQ2ZO~zISA%KIr)8rTf>O2Jx~HTH23^yemvJ^c7@`0n7gydYyZu~y5ew~YZQNY% zmnZk*rIq)Lsp>Zm&HL`?mTFIfhe0+QU<=^u_P%8eXNU;gD8DgLWb(^rC9Q{?`JL7sHO$8LX*ebUP2JRu2@Hn zy${X!;ei05wcpWp`d%@hM=^iH(iJqO#p0qcSusrGaNZDFyjkB?=-8t|LCr>lbmPdEFuz2s zIBWrd&c#7*X;u;$+6 zb0wEACvYB*hhXtF66v8%M-FOvZtAnSDeDjK!{esn;YV;@{P0&E;Cr-eJi%uL$F?%RA*(b!%n+Q!OP-^&#-N{t>zPhoH&465dG9t zwnC^%djJBml&K`gpkM={!#Cq;8?s5_a%&DH_f=CeA3r}GUkHiJ?x*9QbvYVGdp{wP zp#gKRoRXede7Ss2VDBdqYuq5b80=(!2z~_K?C)6a)_bqAb`4#a#> zjVK*YG#@B5moN(}(~8uD3)$3a>(gCwP)nc&mF(6)-hE>1U8hc>!T72Ip7v4k(gZn! ztXR7_rZ#tw#_kVxwX;X21Xd9W74#79?$wd=)%xL!+J`8J>y1T z?zcK?r*yvI$_Sa2y89>`ovQ6bSm5yI>e0_A8NOqP&?KJ=ekw_;3KY1FT6Ngjx=?EZ zo<-A<4M_<`zoA)JdfJ*6uC86%?@LRJAg4%$1uX<+5&V!+%{VQh?oben=gBFql zO4Mmf?fk+;e`*k6|29NEDu{ffa+|*ysAt7Nv^yTUIisGxc{f_!B{c^1z8bLJ_Un4A z+}jI=yhFl{sy^6raF`-yefkw{1*8}b8wd2Z2*H8sU3P?_kp;(?zXPHT-8 z#)1(?vT71 zaW1$+8m`H+**v@72+%5#hbChvIYi4`tRy)ighv~S``|-)9|mnK-W3F3Fgf7E!V^?@ z#t5-kE{z`gVai5XE3Ir|oQZHe;m>v6*}fU>{}+oqancC}lb5dZh_4DuJ>R{?^R{k| zZ01nGf9Gg0(}CXbhX<#*)7am6w^!e3>@@0)o!y;1e8S~pme#=Dsj)%d@#t(#Bio=q zSe0$p$QF-QmbPb>wmMr=6ZgKkmbj*oZw+>4-f78+m=a?SWci)%H9yE@c+ydash3^{; ze7`_*D4nxG$XBB$KG-{zk}>ys=XJgs!tU6hZ0~*RBwS)z9{{N40@ z$I*K&ndfXB1Ror}S2!xK@;F;{93`C~{{)Ee@U^?-p|F5%nc`q)S1Mt16F&Gh?QL&6 ze^`?E0eo}vLWV0^TRCjGulX_%wzXYuvR;G;=JTnzE+*G>c?>QA;`@#~RFcP-X!7$K zDy|`rgTKGkd+^*B&y61NWTjE+P1W5&F|MV}s3tI+g(@1q&3gptZWBm1q(^xCh&O^rtkw7(oEVnhoXgjS+O?; z#h81XDaCC@euGjjcTS)02Zx+zhY!OzGOYi;Fwn);JqC%iQuP#^nW>HC()AuLe>z`2 zA02nDe(7|+bg#DRt&w-p`Kj~Amn)Uh{ra(cd2;#nveUi#diJUFG7GbGa znE+JFDek@&>p@OC=>&I_dhYPf*EoV*d*W*N zfF#-xW3znpf&p%i(v&5_q7T4&!xNIm?hk6r--}>MUHX@8`m9uBLKNAOf7_j#K0Gik zn1C3Fa>dXyJZh@~=QDVs%jf61;FoE|frMhdI^^hy(0Cg6gXtx(b$dI129+i9-iFaI zzTMsyf9X6an}St||I+EW)Ceg*D$*TeLBeq>C1<68TSQR8gRH5^Hf0pCfn(Q;6cvY z+uxiUFh1%q{K4P%J5De6?%26uNeZRuZJ#%;`=Qo2Oj&j^o3UXSWULi((k{cnb^Bhg zD~KJ!u?*;LyJ6w#MeufjZVwBnYr^20)L7FH6PSk~n+O>+3@o5(b`fOaNn>Q-YW_; z?Z0c7GVEiO`qx;fao`6WbN$A9TxiaGzEP@n=prD-N2z|+D}QsMiWmipY1WYre+>Ln>kV|Li){4Hv2LG{ z-tow5liWd^TmvyOHNB4peC-H-^f?5-B=LZysrgMD@%1sQrxiEGF7rxY;$rj^{0&gz zTV=E11&kEH5hLd`NVAVCQ|E%)P)X3MXR3U;1G9~>nVd`c^ zVLF&mA^0d(e^9B-ndqJGg{c8X82`{xEz6_#UdINwy0!W)OdKndCFdMpG)1uhvgvg@ z&R?aSS3*4Ut?RA%CcioQCqEq$(1x7GFOcd75g^wQ)NS|*qxhreePy{f6+C7jeB^C;Izg9({uci+*WzZ z2J9Qtqmo(OWu;WjiS$a0;;1IddM&`aF_^XI9VO(nnzQDR^Jq+@iO&nB9xxG;D#inw@qXh*g~+ibANqAP^l+i0-FN zzV#otG+L3TJ;_3kkJ~LU38bT4EA~(%BD#z>Ih+WKiY&0jO1&bP&tqg?R`nYqtVov& z0J^A0ZSwifRkE{<()eeUopVU_mqs^A3brZve0`L`u)0B(2xiNB*%C;^UJ^VKJu=} z=tiz(R0Cr?EsT3QI6|hG>t)7Bn3r{D?NAkn<7YdNdHjHetOBupjXUYgJrXYdz{=2a zf9XBJb@>>bUIfPRsW_yA(kDeUJw9IY6PaFg2-9T`3y-1b)Zre!K{3{ktMgxQp1MmTopkW@_RubK@ zY_ILi+&LUZ2P8ogYYNnWpk$52``fpwfBFr8l$6cx%!x%b8vU%UuCA{7sw8Uh8DTd< z`b2zTWhFK8ipOgZl#7T|Aj%#I zKi1qy$D0Wql8IRWf7%k8Ml=^}g1dp0JfvH7w(vL6*5zy3Q!&6(*8-l;d$)?2AEf@5JU#1h#LG&>XbPigUM)z%*`lZlD*i$q*pH zg2H+2MY(hWJriOqJ@8hm;y(yKedWOtU_?jN8bj z5DC;(p~`o2Rl_?WJ0&B}-Pu zQ-+16gW()SDs?isj)o>dq!j#<-I8c6AGSRF}xOKvB;Dik(uUz`(!BZNHxRr^8D%ka4ou>C({io1XCFP!YvWB5x0eI1 zfwpe7r>4($SJO2dn%LjwGTxl?BjxdNU4EfI)YRM6PbVY$DtcN@w|;o<+-hF;p4}%@ zwXa9wc+Bl9ne!ktnhuf3tIUDZkIi3ES?z>ZkDA{znBu#=7C_u|f6SEX)PeGVZ%YY# ztgQK{nwy)#TZ+O99K!&&IT^(c`CsF0n_ zva&`hd9HpNf~;H9Pk^jN=`b6evK{50#-`Tvy(LFmv((7rRA zKITtn8N*s(YGjj_I0s?iviVck1NUzMf|Cf1g@{>9T_Xu5Q%gtu6oFmY3PkG6xa9Nj zkZH^3o!|oKe=+lfDOTQ!Y)h_Aq-tn&ba>M%6vxZlxf{JmX);_Y!#-F@gg00wsR%Xa zjre6w{5De=tHFXq#ku)IlH zfhR3*n6=GDv&h*-8{KKaUE;H0n2dIPO{VUYX5uR}f0s)I3`{m&P271jJ3gMNj^n{? zPE2q<-cDdn7vx0}+jDn|c9Bd7x^nL4WSFs|jLXTx1Lj!bAuoku9T~C>Yg{{&>l%w& zqm70r@!F+Fz0m6kW!dfU26@rz?jO0CHgdf_+ALKaF}@{t8|{M60I(*-2-Yz>a7$fO zui2H&f4xUBA|)12hA=ys3U^qHv&qnET6E1-kS!0KD>ByyM$qKRwvp~4YGgMPrZh$amndoYB1#M@e-tS4Nk%bbVHe2owP+`MHL|Qw06CDk zi|$Y=0aq633MgH{(XeMcG^)86Ph1Q#mMH{I3M^*hB%nydOvCA%0x9aaxg+Py^~!Yr zRKT7VD!EA{EL&^9$gE$%sG-l&a4n`ij@AUQBJDWV6SUd6owG1&)!B&ackxqE0Nz!Q ze-j>Wri7ekC2e39V{#9P8`e)&1J#f47tM=kmSBcF<;Rbv{He`Rb;;YY&d>Phs6d;p zqs&oWk**Ds^^+9>)iltgq-pKoRLsEM)BjXGTTv&MZceAr<}Geo$jVr|(7X3Ug-|P~ zNyQ&&63BQN$j?QDNCQ*1y)oQWEs|pCQTyovQ0ov zy6b6>Hgb%xn`N|%T9PQ9N)p(@8hVhNz|lsFx|Am?hP|e>LdU2nquLG=wVo1KPuN^) z=s211;CPw~Qcc(?^+7H^5CiinAB`t+^#d0=LH4jKBDo?FHI$>Gkiu2H$h8+5fA(5t z&=KyWnVlOcu>y(~vC-YNw0hq}F?WZG$sGz~2C`jn4S$^bO|<3gjVVaS4DcB?WB5eI zoyRY^zmvh4m(fz7}pNj?2E48$uSX_3hwAs;+H0|IgVX zZCbeN@h#yewI_JEC!i)54n3v5YZuMh;hcPVIBA^tKN|QsBxuXG3LsrV;gA9mb$#E9 z%0M67M%8eh_~vd3gNL`(+5pCEH;qLkLSqPH+9WzX1m1JXyJw8y4?6*xf60vKT`~f$ zANo8J;TnP733?}?C*-jLx0&tEvD%%rNdRunYGNihYZk~FN<@gg4EHzukvDvOvnK0P z4u5VP z^#Kasw$s#da$v0$8cEk!(U&EZm%e7mpd=D+GGeJA2d2_rp|5b+7-lxYooImpfn{;U z2-+4d)Y7wr#q6r?yB2m=~&A~bHl7# z7=|_-q&_S-s5OkyH77q>u(7>DHIoto-ji5nLurxS%e}w@oGsBOXMY4=FKkCH< zj)9IAJ~lSoqtnI;5%f_os7+_WLP}fyTKApa=)TiTSSXi}H#*L64Q;u;vzM+1|4#+- z^mRPH4pMBl>2RiVtC4JC(%zk<2Hhrj?LYfwyipZpk%ygRorBb z+=$7`{MvONf7)CL&7^iqW%feL&Iy~%v6w44&uqH#&;rt7zq2qgOly_X#D>m=Zb67= zTh~IbVuT~LkWnpRFMzbq@v0z7PZ>q{7T=k$fipWrZMT&17Nv>E(38hZk|s+XgrA@Z zn$rZyQif(o`W0gB-b5;zO!m{2<4!?Rn!b!~hEt3Me=%q3yWh^UqTPCZW>0HM`wII< zzRjSvH6sG@$8c|)`f+8 z?YP&C=t{yp>}EP{$u_G5cA@W*5{*eLQ$c7ZRy=+pX|?>RqE3~^aM8a8uI2~r16+;m z#}$9re?_k+xmx1)dcuF>{Ot1Mrw?B~5KAkAN@xnBc%&dVH0+K#|BV8%M<|Mei`&C^ zGYM<<`9j~-j*rdTFa6!fcv6iEjZawXMq6f@hNILwfUv=Q__XdFWybZXTx*4`;6L_( zostT>c65jX6b_+1%5TXVHSy=|$DKbIBuBd~f2FW?4>y@w_ca59IkpQae%^1A*)?o5 z-~8|%#rDvW36?v(D-s5$4f_x(n`ao@B$ruP#565etG{z8UA#di3$n@*H7|0tD0C0crj1Fdj`DjSHvEG z9rSNFbo)b8(8#KR$Isx4k8zrd&~Ugow^NWf2`Y`kaG5Z^SJ&Gj`JBw4SVIFu=74DG z%&##M)1k#K#Dw6T@lcEWz*+(=L#%REH_8FBAvOVaE3jwm1LGm-4ay7-<^693f5g5) zV1mMXkVlqC#LX3naEzr!#K} z;iA3h&xCLR$0z9q-8+)VH<`gUxn@8)->1 z%p@fDoQ3YC?#X0!bg5<@&VfZimv%6NmBICNnM z%>+R|*EH-Jnvyl&_rM#A=sBhT*3z(X$f6KDYHUa;(kksiL}(} zO&63}LR#wey#)(;($pF=lPG3TJ;7-eN)Q}}Zu@b zw(p)`00e@q*^XCtrKBIod4`Cs|A#(BXaI}K|X4;_6M){_B9y}huDdP(`hhvO7zCwpjd^+(}y~inX!`6;rA?SYOXc!ywxDI(Ec9;q} zX16mjk@xX&GL9z{f7ee0Xu*aEE%7c~!lVU3@MPCzG4*@z;aMN~1qzWRHbfeesx_AA zuHVa{^oQ=Wx}G2ge~`qeP7~h2_7Z(7M9DD>;k7VS{)3g*n?~u@%+G5N6OsQf217tsKdDyTEbJ*2mW;#%z4DPb zY(i$&e51_2e;zS0bE-CG|L@u&F+C5Os_nnL>US4U0`bzZy25*FmR>K>oY*=gKz?Ai zRtT?ME4{HmP{eTM3A{af^V;IE9YTw=a@Ni@ptbguHE2D(ECGYHr!08=jCOILvB&!8 z2ePm?uiqT#p!!<{v-YMpV?pk zk^cJ6?5}^Qzw75w@`uBeynY@fe>hCZ>*rDOhes&6$e%T_Up^h2*8`>1P3!*BXjb=^ zRy(N&f7%8;{W`mPyr(T$+AnV|RB7=R#4W9#hsu)ud_q~+%L8SpULGuq&>+z;9C@p#R&2ROWOxBbN7?R)V; zIzO~y0vL}{JOaHx{h3hs;pcyS{u#(BZN`K+SHa;Yahq(4xafV&uBp%^*_A40jE9=A ze`}gihEFzsa>9(Fz4AaDJo|r=e9epT^mxDcr6W$m{65T#2(0BOZbccbJvq=w8V=o} zy_st7S9tT4A8fAIX-2_d@dyCfzPj+=Ct1klZ5A)S_!`tf$9U7)`=-73O{eaSj7-c9 zMj5k=%JhiEp{E-MWTFGjd3wY8o;gDbe{jfyFngZ!${UGMc~4i(AwOYV#oup})#?k- z%r}W~MY(vrr6F}nAq@35$k(D<9KsU{wx^}g(AW=1(6 zcpxJ*!t=|xT%_Nj@A2ZI5|kDgsNNYBYxWXW&)fADPN5qc9m+8ts9&B;Tz(Ygf4aFT zlIw==oY?FqMT+-EtOr87U0?Jzkxah8$2 zeEHIM8re9RU<6Xs_$?X4H`^enjsKel-X`+{`45_$9eO*9(&6ltH=K!>*xa65H_pCa zMlsrDEun+6(JERsuW)cNzI)DQe;duWoDkoi%+RE9PZo@2Zj&l3T42z3dnNCh7eJmL z?eZkz;;K%diaXBc44B_Xs)E#@u&>-^bKT0FH-Ms1prKS{Mz;rt2=At(Ir0*9!Amh% zX!4IK3OXH>FOG{{N+oJTlTZLqpvm;)_y^Ee`E0iwMfjt z0*7I=fHl8W1DcK(C;qEf7;Du?J>kiGltcDeT>c`i%PcI=Ds^w!yoB5OnSq+4I_zFC z`kP4SxniI>qji`1W7}Osc$eS}S1+^SN=QGmDB*s0rMWJg;RfDBbDVB>%YL$%rj@Zm zV{DA&4*#4)Edk`bI`Pp0e+}mcHM*Pe^@Lf{Z^l;>mgy!M6K<{|gaqDAh6JzyFPe80 z9~u*zch1PZ!I<{+0>>7U9rtG3;%UYDzida%6MeT7A7hO|~UQ1jq`stq@ zXyA|`Hjhu*E)3gA*FEXEp4)S~z!%#H;T+ot4ejPwc+*e}WL`t9TIAr=aMqv^Q)qkRjUxM5$wzY{7O zUwA+jQ11=*rl3ZwS%Y!ft9*bOg*mP;$5l-Zt&3Qk)%#}xQs3txB3jbhvZh}YN!Ff;PIyU_J;Rd@8y3YLXvq^$j5rsJE+N0%e@9-&n}m2pv~-ucxB9=I zD_ATa5l-|w0%npSa*5#YTf^5H0SG^uQW6uuqEy;;VS+9kUTbDO%s0~RAe$yM`#}Ec z@m~%CkBD6h(po>lsX}BM0rwmix~&e1E>0*uMj-KO247gIC@EV;7581gk(18}du-&8 zfORTU7Njw|ek1_c5Ra}&(kpL$dzs|QkCt1XxW|!OTF9) z#~tK~Mft?hZe;an=aOZy-ZdCD*EjK|NE31t%*IG@Z zHHUG`e>35+@!$;P4bzv&Fl|Jd2kaVB*Ds6V8n`o>uE8dPri$#qk_jR69{Up(E*k@M z;Hh*?&h%r{Rns*fnZ4bDcbfAd?@~_ZxxzU?r$J&tJd7!UQDYaNyFPR`hwe5Uv}ppt zDFwDjds8OX?LEk$s#{4-w~z*F_6?4ns&5gnfBPC;*Bnsk4iw#mVW1KJ01oJ4poIm< z&P7Gs6O>BaPH51Vc0$~*FV_6}D!zPN4NAsSi|%|uZcYk!W2HsNnHj!+bLMS8adEDx zhSn5wU1|C^0)8KO3Feu?$?IGI&x5o%JwBdlcj|ZWnt7Kv ze^V4UzT&U1C~;K+W`2&&fYoZ&`tE6TRR#(97Tws^mw$dddwY5M>C@>yFTb4r0?FSg z6zkFT@v-&cI>{-{%+ijVXb2EH?kBVf`60TOeF=S6A?k|F3otEN`Szo*Hq#T;F?_77wheZI#u7dCIqf+Zk0 zPIEF-H7U06w%4Pz-TqI~3^#fXK zVdI1sXbvasWP*Yd0fsQF>dzuP3>2nHdrnJVXs#dF>eqE)K^RbUE@56W)VacmaOcS?LBu%Cf~uJ8F5w>_H)#IKzC`r0Q4)SXKK=^H4-XVe$j8uc74;q2(k(g$U1FYFNOlo7 zZwvE#sulAI6}vM`+=nftd*P11iTe+azv^Kbs(~85tc!RhgFc`s$7ggO zkR(A+`R{bq+Q#^mSC$oI@Q(r~(h_lF=reAp+ zjZ0YUMcj|fu892XZM#)|-EQrY=4*WX6@6&UD7BRc$3j3Qw+402HHLI#jJW-_9PsQ-PBDRW(Ffzy)kFZCwcF2Sd>Yn0ac+E zC$$Cev(_op;7i7M3G^xR3uRUcGwN>KwPa zT|LDQ$|-$40e&890*{`$_nZ1+&8iPJ`0;K_H4kv#Wbo7*?ZLbs!_ffM44dZJr%#uk zzkE77y}11N>FnYZgX~?tdH3P-nI6%)P>~Xc<)FRnh>m#Pe?l?JCBKrDfJrV6KhA38 zplk@z3G9-Z>p_M#7sd{;GrdO@a7$ABn#6Mq2Ud?C9#3HdG`&8Bz*viX>8L%PUrRVc z28esVL)B7>k>=Kp3>zYBZZY%;!rW*^@X8?G#i$^{`c~#trtr!v-i#btXdlf`;kv3s zcBo<>OIS@4e~txXM8WqU+idBsn>)#1Eai%|aXAH7D35I6Uh9Qo*a4Ry$d^W;8rU)_ zzC;v7Jm%b#IZ`5Hi(mjt^zwR2a|kk?TRUKUO<98zE)fiQWIth~4wu8lIyfO4Q<5kD zrV!c!i+$!uT^iCRR!kAL*Qnnv63oDZZWAq9?hT9bfBo;#)Mm);7^;u(fh~8++h5e! zcpG88OJTfa6mWcfEuK^pT~2cZTa6>3g$%zcl?LrAb+{Ce-0WHTwb@Jaoz_n_25go5 zyOL3Bd9gQ+dhx6{>W>$BeITIw)q(16j9`VZ*C&hi0VAm1q8BS8C^F_+M~UGdFD*p~ z^GhJAf2`+s!cc_WZ{!<9UD8zOl(1WKCy9FfGsh~ZxME+jD2MN%#(7nPLFZ8N1@wAe z0NY8v&CWB7XbDG=BKcm}mNX+naA(o@hGhebPm4R}#r?ms7u?4K1F2I*;^pvP+0L=V zVK&3fr3%2SzCxoeX{eSkRkYRNm`=HFEo}PVAfH?`jUCC?ud6qr7 zpMu2p_fzE9*Oy;1F&BUC!f#dApy2_#h+`iJ883bcw!7u{S-*V`a^3&NM0IV%&30|HQ;%fYJIjs>m#C= z(nU9-r!G0rwbOcaeGQW@{EE(NUfABx^BoK zinc-4xM_Ym`(MAEe>!`6e7qtxE3fYOn4u7$tfDDzL~e8^Tg02OaN5`^%h*7?F z*BJ&j`A-sF?cjfmvP8@|B&k{du&AzCxGJ%I?)z;awqw*N65TJ(zWn;(?dAIqUoOut zKE6A@6Ao((B*eeL08Z%QvU*-n~A3^EWa9#y4L+oxcD4^M_9tm#6PQ`hWXR zm2&?67ogR0wtt*|`StSM+52DMkH_yMlAaOncUgh8xGaB!GdP2x&zmxV#X1t*(_@hF zgKcKqC{?0tU<^9`6$XG}YNFf>m&S1Fg%cy)h$RGyWB`Pi!sIX|F`dU>qmXeJuR%!l z66Pf>g?AMme)zFneyRJR?(@H082-0}TDYxoxGfE7bWb5GrPF=5Y);c`&TX}^?dlae z$!f!o&wPKl*k!O9P3>8RXka&Hb)JR#2uUm0QXU?u??AXw*)-|DC{rTs?cP|RE0|st z3lyIsp6W<*Xg$`GyE1%yb#=(FF0zSMFbg-c*THf$AQ zmjyL3B7dZ|rSjMgIk7Gt580sy(tw=lTv|6(?!Gj1ae{k zf=nQV>DtqmFO!B(P}gwK%n*<%Mvx3;;T{VU!40`L#o2t7*(ri7uR)mnFrVAb$lgTT zS9bd9mG7MRBmQF>ZV{?+vz=y$_Z@CX4;fFQ4JN}1%+ZBpC-seG2N!OxGM>2O$z)h) zEq_Ey3I3appGTTM9+-{!Se#_eD~}@Q(o+gg97N5HDVjU$N!w{;$88tYY%(D|ZsT%9 z%d`!~Xh%qCvQqKEKvk!U0MzFnNqje$s~FN`e2+*M*MHc|4JMk zIv$tg8F5^wM5G$&cTN;;e9B=X%^ z1VYfF6C4PaGw3H0)Yt$o)-O3F$4w1b*NzsH!Ng)MT!O3K=i^8#klfK2^0CJtWY{u` zWi)FCk$MnJhO!C-!Wd*?21=_V<$v;Dxx&msK84y>_eH@A!kZFd~mSUaQ?|w>y51C(WW(H)yr{ZQpB& z+p?(DgHPN2UcbWFgxCVC_W`eO+O3nMveZ<_YjK*ii-w&X=MVpr9B04{8h`5t4_-Ht z2hUhJhd$08^5g&6`|;}F$G_*l@BMOi=*#?fJ9&UwOCQ6gfWXfiBRti0*&3~Ia{qD@}{Ak)-U&gMGx~8s>k!HB-vB?_d(b5*pM`L8S z9rzt@;I#wK?IAG%hvxk&fPc@r?Sa$i~bmJ~-Ea}?v�|W__qu(5;QBrE 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 delta 840496 zcmZ^~18^Ws+x{DKV>=t$wr$%^HpYgtv2EMt#Q zr>DB=y6*0&$!Z$~eJvOTMNpCjhkyh5&&5y*5syFs^#y0l^#vEtgbV&3AkY6F!1)DN zA9vjRACl;W|48JA;o6y=`d{roE?&*q>LN>B*|q#D4*(&M;d}-wyddnBVpdta9x}`em@RTNMi))^N$-`LMVl!J!<(#)T5O7Ft!fuo51Hrc2O2=LL*W_gkGfIQLN5Wg@>Y7qwi$g~cgp zLA;A;$mdwztx!I<*V*sf3@@q-(MPG`{F{?;kKGDs7Ugbno0on$HwtyC;MbonW;60? zz{zJ==v@8WTGjE;`)P4&ee36i^zK;zQf(i%1X2@YEV*JSa&HhO1g>$EYjp@|t(DkZAXH_nCY3R*NNzl3`mp zb9V|mfkzcyz2cxd{AYBtxiDV4L%Id?JzhImHZ$8^_(zvSu?>X=NwFKl`qB_WM&#ne z&XTIF8Qu-IR561^oUv4L_3XAJ(OHYex?bw!0f5V88|ang$7AAyv-nk?*wWn+!!W>f zHdSG=xZ&Ri&D-LKt2eNcopDokTqQ=cs(M-85_ebLuZ%mGRUrkLr6Qaj!4{jS1Qnkf z<#i{-bKV?xkU=(c7G{NP8eJSCip!E7mgX$s8(>amic&wtQ%0mW@T5(TURs_Tm-d!F z2wazO$rZtb+v&@JzjtCPuNZWMqDeEslU{%sN7Jy3G*8TP6=cli zf-HSQq_)k8{)I@MmIIMR&O#Et7gfB&1HVUBVxkJc)@fsNRa?$7GP$?`t}DfP?TIa$ z+oq{;ZdAROjJ-mw@E#_?rQkzA79Un@0h~@?Tya*724{-I7xDDrE!GaEq@cBXMI7E`miB=xI(7F;0`1 z?KI}HgE^$hmnjaoM)-RqQDN&bpERTcndXQBQnR;73464t7<>(Wf>gM;Lgr)8r+t~t zupzk{DiTyhpJUGZ5=c3{wkI?w45Xow6y$>G;D^SM)HorxIcgQDNbX@7)x>B`g9|6- zvZ3irU(#x%+P^gls7Hi=CTrQs7xhMnp_}HK;yR0P#pWt5`9g!}@7r{KPK`NC@dVJ8Khe#bC@7&>j7 z65p34NN_=K9myWL#)SXQoQuze<-L|_wDYaeczlEgxZ{YhaBpD^_fBfTE=d+|U zl^Pf7|2$P07YZAtr_{0edz^CUck%>O(=t&_^i(fgC_F&oh14m*?^_66cq-r1rV9hL z<$@%rP2@MNm0ri<4GLHAvOKQ_89pC9E~K%-ih#mGbV5y7FQSCq))0H-3eE29Hjq(K zt8-eZP*bEo{hZ(cXlkxtX}*mS_v)04Dvkg<4}*7uGl#rfB^Iky`yhK@PM<(??ITJN z|0rV4$}G@REIqq5)sgn6aK{a@Ff&{=4r=TLANS7g%qH=5ceJpjT-UmyE`+DIcj~D6 zYMK-Kd+;t*(ZGWv_ElM?NMgyU;0dJWjY(|_oje{Uap1r zww^We@gy86%*<>()}za;>yCbvYKQitBH9DK!fVqjtsSzaVP7Peq;Eu`D`q zw$1=I*7X=uP-kV2H-CBSF7e-BmtJIQ4B{|-)r(fYTNpjQ^nzC*yFj}F&Z~K>0~ElX zE44;$8XkyxpAh)l!v;PoZE9m-S)pjl6DE{xu%iExhjCOVh+h=UdX{#W(YCT3y{KRG zVEH1k?JSr&zRtaiTY=l_Sn8UnFJ-oOVFU zv=<+C)%f+*-#^xP$0uofjOju~g15UyH zTB1X;-ce@KUDks34cFK6qRKj%#0mg&+aK;Q9kEojj?!HFtyJMtGBxm~#m^KM+LZeS zq9io*cHu+;SELC^Vv?flGo*Y6DJlu7)!k6t;81x{*f)^NZ((NrOh32_TkDFDA(_br z3@tx!DI#^e)MSd2nD)Nk3aHprMdGVYGNYu0N9|$LjMsk8{m03REdowgdkld%FRXm? z8uS4j{|EqGG$)*HV(cl;qe7{wm>9=1&4`GaWxD!6%O$M6QEyZWgj;E7ih^=^=@(t( zxOIl0Rm-2BIq)&oRYdUP=t82b~dXOj`JSej$+Lqfc=-UA9o9N84Gge|(f-&7FpoFI6PH&o(yEfXQ3DZ(kT%~Q+f z^~bLy>mRa~$mww^cA^%oxO7WpdBkcr0eKXt=sy;Jp#W5)^=&0jM31v zM|`5Iw~e#c!(Hv&+|Up$b&tE*VtBYEyT;3SG$^a6c}p-XNh@yxJU~I+QLNKh5{}{6 zkNx7%oY_cMpU&lW{Weq_X3SGaq!gOeIVX8q&#=mNnUoz8Y$wQ&^WkHe08sW5p)O}~ z57Xq{f-`=J(13lmVfAmMehc_SS7-VxZNh}3t-o*!)vc<0W_sNbs$7NitO;km&yD%3 zP+#Bi4(E=y=XG#^Wd}|E`xlS#+2d`Oalz|5*!P#%ckce&!go)SV;~gn^p33NI6KRa z1&Fyhc4p5NP~1Jn7%!ax_A(R?kAb7(h1MJoCxoy5Tu1=Xxt#O*7?1lHm4SVbT2@^w zcjEcQaTNA%Io$^%z$v zk7IAEkan|Zcn<6EN|Jlq9#$HqNQ2El$V@%j?RiSPbvJL>RUbcF^s*j-cyX$FE>A8l z-<3tyUgNf(zN}MBl`Ib{mWj;Vi6r0C!=RprMl-FBtlV#5ca$PLUb}JSf!pYERx1*) z=}_h*X#3Fq^U4jByQ#j0{6E%7dI42-Ha98A4}^X1Uf%UI1F(451f`dc zaCSy`yXD&B*AQX_f*3HHiAgCCMcg8UM^=BtjJ`>sg;DD?jTtz(y{X$tVYSSb?(b5{ ziCt`SXGRO(0*g*(mW9Q@>rx~{*wf3>&8CE&EQRAB{BOJ(CtsK0Gg$3@QLA+kiY_80 zhXds+YU&WPTD8*6Pf)vlTTLr+nI&c2ze*BPf|}VV*_?BiWs;s7t;p1*2=?BLvCo*) z{g&ByE{fGntd^~0+iC_zh$cv^j1p04{I-4A$ad58a?kPm2;mXnK&PhtNk4PLl5+>$)+ zRr0WUA!8HEP^-2Y_o;jm!V+B|27xfnE2l#k`Weqd#|C;CVB}S&nO0`KV9;^Jrt^(L zrM7UavTM_?92bAkg5P`-5A(? zcnz^(l|O4I8Ko7i?F>_?!_x<=*2;aAXZ>-r&5=1Zi_}aGGOL0B;<}E$s4EITf_fqn z!eSl=cAv-o1@R1<2DN>NcaZU_sOj(wdUys1A5$L?fzG5c&wF181t3NDiGfDTn5KH= zq(tncx%c1yVS0q(cVTB+C)}6co&siZ)%0L{RIIX6(DU>7{Ugc@YSvhH^Ozlab(;D4 z`AeX!D?&M31||~~kZDe=o1>ftq%LB<*al!D@d%(VqN9H0a0R2vahLF{n$<9Q1d)=y z9?wBYHudrg-o6Xal!@p}&U2ME_ +s{|=fRaQviS`?eaM_tQYeZW*(U#rio6?^1Ax<29Ex|e`z4oa_>b~5IH zfit41?QfL;Gr(I#_&B)%gf2DKzjPQsq#j*`E@?Ksgc?6ou4XY+`Qc;&_!={V7G_%6 zb`qgWj3zF7b+2_CSJ)bYu~X6mXQ!*3E?R%E(h@_LRO@l@Gz70FZ;c=bY`6bCJa z>b&?kzSye#a5GgymjJ7~nSnE}9}0LHNP|cE17{=kFR8|EfE^q_gO}N7{E)}tfUR-G zd=x#gDJlPCjcUE$o$S|8pfF}NBtLpKlg z8o>%g_kILlbbfSxY@gCTias9if1YceM<*^u_9g;rOATcizcGXpMQD!nJOJ3+c!1!i zfsf(4(fisn>kXiIKhr-lkQ)*k92J)r8{%QCecs>2R zymPdpdPBLdI7k%B7|9qRhzhWM#y-zK58Q9xjvL%2ky7--%g+Az2`d?9!`hvD^E4&bKf*eG>dW-7!?JR{aCu_ zKD1uvTmiRNM<01F_170y{dSHIy;r=e##76A#UdibFVZeHUqdg0c5+X?Hm=X#&-^!@ zHy!&f`!0K|`_*&sb6165F@M8)@B!*iWoO{F==1wW595olv%~GjLFCp`f_Fkk;uVDl zxd(*@*|v0d_GZpz3LmBqZ5w-Au=7^dW|9wU8xZfDW7>@d@OJZe(|>CC*!sx&s5-j% zsJ>4<5C3%W0gpafc|N~MdA>N9Ja|9gAJZP|NZcOkiJg%(2&;|Mq?{Q+8(V(P zI@ml|e~voXPKdtYKEl6iey+UH+(WnlhF1m+qk51H<;&0aEB9tb&i9&cj`wKyY4;RI zfEB3Yw26JBVWP0y#jDtr!K=t^yf1GbzjyJgx4EYR?}94{4{;9(53%j=Zh}9Ae=vP% z+u7U6+qv7RUoBiso4DJ*w+p;VG*Q2Lx$3+AXkvcVxnDY=oeMb;EM$~4jHn6k#`gW* z&Z9%5kKrqzgH;_ZfaS~aD(7nMDt>=@0^FXU&5abqN_?T{qxzDybG1{wI^O4>pnV3< zjeICRW6d5z7b1yW#V(6oMQ-7Jc)R-DJIwJv^3QqBot?0JnSM%sct{>g9E({>T8djr zSc;*|Enf#;KkcSmzg&ClIt(25e<6O+zRN$`JqL7+eDb`jKTlkzUt{gg43rL(0{xT& zvCoP@nf`%mwmy3f_uqMy~f^t)5LN7vFHpkJQeqCdO5UnQP}yZ|r5*TDOZ zQ~lHIQ-V{Ed56;9rN4`}WgO%k0BHvW2bmt}`-`Ldko(tr>$hlERWE(7AMM{iX6_;1 z4)0}8u@;_!ui$&)46+Rp{K&evx~M)JU-R$#?*r}wPod|ZN^R$#O1^S(azAz3$$u)o z`Z&73PV7|OPu`ER&WF3&-o71-9w!)hd2@5-8DPqY4r3n=XWeDX6rTnt=a(zhGl6?5v7}_}2 z(tPM&jBfo8KE^T*D#tVv5XJxsLxt`ny+j}87ZGQ-27xx37oP?O?Mxqr7rWc^gYkoi zgN3ofvC;%Zid-py9K94DfbPZWmT0VaOfn%dF){&(l1PR@jzKB`y4!Uz`V{MgizI|v z(`9Omew(f((gnE86Y#k1-OOEziQlr4bcwckgP&S^o!Z(H`Q5*nTe~G@hU5Ez(+%ev z=B4^~h8@o>KlTQb)I46>RK-gv^h}l-e#^iNj=v$S`+8sdkA`d+P)E}*UZQ-m#TEc24lu zSz*nAaQ$N?p*oX1P~IdTs1>IQV5Xy;(9*ps*t|tfjxACk>HO$3!75aE|>YWau6relkJFLMR+!BndJO+YZ-*sJv*C_GzTJfd9MFpeDknDSKMk z!pUi5WftY^vCHrd#A^to2pIZ!huZJDsQgQ<7zr&XgJ2#ENXD*7x#!A9F2#C^AHZSa z6(KMEj?ayNb-?*pB@SNVXj&b`z*LAELZDWjLXH@V6o5A=W#X=C9^jcl9cR#NSQYqny>pNa(8v38v@>iIN7- zA&u8YQ+fj*AoE0@b__P`E(w>~9k4XkIJlAG74ok$XI|$k@}F=2?IN$xT#?f9t$lN{ zv|g-jSkpAjhO&k9w`@jJO5{eFNs^V)wzDpqgpM$2-h-N)-4dx9u|txgEG#znkAL#H z>H1GyEne#JX=_~_^phjfGI}v}6;{mPeiga6BTxwgV3)CYlg+W#`}zE8A-xTjENamLnNb8R~S=e8a94jroN0%T*iC_>g!u(ph=m8Qp=%zU> zD4QHN05g0LGruBieVYeF)Si>yxO{LvA)S-#D$5#e5yKgFcUd^>v_iRbefOXpy*}Rq zRbkn)m6zxYq&t;Y(-E_SVdeUi@CQYI(mBzCfjs}&SZ15ShJDT_$IkYMo(q=r^42~~ zN|)!|edqC%tDPtHah$PjX!V??d?^`C(coDp(C6S)a0iaDH6iHi#?>q`!@Z)sDc{xc zHitSw5$!MNqu;79^KNaz2aIUG3VM9ue|c0C=H5`Rnwq3TLqF8 zJBE*O&gmt(#pU_3O+(kF z0Kzjm9y-Ur-4*n$p%s7kiG}ak*e~PbIQaLfG^=**g+rAOP_|;Zp#}OM!>f{{M zrJ2v(6#gKh!c9h=!X-S9E(}AzE)&vq5p<3|))7yt`J8qAE5I+X-jF+DsC# zr}Fw-;O@U3y5=S6J(FF?a4)*xXLEf&%dY03Id5B*W<8Le$ut;HJnxdn143ePN;aL4 z#|AQPjhnqe(2A{yxiDeU(2brzWoozR zyQb@8<8NWqkL~*61%C)4|TNY?}Be!77LcA zLUKH*%$8fn$4=%e6j^$%12GG4uvc239`+3s*=Sum*;6oO>P0y!tIWgKix7e+4JIjB zHU`Tt;)ZNo0|&HPC%CXO`UL@8CC=Vl*O{OedfdZe6yyhaHCVAtAEfC_99*tH<=zkc z`HxFs-gyMsdwcIxp<;4!Uoq1KJkJcxUJtDwNmzArZpA55OSvN_0esJlj?u~FQqRaq zK2IHxIWR$bJu}Slg}%tizFXH-5*O@fyBn(5f67!Ez=pQO7G#RU?&?)*UBHzan*PA# z3^I--jXK?n5 zJ8f~}MEcCF_oCJXmzM^DG(SM#I-|%))aKYz^GmevT}r}N%l`t=YB{Uli(;LLQ80^_ zv}YDC>^!R@Rt{(4)mz`wBr{xPjrW!hQcre@r7`XCc>u;VDGZy4BdchZHTfSj6&oii zn8NA{0MAT|Ep+a)rE{p6w6wHQjb@(;L{+#3>L;XzkK5$2e+EjM(K}+5B=9CUJ-Q>T zZkD=N(jzEiWOwMB4-krbVjx_BQ_-@8VLr0y_Coui;3XE{2m67k4VNjm0V8tw&^ZQD zuJS4&19&WqF>>Gv^d4m({DI_1I$d!sH6%U#*=X=uPuMl;_Q(zXZszr8gZA(;neE{e z+NWQgQFDkj;&B{b+gyyplcckePN|qWgDLcEjXRO><9>bw-*bpl`{FpfGqwyj0KX*i z=R1mom!*8tW@{e^kkD4Xj^_K{kHH&LGi<48p+8Xf{SVQft5r zHoreucIs*C+4An`=tkI9qpj$4UWVDyN7@z>(bbr{avOfM{nq-)6`36pQFiWPzD{?g z=fbwHq6=sJ;*{uAnOi#BK=$jgfxBU{BR|m?98)ZmfW2cpCIgX|rZu|68Zp*3W|#eB z3~1#con-_2g9GZQSi?&?`+#Ca=ua)#yDGIJndb?yVOsXX7vgaU=ZwwL^JXnB!xjbG zw0^E=fu;zJjbP+PnyiEu2WJ~>Lu9r_dr_u*HKo6Yn=hJl9do~Q_8y!!ItByn-WNAJ z7EU&xZW%R)hkZRVAVdk6fLo{dq{Bi%1THV;Tq_+eTD6mHw^r`d^(Jvl%NK3o1qR@K z%VG}Vr+eIYs>cI^kIVqay#UIq-`2D=Fvcj2qP!#DV!pVEZko7Ky&|E%Uq?V$6ToA# zXf_RqFj@*HPK)|5j!;eIX-kJn-yi?AT3G9JBZ14jPWk(}}Ld8~s26Uj% zS+Da^HKQ6ym%{t-P86qY$reLD9v4y&%c z3=hgxC@)JBlmM|}3f=L)q*im!m+%(jXkvg4O>7jyWN!kY zQY2!`a^`VNL43~ab;85fwZ4101R&0A4%|qu!t&Pp1(1aQj)J}o8pg#yTRfoq6|drp z3yZmfLFY(jk4lSrr@njd)6Mf2IhiXXAP3tqN^EjBV6Ks40<(TJB&{S5<28VgWZ4yV zzZfenD%CWmmZZ%53Iv$`#+g0)V-2Qkd~cNEJw2QLUU=9Oe|nIV^45Xr8E~CE{-krA zkVmXW#zlh%anTm(jy$;?+Gur}tPTern2Xzt) z2CbtPFZx*ogZ{!*1B;#vgWku%lV1QiyVA0hBqEL^B7Syz+UCo8-p?ZD<6e9Qv81Eq@R;sL$c?V^OBJT*GURP zB&bek7@3RkZ%iFJc4OVBtGn~{z@JkF^3YRx*{ZLXW$%0#+ zf~@Lc#)KIPd(9ByH(G0lPue1meLkl)-( zLyn5Q%k4!#yKWAw=9Cz78*~3eb8&PfU=C7DJO|7;Vs-^MTccubY#w9vT!4QtH6CKH zx)d-sfS1Ky0c&J@YEBQKz9r+44uX9N{pmx8Sf~u6h&uzYzHP{L-g?nZ?uA!NgJ~9Z zA#rz2wa*9SoL~Ll*a?yqwV#?RAM*V0(1K`mqfB4wQc$jEiWwPtL!F(D;2)JfK*xtK z7RR91_@I9gdw^yg8B18(xUkAHC5<8COPSj-7cVFr0j5YUY^hA`uGR|7eo3=hMDuc| z$|2TCpasfQZw#|T&nQf_qgz+ad~s#W%$#zmLk(g|C`(^hL+Q9lggJtR6H8*SKd0th zFsT{P`rcTKn_LxmqaM#e615hTA{qYY zke*@z;J&srArS3w`)5S?wCQP)qY)mK=5lD}-$_Ss0YWWC zgrh=%_r>ajg*xOT%w1$%PH`;|2a*gv&<;7neg;YccW&yn!@>Fq*e&cPYSUCt zV5LDk@k;6iP1pVfbzG%-D?q$QD>-O~h?BH>OFG?=gkQ9C4*NTAa!ZM7KH=;3XfvA6 zd{ml7U_#0Mi#GVtUq_A82Q^PP7n_dIIB{BW)WkM^h{k@C3ab2VUNun0;q+Anzno%tFtE za815;@Tn|j6*RONzx*v@cv#DpqUfTUc)NN?mhow04yA5#ygY!)0mQa=axHLkt}b2pSd#o^lAYtBD#KxsM3DRT4tolZcB8pkKyW zELITBn}eAZmB(}&y`Avh{HHKO?o7aLrXe;bVfVX(he{35OSaHtE`%*~V(BRaIxA0Y z5?R!i1RH?{!35Q!y^Ny}Of_*{vJ#kqsKY zL9}LD7S0db*N)6H%T?&yVsazu*_>?$@R5+pRUmyY0nhbgw4z~#qI zWxUR`{Y%+zRJ58pS}ehuyo;K@Q_rPA_6i?I@R}-5#6+6aFuT{N!)mI zK>V0`{8_@f{Gu;$8}b0aj8*YhgS&n_VYstYIclw8@t|r-NMaS)91wo|nYzEX?cWK+ zxeS^kriqWA^KOO0}C`uwd`bXQpM6T?$gr}h@n6B<5$6Wd!~373J`DI05pZA5?yC6Pkq%-17t(Tm|w zl=e~!UMHoOso~Mi@&N^gv+x2*of!$%=&*rkX&jRiW7)(V<})DtPPb zyEfM+I{dMuk+s&P6n_FZF`jfbj<_~>K8^lbl=(!K(GxY#?=&hoG3TtXgXgb3stc(Y z0!cq0n-u6Ajt2x)oDUQ=@n5>wW8VGNn{ZqDVsc26pm2@zZ*)2W`7&z_$YqTsy1gH5 z(Bb+N>4-@zp8_v7(X|U%&Ns+x!^Ag}KdKWxxTd$PE@LJwPgtH@5<0F=KoIL&i3?MR z)KZoiumq;M3V8~fdDpm4VJH9ARbIvE^K%)@_9aXaodCE;9Dm9yDtTu4S7+29%QW>N zYg{2277l+F4`!=}XHq7&4kWkYkRvXZ(A_wxrnHW_rnXK>g-52{Dv)8l0+uv zsJ4(qrVh;B9#&bV7#G%k!|NN?KU7s!KciA9C*g@ARGtmvlxZ=szbV@bTrDjw1@*(- z&I13<%F0v(sR?COQY=`c3eV{-#Y4($HD)63peSIHEthA2z@KYcnT#rILBO0MVO%+v z$UIwmahKA#QT&@ZTsj8|Wq%PaQ*B-z?7M7G$qXX;P$E|02r^+#)2 zYm*WT0L)RIltk{{#U%}8cfFaZ2y#M@VU~`u9q)uh7wnCk3qnd)M=2Rotr$}M6tQBS zyaJd|X*ZNq^yL{|GdnKM1>bd3Pt|)Vj{3S_`PH#TM>0h!?%f zWHSc|KlPKOd%rx!YYw~UrOvpd3)8sXcQfDe07Ui(M5B|J+T_Bf@ZtFI}4v=FDOY@J} zs$WcSs<-<`>3A#;SC@}9qe0z7cWhH8mfsxsp}?8@17wFXNZvXLjZ(5k?f#DX zh_@QceIr7s{QGN1nW(PJSa#!rS#dF&<>f=%PfpVFj91x{IX46K54A8QRu^@oBnfl( zl$e2Kn1z_N2n{`qUwFl4CZJGfb^UN<|h}L4MCLIG#v#!wCaKROizCy86vrFwECvf4K_Bq34o9WIU1~URLC-M zRKKYmNwUDDvPDe^Id9({*0oXvmakoLuobR)IZHMk#o(5)hPe?)hdj`^l!IN=`y8FJ zhC@7gXgL5YDBNH$1qM+S7>E;UUYsoN&Sa`YVI2`3g~Lh7d3YC`vcI7p)7=tmmJ8(# zft9xq;eIw4q^o3y3#9sr(ghw>3Ta?v?m0=?gqTM0s)hTh6MR%4zN(WSDG}UPo}FkW zr-^pKy#ArKjbXT#1&66u9Zah4*a*7yTFCg&t>NujelTF|K9@g-a%$hQmhk9ejF*+n z5O8P`WUv~Q(->OKppoEKk1|n@qE=@vd0ry##%^*eH~Cg+0<w+*`#M})mlU=opU;^&8v9gF-g(g z>0h|thJF3Bz-DZIXxj}-bhJ+qU*|YN*&q_d>9;ocp!iZr6q+s4qmVM?^iS3^~ zlxKwXUkf+oUi~Wh={BMiXJn#NyJirR;Mm=wj-$|pZ+V43WGr3o{ANzu(eX|h6tdmn zv^vC0nz>yfEovHNU3GYJJia?-%>+?TcS+aVLVxd^k;+f*&G;$|D$*Q*+nP3NNH9_! z0`#8-0r?y%0oo;*NXeVwlp_r0P|ZE9_Pz+vLjs$o>f=%4;Cn znkP14(C=mZ(3T;kFMs`zPY#tdy*4Wt4EwG>t4j_M>PoT_3rtPkI}(d4x{yrhr)QPj)Y zOsPc0Cq$fH5#(x&WCV6xjx8(k6-W7w&rT9|X{iewR#$s0O)kjj!P7;15(N~eR#OX@xtQUg423Nz#-XMZf9 z$hDkWz1c1KpAg|r9NzcITlToCXX-!>Zb*PU~+IWkn57 zYigHQyu%QVVt%)|l*sN@Pgidq23*u1FGG54EByPa4|C5tJqNZMg&MulZG0V8i04;u zf;P~l_R^dw;Yp<~Ul)x&sl7Fjn6}Itr{%ax-+Tz#F41rJqD-j+FV>25U{w`Nh$E%n z<9>5&Fp7(zs?(u+E|MKZXhVg`MaXjc*Fiv22u9pdVn_ML)$wRl6M$r=0`JO`76QpF z(Dy1ZFIUE<)!6b*Ss3!%K@P#|70Qzgn5aj6`F!x(L0%Tkfp)o=qZ{C{W_=Pe7gWyC z7H^0}BqU^m_Yd2?*~n!N!Q`eZ|YhQ%nh6{wzgwU06A5`zu>T zD>zTX_5Fyb-HrplQ6$n*Nf^Kpd!IBii9z=dPcVLBYp$F2Iw&j?XIbU?6#Dy zB93aTJa=C~AE0V~2!7~tAZ3jxga4Xz+(Ae3&!T-zWijtQop2A@+84@#-nYm439Vml zZk8#L>ZV49WUR0b=4xk=F2WG5MLM%ul& z8-ze0S0o^8;n5w(WFLsy9GZmffd;Z85$R1Ye^WvEr0Rgi1NOf;z!Yxa$s#CK}5E4?2A zdManjWzbbnaDQqAEZ8f_&N2-jM;PBsD?ZaI1cl%V7%i(YBV4Y@v+BB)kZkEKxKrJH z3j0KU|8us(_7j*QY`7SWBtM@(37$Fe~%gr!k^|3`pDMTZq?1G|*Ouw4EtQ-)frD9K8kXyD8h>|>nmLB^gNbme` zUi7;sak)0`oOcZUgC~F#?xViAwymZk?0s9>DE3g*!<&J!V=}s^hnd6>d}e96IJzUz zrz+0eJ*i4xgY{x-&F%=qx18FqBKA>B>SsK4z2Zpr3J>TW)Bwx)JeIGhb&D4Q?TY-v z9xkw4kd{$P-)B;pbAgguwuOz)kO%iTpK>4TuG|w<`RkHSIA>{w_>@JO1~y z{82;`#;}#Ks1n^~j^b2!v4rI|>0YN*QxAaj=Wne!_l-?7w>i%2N2zd!R<|vB_k{hr zYHq}h7$DN^lfLEFp*|Uiti})hamZCQSRxWGAB>s_w^U!QR4gCt%z=^I6TYhE$~{>x zAH4d;Y_@D1*Sa&D|;f0NdO28ir ze^6enyBipp=L^X#LvkzzGTg&6|^67Ca%qyY=*CTZ72^=QG$;aa% zEmWAQhlb?OrM*(dqJ~tzRXCi?=zxtfY`G6hJ5Cg01rd~}S$qTG%9cf;m?p62fb!oU zct|0Y--RGOcZB_r(RG(rztbQ~>H$RVf4-A&efR0B#}9Nl)S@*}nT&C~gmK^LScSiU z>h=jDeP2xYMw#xFa7d<0p^fcch=TN!Ex^}f5W@OIB-|CZQpSqOAS(rV+F>NN0OA%ObrArEfAJm?5Vjjt&y_dm;6WvqV698tWp&zE20P zN&7xdbJJ-bj|Numav^_t1Af7#XqM|Ra7P?q44#5-VLXumtAW=uZj@O!EDF59ShRb)fllaB(xIB^qbW~ zICf{Vv(`*WEe0_Yh188W@p806C8w1$EZTPVX~r2?!%S7+IPkC~aUud7Z=IURL~~Ha zsjBey2DWUuN*v;uL;?17#2ww8TH257&ICDws0F0}Ipk#1SPS7iO%-lGrx1aZ(n-r6 z$Px!S=w6IiC%(O6P=SU)y{^VfP8@ZCVm{JuRmkk7(6FE)=W}@)V7FI3lcpy&<#XUBel! z?<%mc%IdI^(P1|{N{ z3p|;FBdko&l;Ft8oOE3zR@d4ZItR8e1}O*)VZmvuisR@;{XqYAbBXpD?F1)&C%63aK4kFiH}pz0fE5KZKX3c5FCWF4uM zVF7A7_(mri`z&>c?}~V6%=ITk{fC!>)Q1Cngf6jFtf0|MK|9}u)2SNe<(v`&h8h{0 zQaJ~O?uCgw_xA{=|1SVXK)Aoe1TWjaf-2B(PUu~jaC}A$xn-neD>tf)WlKiv?m^L7 zt=N>U)Q%JmWf^I6v?n%N{yY}6_{9}e%Ex6?N=6#Ne`S&j1l)fiXgRQr?_lUx1Y=r0 z5qZs>3Aj&081|n^fM&f5L5PT+{!^C{B~D#(1D;pf7Tw`DeK9~12)9BeJj7LmJw^iY z4?*9UK;RYvV)#}xSr%o4e3X~A>UqkF6^Rv}%1s36Q~}|wh^JeAy)~|sCioPrCtg_z z?{Idzf0}^fFMUT63dqf$o0+D>Dq~3@K9HoHMhqV|yVQuY0z&#etJp@f_zY{o64vZt zLmi-VAmiNmHSn4+SVyY(ydIjxp*~(UBuDD(Hq)oG#oE&@6zV@*(+0*QVBmPd$tdof)S>ee_43Mrp*)?j3>lz5gwxY7;P~Qxl5+}js?Seqt*G6qSsL##yI+%;B986Y%o_xzJ4tPE;p_Tes^F$AOG|d2ld~(d8?3Hck zfUqWN-I6{5xA!~cga>awDT7E73#61ytL_kF4zh%uQo(YEs69#@ym%f|h)`#*WoHBl ze*mhhBQ<2p1`ZY3e(Aki91H|EN))uIC6qfA#AZ^IGU{HxM7f|dXYdixm{a<|2m-i- z>2+3Z$M=^Vep3zn;Cq3wI$+I1c6A_{4{wsN77W#tf@Uyq9jP+?atY5_FlO-QVM+ue zaM975wmUM6YarNO17TMKVamMSd?j}Fe`az&{q0o~bX60iF5x-R*kt1p{4`r1^p^d{ z&ntB5UO-a4tx&y8>=LB+zC@w)(i=jPR#p*7DZT4!)BEEI_d;pswn=|Ga(16{&0n>| z%?*d*0*Rr~mq&*)wyWG`A!j*S&FKI@sC4~}88hp-qw zWuy~Eo6U4jeaJV#%*l_37gAHIDy^E8+b@ z=Vc+e3l?+tPYYp>?m1M=%3BzqdapJMTMhiW2tf=JS)!)sUjb;Ypd)une>k>07g6L3 z7UpsNr!HT8D+mD5WvE)tk5aGgJlx! zyHv~v?(Pr^S8YC|ZTj6K^S5X97tD$xf2u5#8uen6 z^j5!gzp{JnK06plr_IcwfKCqL71|KT!>F6q*K7zr5m}QlP9SpHe@4r1yn@Aue9*e| zwlg;OiXZaQjNolBoe=k*46xq;0)j1T&S6@Vj>uB%J6|=68;M$+Lj~^!YXc*kKN)Du zVLIOvn}?DV%!XS&O$}T4%;U)4o0YIPx)?u-FKy@+Di_TWM{JCw^O!Kao;vXgw6Dk5 z4w0I@pFPFUEROUQf5pc0?MN}6ozU1j6*4fYEEyIef+(IrNYV+Atthg8B3^{k5L}c% zvrj7BgX-kR1U?9ldC&qTDw(wrErKI7RAHUU*ww1|`m-=j+aKGcF<0VFO_=2{D#+vq z$B9zx!}xt4J;~UjdFvKCMtQjX5~{DD;eDH#q-^29Bna=Ff65&Q5$888j_4T)4-qj` zsnqA-Tfq#^nkT%L6$Vq}vTt&}11E@y2cX?2ZV2F7f2cSlZyp?~p}G_p%)|U6zD#Y# z{o0Hx;fJ&D`Hgle!tBh2cV!8;BuF4u>IkimC356KXX!berAM{1AtjWSsK={xmfp5H zOF_6LElWjVe^k~=oxL9S=3=jrOM`60%gyOpbI-DY0h%jg+v|FJdaCvYpM{`CPAAa3 zdkKm}Zdyy@+z3q$YhGagfS!S zED6vqfA%<77US8&eq%t;N{gRN4Y{=yQ!d!Cig&CNI558*K{Ry(jFfhhYg%sLQ&(iidxE^#_9?4wU?>>py-8JqD6`NdUoW0A%^(^%s6H zblFjIh^P9YA7A}NmlF@| z5z3}9%u0)I)T|eyC`Vr;ys+M8K~2&MOKOIwAyMZBtj-NZof{VCvF&D9 ztk(!oK?hVB39ql1&B{Bl@I4&-fz?NJf8?CbhVyJdDORdf_jy|4GY8ogEq3)hs(A#K zo)O&e-~>TEY(2`6szOA6Lqny_Wz?1P{e&q2p4n=_T>pnBa-Zp z0UUpQP6nLhz1c<1#*%+L-60HJBr@%6Apx0Otej<6J9X-1IBpQYjws~He;2w}ezVgb+UY&AYaGJ*Kswn z^wo!`;}Fnf5mCi4oRXmVY=}C#QJ7;KLl(i_HenFrw9Z&oBi5xc&b8y+bR68Cj%B8K zndKpb-r2u8izsnwWU6_&Xm=SQeC>Sbh+_Yl-O zxLD`CbyJ~Up?(AxmwXPce)L3`16fXw90P1|I@L)_%Pw!$ko^?rY}G)M8yHLv;-Jv^ z^iixYch$gL@LY4vVIz*1qpFhZPn|6}M3T^pdZHHveCb?@-i*KLzP@yO2)K{j_=qff*}wo7qW?Y3>XO zc)#FITWKPyL2D*N@JyCO0!=<@90DTsXG#6#^&Zf=e^9TBi=J@znO*vXghy^7Aq*7&tOO@@Bq9u9FMSEP1e;$;9xd$Q^*1ZW=x7&<>qy{C z^mO5$O0+x#?fwWS>*bT*NV?fhy4^NiBCo>QB!D$hAkp%83s2oJe;3eVo>D0;!xo1s z(!x4r0)#v{K+gl#86AO{HQQr>F&UYfUcFcx2zPE9xqWJ7pI*$d(Ftq>?j8oW-0)lS z8$FYFj2`Fm!@n=`uxuSF!nHF9dvUP4s;%s3upN31ZGw4TPSRR_TDs zuBsr=%^(!ItKyv?f0S<&+eStvw%W!GFhhK5m&k+(JwYb0J`oDBLMBu7=DQ`pcGMde zOIvt67ybjk9ORjX;bwFn@^%!(574BteUrIF^g`r*)Dvx^AVcuyn~qmXQf-v zWg`{{Q4t7HQDB`jS%DDdLRXkBx*}}{Lwt30fG~|Qnu2A)e^qnotXn*q?ay7{Xd{de zX!q0VW^Cbjre1i)pfyp~^iejs<3qa;)^nQdKmvzou6_X&Lhr@Nx?qHGjp#6hWa&*y zS1CF4=MfYonMt4oHfgp-o$w(|CpV}QobG)H8ySN-dAl6d2tqKB#|P-QyO;z-`(I>S zm0bpRi4ggre~2~u#6J{NAmTl;#4r0#U3q5r$rpQmO^EOyXtDKc#021C+7hLR%TAI; z`8|R1J!`ZOwG!NocViP6hR))H*@dFC0f`Wgji`XIP6hZS72pXK;DZYAv8L0bSV{!_ zUT1Il2zbk@*~e;TZno{q-tuK{`JkgbxkR0%il72~f9H1+F`a|!*vk+MCrW_GljTaE z1Bru5s@7~3iQaZ1(O0b{(wdRh4s`pmL;mQB7Ig#nrW|-WdEgBhc*>W{bq3z354QZO>a*j( z8G*b7oz7;cfs0j!h1OhBUZpb+@0lY-=7teI7S^XX0e#( ze>P-3M|-Sd!;VJIISx@Kbv;sr%`Pz=;Fx2?E?2@gz@@F|9}#O0oQ^4P3YG-~qGxQ( zff)r``|uYBt7n~kD`4(iy0EmCf`N5qp?zKdiF*?RE5`~AsUH^iXfjV2Rw-Mx@Tt74 zoz@GwKwQ+3#t41T?oFqKs+Pmb1y|!We{bPp-x0sqH*KfuTDwE?03XVHcQJ+79i|Xn zJ*DNDX8X3&c292iH95Q>Qats;^?{!jdjOw zwmixxqs=pTnx%-E-dM!-HC!l49==CxFSF|n(HaF#jx7t0I41&F*tC4X1WqgXf5&Zn z0F*=yN}?x~<=+lEg)A|E36?&sFUZ&-KDrCyBPNY$Kds76pruLR$RiFOU|9^G{oKGF zsF?@!pZd=>d_3XG<8qywOa{ zpg(hkmVl;*h&AO7iFtW&L{lUNe+-xm)FqEF!w6%Z>ba!~h-eM2aa)1xHl+273uHT_ zb;)Y7JS#iBBl4}WFL_k4wcD4rZ-=erbJpgO_-k~D877TE?eZ8ZdH#u_rrd_XmkT%{ z-Vok6WsfX2ub4Dy@k)JPT?i)!kRNYo!h1*)ZB6rsS0regN)m6(kFe@=l5D`s0k z`MvHwX-9SkU3_95E+M2hf9MqU-52LwrXRY;WT%?PiVF>PjSF?sqNpP+YWS7(mQ5Uh zA}`XF1ec{LqE|{%@so-;;bIRfJ06@^tq^zMkUAALxjOygT8Cf?`m*}&$o`iNmwB!f5=#jJzk2j`?zUh z8pK?*6mk1_Hv`h(7#ghBOoH~J;$Rkf9W*qHK3~J13kmv-3LirI8bVpN8_S^hW)ti5 zW=t44vG4g>9QuGo!YQ!`inB*#g+)U6S(hB8Nd7S=qdm0roegUs4jAhhN&(eunQdk- zpFZa7c}kBFGt{6Rf3oSin`R~(bxFvDJcGoKm(&x)AzYgtD66aGrWGo)AouE2ZxBR* z?^HNFZ8fXT`%`t^uXo-@Fd5f*f2z(SgTMXmC%hgy-B0S>_a}FsSo3^_>%QOBefVgd zuetj@CDMmXJ)!l7C7I++&?kA8&&)n=CFc2Y?P)Gd-VDOqf1$Wqgw;VF@7{ThH9GxtUEo=D!#}>|essnhcS_C_WdC#I+Wf1!# z`wyIQH=n*#fA-VKMBTe>l@zZY;yyQ}HHZ*W?sD;J+%+VAdG^J6pGt#98iX{VUR>h; zmra1VO=|?ji`OfPiyU|P=zKRuCN+n_Zt?phJ;G!Jp~aIU%}xSdTFO@e&45`bVI{XU zw|{h1nuTyjMBdKKa*fCn3Wq5GUrZg$NG_p&1g+AZf00QG%Axj3K)UU$vKOZvI;*Uz zRFm8MbS0a+lSfOuhzmM}M8^tC_U36-bH zn8~7vKonV+9NWdERJ*)jf+fex++~>JtRX`vFJ0$|uS}~VtOg^_BiK!m#y}u&+Cj}x zR=SFmQMTs(5!#x!owgSI5!yOzJ8doFl`o>ye+JQh*Q@dlNsf$d=Bt}&@f^u9@$Xba zrL)VO%9#~F#C?}vuQA_F?;*sn>=+jC886+j2;z$o2&uDo;f=YA{1&qlH``5@_4t#Z z;7c983@Pe{f?qW{m`V(K`O;2d&q6fTlyo=dex$H|UhqtqQk0UH0dd5o0d>VpKEi&-&LiCK2#mnym z$Q^jsB3MX0c82VDiJd{ur@7b}^tggUAkSB)7cM9rm6YHaC?ml$==Dkoo?*ph!-~s> z6_*X$aoMn?%Z7C>8y0UnE*o|mmksv9f8%d z{U`EuL|HrJG9l_ zNplnI>LLp2a|0^BErTxYSSEGef3J7mKbkGOtIqrN&imb+_m3>|Zs=r~)Omkb<2?Ia z;jH+Kk$dJ4AI;}E{RTDN@#lVHCqvHR>{xU?hgUk^vsotPi%gzM#GzdLC4hw;Os0mGBg?!SIvFN`#@kgVG_MAlLYFa4(v6)!Ltg2sf0R{6Bp1%y zeItxT`^v~b3U`jWfC2}XVf)#=f)W-mS}C61A~)~}E9~Sm^AIF2DX-{|T}*?87@uPo z;C}G8!o*cf6W|C=XyLH((k#t4)_UR^{yGl#B`)A%^S{59AXjs$`$G8VbU25)Shf;! zGh40GO-&Pz+f|i=)_g_#f4Jbw6&P>mrZd>MSIgn%7ktq*yYw&*(hm@rPPnmR!t2~Y zPit0goG-T8qvg_hdN0JkyIj7V@MZGlo%4uvY1g)s)89tfFMG@@*yzdKJKs32iMvyi z)ARJr>_N*pl#AbSS=lPzV2BFq2Z&o8BM2=}T{_P;O}KF0vOP$Bf6Yins&)$}9Njc{ z;*1c1&?sx|i3d0IyBwSw21|61Zn3ohV{E>4uvuK<)5`g3v4B-V7COhLVoNA2N9oVB z^R81M(?a&b5>Xl3Yf%dgN^u@ptZ=La9bl!I^rInj+wX33IE=d~KJvsuP}ar>5c%9` z9zq>8B!=MXNDlJGf2>^3f~3pE@ec_wws>z|oSWrlmhhx&waBy=x1D#_t__XZW6N&+ zRHfVyQ}g=jc!^0|)ZC?8iRvGSubA(g!dQ32sx;rZgvmsriDeSObB0XoJV`u`Hs*DK zyC9PWad7sqcJt2O$6jF%QCVRL1`?QIHUVjx#9|S#5y15ef4B!&#E#G|N~;SR$?>#K zkypwQ$4qJy#svW;=SdZNlH=1E7g5r}JkO2Yq~=Y|9G83`&WOYh*euDA|yzidl% zy<^$LSnOArCi3zBq;|k=m3+UgctTc&ydAen?c6G>JpLrNN}o;K*%ED1M(0+kr*x}i zGAECy30be9f7s}F;&syp_$1f4u+N;3}feD7*`I40q#LS;g;W_ zm)IGF-?2>&;{%Q}La>&t09jkK9Hv7jBFAObMtA`-CF30K&sMPj3H42+@PD&Vfm zK1IM?HR)X~;I8TlxSOVbr}e6`yIs*vB(k-5_v>rhrVN1e+*Wl~?fFlE`O1Lx;aP*~ z|I8A0FG3&|0`hAtt?I`mKu^7X@wXNz^vNaLe-aM26d61x&eU3nHdE*5OoyX0CDCR& z9G$6ibfzTQOvTaVFKze$nR+qpOfLy_qZ1m&kujLYK8_C2hb41?7MI(T;EgpZ-b%E) zN0&Q6MS;8g###xc0hBAWaS)_J)t>!B3ku^< z^zItxpP>_oXoB+oI=R;kYveSZ+|y*if2`IL?@7ahgC(rl(uV7ehr1v^G$)AJDj}bV z`iLEga<^t0Ja!k7GdEt_aIhTU@X{lP>X*R+9QO2V3y#~U~{vNL>yBMScruwe+Dch z2MoH;HjZr3GC<`HJXISYSJN4wDhH@04ba6cbb$pd(7xMo&%>mvuX6>!Q`2?Ncfx;XNqVwBkPYS(8Y@l~c!wEtrn|K*`l!oy_0k6jdC= zS4v56i=57`T2=TrJ)z6km3}=M+*+am|>9kLi43xXaZu8tBrd>Zqt^w8JGV5((sZ zZ-+SG!Y#nDp@s8+~Y#h`$<{RLom5q}ZoSQqW=WT|*r)DU$gMMKuyf0qTrv@Rhltbyk&+#X%mYBlTdX-;Xt8;b$&S>hLgDd1{7F;kvYcUY_2uh%`vPC1;a?ro}k z4Q5F!NX+(X6z!ESe7>JYUFO!WaYm!y-JQH+!5;@Gvs>|0{g2E3>s{-A-06QQvynyR zi`p&Vx?~NA39}KkTUg~Ze`QWn<&-|bi~Cw!j@XoKt=&&}OJ zX?}rg9*6`nX#5@b!Tce8&}AP~*$21to%D!U+@%ucrq=2Uke$}ue_N(#wN$f;y`IjU z)ZhixS^B2t566Xy>7($sP@TzQx(`=~*hyWWCC^Hx9rd78l{zac*8_j@-do1%^RzOe z;6-5MdhWEiO)Y)#*7Ytl&6FAH9ctRC{UM{BQ~^gFf5`3P3oUjZx?oQPEp{K;*?mYa z_)tkC?z#|79K=QJf8B{`6Q`40_ZXwZSb2uK4+oxa6~4DX*swK{`$n~FLEVM0Ey_5J zJu7OD63-a;r{&FSOwIL_!6dVz5ZQaKIjSY* zlxR22xB(04SdCsSO#0%DZnsRKxhU!gbJZ4 zK(e?%mu7df`Rdow8zU%kF+pV<+E`NB3aLr!tFe=Aat(1FDE)1xy_iE}$Kf8!(?4o(kz$(d1D`(Df2)@9)yf+{kRlE2)GZ)o1>3&| zgjL!v$t@t<7IfAN%9srfB+O8~r1v$XcVW>L8$M!MWlXy&T*MN&!)J{a@POl-d*X-? zs}k-}E>hOGNI8`#WLUUR@w*FbT-;dja}vgjqYFsfcD^2%eM30zugZDHvSA_uV^U)F zHWnSpe_EW2MO6lxRMicOMs8Tdia0P`WDq$heV?-`z~vk6@`?HCCXE~E!NFU16NhR$ zTPxpP$Kgxt1s{UuKKk`dM}~PqfBEh@4!;u?Se#v|d(zoBv%HSOch_967Qmo4q`t&MkUssvJ*Y>bop!>a%&mkDJf7$9D!R=dzywq2Py;RqPT{1%_LMxi`e#h=x zDg&Yn6Dzk2vhhCRj~hWaG7k#2%^XIG&B76adP&oVV^&zjwT`-OaB)$z<;owq!9@TV zLwiSGEKw}(y-!s^zd2xnm3Dkby0e7XR&Dt8px@O^4;-C@**j@ebdeIen=L$If98#V zL=yyN!1(?0rT`9&E?QgGUV2mBnPWJXV>KXLaXDK3A}9=ynVSaXM5l-yTt%taGTDBIkW{JG;at9!j~Kb z;f_IIx;QB>?{gZw=&+TMd2XQC?VpvR5wH# zJGCg}3WTO*6@5F%Q`w7ri*#|$g}Ml{FBAJ#Y`%cQoD|_mTUXaP@h(-;e-YlL%I#7$ z^)9{o0yhX3cV0@0h?zs#pL?sy&Si91RbV>92&!Q?-wxi@VR3O;s&lDWwdaG*rLd~p z^n&zWiWMJEx#^Xxc$r_t^BYgS>4hoTsZFn1@gK73W0_x-m&VoZDu(fD5|B<4?fA3e z0UG>w`8F9&?92q~=Me0Ve@mR(UE)qIaqg5QjFfnHcZu7$#Ji^~VWq_C?h?0fiPck< z@TA0f-6ihk66Z}>!j}^7=`L|2mw3;VB?2k&Z?zH#xhM&>+?oSfLJf=k(KSohKP}HW zs>^n$-Huk@PI~I?r0d&hbG`hOrN#JYs?w^s>{jJAqc=rKe+MO1fA8e=##?RM-A8+k zMUis#5)&_9xcjlI{2ET2a?cpqE6(&;BE{DZ2cU`W&C-Q~nw&Z6oe~XgXS1+PXtDYU z;NU3{i2!?wHg{&CP-WuK6g6n31fQ244M7$*rN~tH&=K)~T`EReKtaacB-YXVv!Jo1 zB#J%jW^*%|UZoXSf5-nlwCPVe7P+>%`V+FiOyW4PFh+t`!J$pFSz@7zk9ye|R_OHN zJNv>-Sy+%p;WjFJ&q)LycXul+ji8X&V2V&KI)7=d(x?l`TR<tdJ z+BnAtr&Cq#P^?ECM_h0TawJj1BDpOby>&josHAiQR*p67lOKE*;RZ}2qWY9C9CO0J zh=UKbJr}K43&0efjYRA13N+7GS5=XERVPxf>O|^Qok+c^D^joOMCw(YNWH2nQm+;T zdM8q^>O|^Qf3--xhIidIk$TY%BK3BvsYmMVq;?|p*3;NIPnX7Y0vEnwCt88Pz$Hne zB}#63oi+wnI=&P_SSNyY=Hq5xtK8*LVqI?bw<;^jr0HYMbS&fVY!KqFsl=^zvbfcD z#I0U>H5;pGi6%>9ULo#~{)!@6-no!+DkR02lW(Hze@Gz&J+V-q<@iSnudj1&UG`3q zhZE*IBJc3`a*oMSBdQw3E|j#4C4gXG-W}`7rUT9pzfUwOG{3f7*7qRGfZTy#24hAbv4#sCE?rlB@fu$~>JA7UCiyd10HEos!+6yYfQ=o1MhB z^>nJdMMLbs(Of)<0%L1YV62O6QbmFBiqGn$G`$jCpKqq6lp&T!A`X#Sddia0E0J3J zR~KxCf84@bdtvcv8W}=`gseg0xK$D=B$D|Qf9xFXC`3r)B5g$7Awu*Kd@%_J>}kN4 z+$#ZqkXP_6FNe;FAt1tDBVB&rwfHKonkiz*gq>J2-X9c8ChQ8M;)0g`1YSlL33*e2 z(PURyF~%t8+Pb;s8NAB!ovvoukg}~Be;2*kQ|HVswQH%J<6c@s ze*|Jz@)BPDwk`Gvq<6~m-FA7t`vSH;r#B8NmCug--kkwX&~e7zsqEq#^bu>~ake%V zt%BG|FX>W+(&`m_ieGx5OJ54?DTuzJ=F+v}dmkSjO7nH;+7VzN) zLn$%oDy;KvVX8s+F(TE91w&4BModB8Ra-N{Z8Fsz9v&|DsQ9>A# z|Eb=ClwB+osf%|5h9E+t4J0a2KX6EhAz>RURa8q2VhbrTs*9WuzS^p`6sS-`Dw7z= zM1XsK=iK>tyK95hM9Rv3@6F8po_o(d=iGCCXNG-Y>VE*u^(4`ff7`X+Ih^vTq`xg@ z-Hij|LuIYsp|T*d!64B;blH2>x3mJjGB!BVsQ3US-8lD>SspO_B7%j#U!d?`RgmyF zez)xoVP82RrYmCQ^O*QgvBJ>-YItDYJnnKZdvod;7s2fV=+dB>ViUPeHU#D@&_e(L z56rjDaG1S7!Vw0bf7PSni=Mv3}8IXgW? z*+sTt_h){r#XvQT z`?ll#&J z_9Ha#*ck^64CLy+#MP%T^Jee?{ zti+rZf1hxMDcdMskh5$<7wzwf_btb*zZn>nx;|KQw9H$yCE4s;kH|T~jc|iNZmyTj zF4$$e@WR@%2lmw_#%D_d02JuS+wZ(aA^Zj}KmIrI5pRPSkh;0`fhXk17ZL-?_QEfL zzOhG+&rW!Jl1dBcgvXW~Eg?cq@|4SRozG8{f8ZFZj+mP-w|sF+qt4$j+ZUONRxy!$ z12h%7Y7xAlV3RHD-(4|)Xq&pwN+vMjlsv8sDdJRkeUvrUP_MW11b)WqUytQH!RY_4 z*Akig%idVgq;{x0{u98Idq)MIN)+k;Pis>#i?rs5#BA-ghQ+W|&%0qa2spIu<)|0^ ze|Kc(F@HWKZlgrXTh>q1%k9)%wROqRkZiYCRGxnF6LB3$J&A~k7*8V0aiE{a;Ouw8 zk)Wyn<9k67`M7?m!+K3VvGO_8<>c%&3c?2#2z09rQDxhBY%XJ+i>am@NI@b-RJG#1 z*X0BGIuYh`&J_Ds+hkrA=E+>s-mk-He{)XKI7~^MS_AD4X6kh9s;05zEJ_c*CrI^W|;5hg4mgctHmXlltz1HqMxRxM2C%e>;Jy zOn;|w<=lBNz6K172*r>Az1*4Ji=R<)Oa?3E0=Z_Uf+^<|C~i#Oh=Pk{U%=E&$#FoC zQ#bx8)Qx#Lp>6?FH+5Z}_Gp=433XEy>K0U~TW}ugruv|YY-k=nEvUk@jSIlWsKB(1 zSeUj%EQv#ghZn1AA6C`;p7O=woX_=E5nIT7toCdeAV&Bg#wG?XLw~g7y1A^>x!{ZlUVE;x z-m`20hxLGD=rf+T#2cB(DYVFN!-Zonjx4MkqeB5NvXNfcR+(c3*Sq}ie{#gyM8IkU zJ8tC;fNTOKutuyHF|%odsO%s-Vd?)`#EhW-Ljok6uA=`5@RjYERFYZ8Ff?QrAAG&| zrr;>4SZytoJ}aG;C^-`&)<^f+dtBA_+WZ$fLELEj_581W(SNmeY_3eBW+OJ5zCxVq z4mIoeYT-!0P1h1XXf~!zf50)$%5W?51{;#N#1*4cSTP=cuhHs*qgz@i6DmSya`jbby?0JW!Q%NB$T(zAs%HO~VWLZ6*EixYD z2p|pE#hfEv?6pD1J%mXUt+&tdFGTUo_WPA{Lyp6w1S*v`(Hfr{e;&^7F&I@|Ae6h+ z%VhGfFuQdDZ>%HyTb*48wd%3ghcLN<)|3cPRXRMDTQUA1UwYnD-U7i|uS+D(vgCiIIYmKyv-~PzRFnvYk)7si* z?2ZiJXHp+hBhE-T5;R7<5v=!ia|EloO}jn)P;@;M8=t-ge`6EiHg(9sMU5`9bhtSH z54$$Po`m$(icN#Qnz4!KD~?S}Ur}tDoYlqi7TqC2)21(a#{*myT@!N;QZqlShUX|a5n&Rwac|guuC5|>K~>BN88<) z9-G|qxomt!kKdJc%qAVt4d;^`BpuLNPVe?bo8Ebm_5gR+CFzk^CTm?x%P z`M?D_S?%K0h%C{;RB7qXr1J?ugc+h2)`>Z4#ab#Ofzp8}gtMcU0p)=H?DYHwY(YYQFBJtl9_vte>a{{^CsQ+9b%x@0d^~6JP+`=RGnT& z)#-IqU0x{N`XeIXgLSvrMP4z4c)kf_X@+tmME~x81#NOZ;G4?ibhI|mb$vh+&25f5pAp* ze_J|&{>-yTbVlf9%R;IT0W0dO9WrkRpzAV9zmSC#+TtSv<2yD&#&Jf2a3zK`?RLhEz zh32z&h4wi!?F6)58rYX{%J|evzpdqKe`iP6^y+CIo2eeLXXn;K*%?8VX^v2*kv)Yw zAPuZe?(=kTg*vOUbvZED+}!M4={WA5Rx}?d>kZ5(rXT;OCtiBx|$ zNKvmCB$`uN7en)>nNMqy2=@VAaDh2R6?TZg<<;z)Jahc)*}J~?;%i%y2Uzn#e+g1< zky)gl)PhqApRe=h3I2RpC9fzHll;)5!6)fZQZDk-V~TF;ltw^5G5O(p4x4iWQ|4T~ zNAu9e<23^`V78J&(ja6!!r6~<;q>ECmGbRFGy<{i#9ZAIv_@A3Qu_qWtnm^^Z6D3L z#jlbqgUQMy45V~8W&%%x(qP|de+-2)=_KFhFp&dGhUOn1eC_^)2cCW8pE<$o?pDJ- zTs*fWy@aUfdI@5YWIjnG z?LIePZ<;MAbs8<<%i3*J(KIKumM!NPn6@wN{gSqMn>i(E^Q>iIMu`Tk%=EyrRAn(s z8ZmU6sZW{HwjDlP)N858f02D}xM94Vc1Mr!q7&T!+0GIUBBfV>e2S{)YCuR_O)Pc7 zc2x^AH(L1a=aj(ri)nz!))EXl5!h_MYqUglb9dwXMgaP2)_x(0)z(}=Kw=Txf=b;0 zH&Ykj#nbUi47>4yVStujAih@@3@RK8Lh-Me>E<^HEk=>y#IWr z8iI6q0%GsciLUnPoVe$;&2)1fud;DrVZ<#LN}DE#$D+HvBi3d1 zz>V?^=FA9q2cahnJFsf_@M}r2WnH^K?xfbeS zTFk~;W7)tRK*QhxZQv(|KQ#xYaJC5zUY8gW8QdYu$bo+vqA~U@r)Td29x9eQgBZB! zGLsTbg3aU>f0-0Axl94NRC^QrXH$&eL@isXT@|&1V;$zObe7^HnJO9qHEmwYaFL16 z2|`iv@^Zv%2U{BzvW;C?*33MzzZ?N3gaS0mRgO1Uw4I1(+Y)s}z03D6AG3!CQb{A< zmMoM78yrXIV@rs1QAH7DHS_yxBOXI)6HEX8D)CUNe}sjyUqC)Yg{uF96z;}ib-rTZ zR`FUd6|bDtJbSzXU|-E=uCn|(gE;tpsYfoGQI4oMhpY39B~%nyQ~(BryEqDL{tBq- z$lv;_9KsPHv26WK?A9C(j_)0Sou%JRZe)E)l(T2pf|$#@|M7RXW^`=y1u-+toB*~wSFF!%lM9Xt8v z(`6B5sVJhTjmkLYmSsHj+&5qN{EKfr_ZO2-{{1uW{NQhY_E-N>7EzW;MU=Hs5s!OZ zL?siYD9WM)^D1SN@rFdUZHZ7w+e{xF-eke`e}%64tRY==Mbu!|jjq^&^i$ggmbfT}Ovcq{KDiTI*O)sOSWyRR&QYV?Y4q#_9@0a{I&0ZXw&_L~& zHqZX&SJX#nGLRgALkG7{C{wwO3kk$tAsZj@3bA#OrT1f=69AGZdcAhraVvigPNHB=WoC8)#A)|5 z4pP=|I0W>nM|Lo@i=Pv-0rShVrU z0lHb}^~OJtUatZ)=B>yydGST@e@m|LOF3c525_b^sNt0*FLgDuPL0j%OOF*mDfJKx z)12MY=@5+7y3BDl#r~uT0b*7+Vc$3}ZziF+3M$B4|>Uu@Zhw|N{>0d zd5^bjqT=9bqHDEgScijV0DKkJnk#Shw3~KNeJ=(-1*v2#~|`m<&N zO*`clO>0WiPPj$WPI0-fyVA5pY1#?C`LesLY1Z``)7G|RQCc$5jV%wh*E%*8b+)9= zLuH*uxP+s&&UvZx5Z`=sd7UjPoce?Tv~|v-PB#yI2!)}WTbl3|(*mc7Ev7|lnMZ~( zXC}%ajr9<}@j*VCzN+$of8Xwb-3Z7WFywR7%-)*$$rWP5L1GFp-{Tx2ho0j9&JInF zhRBn4d+UD(bIZo#v{Q`79C!U5J07PT9*;85Lljqghs8V8+m6k8 zg$Z%ODH>Cg#%%57ZP|y98>J-^+>ovK*m;45Tq_NkpoY|zO$5EPf2ySDw#LT>t_r^r ze2gxur&hfFQ0j3m@bayO!OJxau^tv4!qtOp1tDAk8%or~kE3R;+CdEIfFOLAg9s)_ z;(PL`rwXc9Zp@Ci^s@Z!rSKYEV`C*P(dCO;yb@KyY@+t^5v>g$Y_4RuH&`Xp`{AAh z98~yK=hKbU~gW3RkK!v|p%~ic3 zD1=%}N!YLrCS6t4Rmf^9Ip=p_TeduB3DdVi&bXqETcI0Xr5mp8hP$jAeIr{~#hj-j z@6((p$MgTV@?2v%WH>B|sReHkJKGVRN9jIvypXE|D?J6fcx!YxJ@ z>)Q}jZN$71?B{jQMt^ohFw{7|~lvbg&r9bj8sOi71g}T*N|a6B4_10hY}5rDit!XUapoZ&4rMHsj^sjj zV1lOvcg{ybPG-F->FITnj3%i~1;7LqREo5Ti#Aoz zlx#(^fZ{Vgd)l$qL_)n;q$KkVMm+JvOHPoYeN1s~!#E#Tc*XGDgel@j3)@3v)_Ac-_m=ZV9v!ED^au2h0s;7Q1 z6&DsZm$6Odz)3YcleS??Iqde@fg?=21TVHmo~(Nb@;ZaE&PgY&a{#QO-aMjbUT<*z zdbtY0|5i4Z*RQ7n6u%*}#LF#SiLS+W`EFDJQK;o1>VKTlsFMTr$aG+6?k0@a3VX&% z8tq-bQW`&t?5l-ww>W)&-Dl720v%(7eVq-1k66{7#K&UQLnGIvLf)^l?RXaOScKRL zIlLM?-*rfQq9>8PlIda=0O~gjI6)u@M8SzI+-fjHi#uigt@DxY>l?_yZsca=L(x2< zb^&|dHh+v_>s~W6#itqq8p})rHMc=rLzg{5e2x~R`>vAeRsPeTra!ilV*(R`vPdMg zfN5XZP)VKoIb8`D;lWxY9=v1Dozl@X+_4>YO^JoZbz$slJ=jN`WihOb4~+4TdG4$` zBNN2E)X4)US{webYca|TDW{h;a|i4yz6_st zNQAs(N{%=lb9o-s7>KBu#haWxo1J}V5;)Zu9s^=W4mP}HoMg_W*XY@BxPkG6okD&Y zi`aS_RC4OL%;|&E^q^ykVGhj$7ZwT8IGTLy)Ig2<<8684M(MrDUB)W7RlM$LEY{M7 zCV$=V1(55EhndRLgh9hN>|Y8F1&XPa(C>V7)8*I-^h$FyMVP2iaj$#gdKFmLtD1Sk z>vDvw(_Z0v6^h%R!^&#~mVh?YsN#ARNE5_A5UpyUPA6+&w`s8BRoLXn^||9!tIzQ& zZyCMpjI_>)HUACS&QC~IsGv2%0$x` zuDTz5v0mVf0elhZ>9xM~u=uJ@Otpwy;y@x?jzEUBz$e;#=<$E-{R@C)S5+O@M2XDt|~5 z;xShnK?xEyio6qziW(IqJdFq%6anQGJrNNQBSwWoAa{J<7<28ltE)TRBpmhsPX}th z)|zY1F~=Np%<=ff7=sM{FVUw^Fb3Z5gH=3V@#CU&OWt=cwt8Sdls@_kp^O+k6t4MG z$9%;cWf*d(FYxIJYxW^NpMy`rhJS;ORz;U4iJw4blDFA`L834wu(tR1ekh<>Wn9?x zLqV&sYw8QT{$bz?yM8E`EbKZpQP_35oGR1Xs$$K;u2U%NI#m|emeVNg+HDthOrm$<;D(ss2!mjBWgQ zS&1h@{0&(r>Y?adw}9(+g?|U-r2`|~%1U?$P#CzR6-0)?>U!^QNf|$^N`D@ivO0&HYQs!+*Dngr!K2|$K%GWzJGUjT;IFvXR2%U zy_@G)eebTHsjk)cj*nB{J8jQY`tbF=p)`vm-Mw!>T!Pc()v}I`v6!+JE@>Xy0@z(z zm>W8!SVO3KVt_8$uJF9ICn;HLlJ@vX+Oycq5u<-w^OTI|DQVABvU;8(pLAsNl;}Jm z6sVae<}w~{L^_DIMt`J`r>e*?qoqgB6Om(tMHNa0eJY-4K>p+LCnsRi9e(^f$fLn%QwkExRopDLfm z6Lk{&TqUi!(h6hoak;OD@DpxKLfB8q>i;;v0lA6EzAn?#FMs1<{ko6rxmkHp zCwcuP7`zK19)BT|G#8IQ!k6;n=azlpYdisY?e_+X!Sk8OCCjyz-_(PcMvIjR^8=## zFOis7cMhYNndp-4>O(ZX$2BZQfW|po|73Sb4_Gw3z^?K&IM`e(1qO-Zdipf5eY#Pd zW`8DnxO6PDsY!7(1wC8`E~&>IVAxQqUhS_@heY~G8Gly3@dKuBL3e|dX~d&dssKOq zk4saFRbVvGV#-DZce0%zi0jvg66-8c38{D-tYQA>H_cF2JtM+1qKRij{uxnwph!oX z23b=+@xUOo0kJ~%7;1Ikvo-1iMVBh>30G+{_XkkfjYaY_12M3W z>ML1l*?+2`L<+|i(biv_O)#ntnA$i-iu6@rB3r=GxC%_vPRx(SiTROVz|pu0Ow>-y zkNg6T9;OOR)Ly{RDOQ0A##Lafz_g9qs=)B^^`TZ3n510=CaS-pRbT=wK{%%FM?hOG zK{!1=CmU_UiHc%-U*>6x+tA$~`LQs3f*yD87k?2_Yytj40JtqZ37jUpfS|IAso&DN zaGE9Wi#!@<6GuQunAc05174O6zN4E50OxDkV-F6__G~qW~$#0OVdiYiB0 zB7d3sT7vpP1yuw@Y4i7-4q;0(GH=J!^l&w&lvR(1ehshf0We1-fSyHVo_Zo_?+!4T z^2-6OKQhY%{vIWGtkD-;nrl61i0tpp*;USm*tW8@&aI5RaU+eJDVYGC5vSHTBSx(=V&u<=(HdvOh_a$NBk~`CQ2Ki0<3 zw1@eHRK2IPPFGYf7q^7_+Dl#*MsZ=@Ecdj`Rg)srFlK895UO%N6SY@CHSOKA~YDKt$C32^{3{VG?mD?6rxotrjes;(#Tj~3z+JASSl--1I zrU}yKB<-HXGC!8IxhHL|F;+4};FMvg^5rRYx{OYu(|bzR?nGJ4YFasA3f-MzclmYX zyBleDr_kN0avI%@@Ul3ZE~BQqLsm_VL_5G>r86=a7niJCrV}4D6OVV&QmjVjh43JR zrtRcgRRG0%Ru39{uwy*PwFyRd9J;gyt(c#eodX9Ne`pZTl|jq+FIPa*_7${VlvB{q zNd+7Bg2It@OQy6J-vfr&*VIrgo@J6@L5*gz@GkW~N>jy4?Pqk5NY!`;II(F(s-9Lg zU>beO2(b!((KNRS&@qt9MTwmTF(Z^yMcMTX`o=U~sBdJl(bWO_tw^_-J?%fH>eY;e-ht=9UxQGn1D6Kcp!(?TRe|6Ges;y zR2f3kg{Y{Xn$^n~Vb&@zT*7n#WId#9yfxC}URP`oJ~`d`WoBK7$jPKU&K z;(;*2Uh>4M2aTjTM{@7R8k*z!LcEQ3n4jd!`VSf$zX&_b-GL(beL850RmQU8)BqV1 ze{JR&^O|9fIDPwAGMc_ORFlG2y}Vv%n>!3{raOk4X;~y1xS4JnZl-0CI5FJJNr7oi zz|BnQ`Ettqd|RwEZnH5>7Q&p^({qj05+!;{QwYjo*Y?M<01fYS`g(`GzQtZ|wbz^7 zTB-Kb$~1u`Lf-4}blnjUh>l#1KFA>*f4me*hn&J2RaB1s5%#-SbC{ZnD#9^bh9a>4)N4jX$6b~ zF~YIcR`3r$DnE&8D#9`blzOHqYJhY@!+o!JY6-tC=V!mBB60q=1&8aN*#!D}f3|Ww zY6BNyN&%BMj*EiKZVN8fBw=W;UXLHsry2kbEY{z6BoWmXqaDuEq%usjbLUYMq0;bx zXT@R=s(vLL7y6h4PO|O>K{aD^iXmG`)_9MN=R)C&(+BFR-$7q6hL0~!AHTP{>mdIC zE*uBL&2%k#lz*IlP;alY7O!F|nQP87|ipgm0kUk>@S7}do=#}MT z{qKHPj>$N2-CY`x(Rb2V&oKTQ9M2~5Woc!-dByp1GDw8q5nLzwEgqDa9S1uE5W+0- zfx+{KN88=3B2ZDcHiHTQA8e3Hy3ooGKCgZt!oV29yHJORtLXOP-L9I(e^92Od@-&p z7*nN-wNUKBnKSTb(Bks|GzVy)d<#a9r83K+cg2h34Q}9@E+RQzgwzKJzOD-9fnuG4 zehe4I@+7&sSaUoroj24eW(+7Xs<;)Lr|R(zX&HylcOWm_p%=)!&-uI16+2iLt7eY7 zmknE}BVRoaVS6Hzg{&O$e=N_e%KRBXU1ie+_m=(QHxlk7BDgaZ?imjb_A$_k>2vb! zmx$q)QIyL^;ArOxqP0^w06Wlbg4#ptQf*&e4R09IW59gH^Uv( zX2LB%3=-WGf$|zzf8#W%Zfg8{k{m@H1I@Iq~YY1gqGj3+d8DZ+BWS%|^8Y zY*cBq(Vno8f98PJm=i2#!u&yHWA)mN`hfMhrU$5gljLgoioM37rlJe%M2;vNL#%bW zV=xY3y$t+Tna?SN*g(SWgdea<6^U-D46DA-L(W@xe?}Kha7R#w^ z!JaCsS*bEo4PzMMgmXTVZdq8IxQbV435omRZV8)1e@Lec+U3QA39F~p+0a0u5}1h8 z`KIcrbAmnf)G*7}0*JC8u*{beK3`wXs|NdqU4Vp_(J)YG(49acMZ|g+uD}qrxy~n* z%AW1nQTyTmvIa2fRJpi;p3lPO^&7Xs$ce3Q3gUBz^zq9Ny7~=2!}zHE!qGdKtBX^| zKW&#^e|La# z?`aVd7M;8&th!d8K|`F>sH?6W)wDhu)jGIlvC-j_(vGHO;MZmxW2uk}z_V{*== z+oq>a?X{oU<5OpJkbR3(_HUo0Z&2V~S44hx#9)w3iBbB^?Q z%k!)CzIAhsNRu*#7Z>|mcO#~-vPy6dgh5}=Vwf97qnB2AESk6X7zk28^a+Kz#^`mT0yW(5hFK* zg;#;V>d$;L@De02J(41)XH{dUQa~)xdX|c$c;nAQ4_y+D=!x)HaiiiU$hKa|e+oBgpS~X1Z!FQ4}VHa_BK#7 zffIK?Aap5oU8`ce(xKXnkltBN2n1NCv@MjFt~`+n>Allvqf9HZ8gi=r$dQhqY@6u5 za6tP(xlWE)G2yZ-U_L`#n_!4!=U}_2ZFD+`h(L`&COH%%@)5o0>s0vVe|w)=JW0#h zcBJQkBT;i)pys$h4RC>SFY&H-DiwF=mkauW7y`A*1+t&+@t+-2hdX2LCIN{lg%_}fA<+)*~v0xA=3}%@q_3w!or*+1Q{Tj)N9<9fp2ZM zTW-y(+|q(Hu?=8-Zj=!5s#F!WzD7RFkjQCNA&AbcdsG#BR#P0_e_#Y#G2>G+ucpN< zHSPUads$0Oi`#0NI>4Km$y85%zuJnym5H=g&ywT}RL;4RuuHHHYzwYveNy=4dC!-f;so;#Lh~xDtMDz%f0hlhiFG=35Y?OWlC0#QWWsc=jMDnC*USR z6mC)*c+%iLWVn@~e}#VdRwz}1;>`@QNeF9U@YAMyguc4E={GweY$zUdFW6E4?9aO5 zC*n;!d~3k>4Bj_CsNe%fRe@+s4G@PKHoK~zbUDKZd}R363RtjJm$rXmlt7xxwl&WX zXn?e?HNhWVt%sjzffy26s_~_3G#TRLby7`swaIXze@W`;u$+i&FLvi%O|)@t zkOfqoj&V-tWmmP-vkjOD)6wbybu|9?eEue6It_*x{`6e=ipt>s3?OS*_v{j8Z4xLL zGUFF-j7N0){KL}|J#safK9WU^GZagoNMTy8bn+h z;Q5@woa<3jfAy8P9*`O{N_RZ;?$`N^ZDzc&`DqPX4}Oo|uKgT@?K#k(l2D%=s{9Z2 zp`qOBr?sz_YzBXznj4-n|BCPWcc zSW|IWyJVtc4N-a%L^-WZlntmMFjq!$933twgTR#EfAy65_1Cpk0EARP1&GQ8Jz5;Y zv_i1cCJ43`(^|ijU`>aVV8A+8qQz!iRH8LHNZBvvN@|J4dz0Z~Wc7YsIPS6JICqIE z_1aar^7QeQ8yE|x@kELGJT!DWrgbUdBh3s<_e{*d=8&rMIIKAyhc(CEITKr0vtBz6 zYmU8he+y2LX&IlGOCUp)$+&l0TOJW`km-}B<=Y~ zCWXibWsuW#KKiEQ>#}UMIVBonOQr8LDt&uFPN*5p98a~|Z1W9t$>bzuU84IV>Xgz& zaF&z9c{ziZ46Svg<*a`4=t3f)W%c7m7mn+2f3ONFGQR7(ew?^CRzgFz1rfHmiGjY8 zH#xnj+rEkBSvipB)Ddpv5jX)N1^N-NSAb28u!n|vIyz?5VCBb*;{n$kw%OXdQpo;}GXXWK(w9xIGxSIePz-srLdriN%9 ze+P(jIoATIX;s$ zt#44C=6RlRBteVc= zi60#5gF`i~G+M*NSi%#KXDvm`!n?i51y6i>H9 z<{nFXK_`w!+m8jcH|!)Q9Ap4X$;UJmA0N9cS{oF(&oT+sEH;g^M`(L*SWf$Jf98<8 z?=*JbX?)P#mv43V4dF`AaORM^@AO6f+B?S=tO{qIZtcEdd-n~Gv-?i34rfl3avihS zCFGjtSFs%EzPE2uA zMoU6MHLTE6R`_@@p3a8wVg2HAe|_--r#!0lutTCF>)WGRucI;pq_VNqyKXqOUbk4g zb6K!$LZby>oyeJ!QMMWX4C9B6FVpcAszHL)L(l3k_QU$;SsmFkp|X0gz{)>uR#)GC zz%x^zzM`m{;o(zFfivF3m8*SgMh!hYQ+*T#eU{aH6?j}5AMYM%1XW9(e=smTq7acg zG#c)sH0x|Zq4fdl&HJOR=;CksDbvN}{j2qT-Y)0~L;T`Y(dV!cdsA^LMtHe~#3@M<@GEuh$7<;YH*70FhvN9p0&mre|`sdC9je6^+ND z7&!u_*Wum7O-^qL+BeY@Br2O)3(l*2G5Efn6ki)!r09yXbQbos3~n!8pH>PjK%Fng zX(QCVBv^AVfpB3wX0w-o$SU?S4Go~@Z)|v4sC3OQ9LE=!m`Fape-^R&w3_J3X>9E@ z5}KEe+XNkDAd_0(X?s7`k&~E_z?mZ_ZqC)!pebm-Q+-xFZ-|&ubUoN}gZhkr%uCSbt(Md3U!Tp)O5-I8tTYzF388%+`2fLB zuycprR35-o9(r3?f8Y&V!UIp>ad+n?WxJTaCu7S$ti|7Slz=ags}rU$<7)XHU;MM4 z!gd1Oi6*kRVZ5F?_m1a;K4r%1ojT*K!FRnA@SV`BH({__)#vbG`@GsQ6;3*)ynJL_ z6InZGSR2>Uwb>ZOk}*Fg$K~f>%+G5u^8^&IZdK>F*s zBCt3Wk~!0pjgmR5zd^0R?V;`Z@~~l-_Abttf-M85QG+F6_VUJO zz`rf_d7dmYE8uNG@WB$V$@ouLw*1jNtt~zJF0rB`ZT6|z`W&} z79YZtuP{!Ky(1cDXvXK+z-cu%c+q+)VTw0LmFn92f0#|2Q{SMAH69Tgl^!*MOlg^U zp9g{pvp{h5N@-7B8#jL;*1Ts6Iu6a7#dKdnSL@>j&LbXa72M|h5XkvKPXy!Y^WnJq zeCzZOOr9RB{Cw;55FB%Q2u}6%5Ufh|ZYi{8GvP43%TBaxQ?diEWQSTwzR|2Bgvc{M zb54k}e|+)(rr@_k!8z0TBP%=}m}U6iF>SDKBSBqM$BVI?`R;NIoe@mTqQtpo3b?Zf z*VBNu-GhFa7Jr-c`?-%}*NFQqW){ajw)KDylV3qV_v3?l&!~#F1iH&CXev!m|0(^U zktMEJstQ7w7DjBbcu%6Mp8@ZYhVey~&KK49f0`FUj~wa-h#LOfit$I8+hpB4@w+AWQl75!lV+<7P&xGnx4w2P9KK90SFT zf6Ojl75F>CuksMiEfZd21c$8<1yx$Pcw4Z}GLRF^hd{JEF4|fr$i*l=pD@6MHS;u! zfC=svajs|7CY=Gv5=|b1V@`vAShw{sQ)1cEtrqybRYStJ&;yp$nnPb@h(hUVqENvw z+Fjvc8SCJj;3}q+;2g}?m&os_;<32;f2V#11d$Wy5(icQdYB$AL}~+8MfT0JP>*c8 z^shK{Zm>;02*Iuav(wwv~ASQOCSf z7gvbbt@?WSgfTWF0tmDk%nIBe=t;^7A@zL$A%&pkBxSbU73Pmv*6_yJYI!2e{!{a}YKTMt&SQnylJqmhFHTmB&t#)_&lhO4Kt2W* zOwCj+A2u5Slp5e%`EmgSW9;87e#`b{J8BvY0#R>O@}jm)zovn?!tg3B+{cRO~e(}II2e=Nkhzm`Cv zAmVb*HA%$;6da=WSaHOPDQ{MZfNA*aH4Q)4H2i5zY~F~ZE6x3OOO*(LyBu*MyGvSv zsaI}f{&XuTO2H8T7Kl`o(*V+3T!Vbj1^-({;|Fod3{{@|B4>zlqx7lxob$43fptD` zD^tL3#esxJ&Isz4UJk5uf6PY(*Zhl%=YwPVyTaR?hMo8KH^)?j=kozOHyM92Xz;N( z!8ycFBet4JmUpQ|0i$`W2E0heGvwQi! zUN@7oID9`&<+Uo(vFYV^yE+>7^(bzImpY9J6gJ@uHerzAoZ#J9@_=xSZ5-#;nKRG!Pr6@Ii?>rw9~2vBRZS^H7hqzg9E z^s)CVj7-2p&e?qmZxS_`6I-hc%d=QAIGCCGFM|DCOP1yD*G=Y^SKpRb1W|CF&rH{H zgg96LRZTc!kVMO3e!5$bdvS^e|6XzY1$rX%8{l@)O2qM z%U6o-!~iMv^U9opR2@iZ{bJb@e}HXKvBAEgjl_$Z^qSV|7kTbdZFdhh@MC+{4wDRz z*E5}iROdO>FiA#mAoVS)@BQ)U09*NjywP%ZtEos*XAP-=rAFF@8pR2j(Lc6x_kk1p zC)v3^JExmxf2zwtYY@Kb$E}09pty?eH&KLLiij4g{{?YaLVllzELEuAbWWjuPNc;Qi`I4qKoz3#|~x;)SSEuiF-ESJ7CYe|F!y6@8CcL^`#hf~c0dBdt(-Hb{V3!+azKyt4wqvH2q zIP|HsyQ|04(PA|RJz^{-H_Ox`(%XmXTTZ#0^ZQ#=TS6K|f4G5LY^vGhOc0u;HR>$) zB(DbTf36+}Mdfrnps&XAKB&1>U$*GWW_LKWB7GJ-744Nv{pwYv| zwI1BqmjeJq;*L6$?H-@7h|9(;+Jn^nSO9GJFbts_$u~v)=fQrhp@c1oFjg8J&0d}t zE(;?AfCQ0_IVAVx^?M;S&l?r53pW8%@jM1%f8!n&)P?691wSK&;f8cnFbyW8B&W=S<-^^?%9eQq3AFW_;Sb;@qr;E5GeXa z1fRb7g1%`MI-8SWuM^&(^6M$!S`^s)2q_@_zA0)AA;J&_L`qB)K14-Lf_fn{kTKkk ze+jaWD=^da-|C(t6;hVfT~! zng=HB2d>JSi*~hxta9~vecJE*y;cbQG&003yDS*alCD63g;7H_o0*nmnO1P396-4} zXzBB7b@k(r$@8F%_j|9=*IfIWD{*opIU_ZNvN<1zxhQUyYALyBDKo02u%Xmzeg(s=e*3V#?Bo-Ol}Vg^g@(C|1VaN_d|)`Q<>Aq+N; zX%x4f^mR?S4w@&$?I*1n){7^>e<=2K75i*DU#sm0(RS3DfVJB85%7tHyi7de!S*9S ztt%KH$0x0CJqfvPC`a-H1#w6@?&eABCs!+<6xG3mvanOl^s--S4tn6Ie0k z6*c|JY7<_rQcoXGKjWakyxe3D&hg+)eDEeE-zHtIo9x)5l>zjS;TLPHf0Zw|sYF&x z;6g~~SnHT@qk#c^UZE*Wk&ac7R$KZWQs|hDzW-b3sA*`4od)7Zwbl9Yxhug|HLtFL zT$yP6h#zz1d@EfcZDK97bxF?X6`^9f1 zCusi1oDVNMiS~nu_I0hS)hIOL(@%1PIK7qk!Ip+>scq4;+uS1kg^eLRrXd_t=^?QZ zvhuM>Z8%Vy$}!5?e-{Zt)P$v;SXt|~ZBRO!k+k4-r?CyF53Gs!*rz=K-ER@(1P{|m zY#7`o5%U+XrF1?DE${fYwCoSW8~8_^q-#Iu!-_c=pVU;uIu!$*iYa}dX)euEFsdzU zu3|iFK)>-RJj|5z!SNrq^?&8Vb`Fzo-=o$V#_Hv~R?}WQf1j>)+SYQ8)?Ci0BUY{l z0Eb`BRO1FTV{9NpoL=0S`1K`y7s<>L#Oj5(a+97K|AHr8zud=0ki;?pcl%EC>+j++ zf~Ad4?&1p}ET-HgrL{hooo|mP(V~--Xi-a|LB(8DiO|Qsx0@zh3tErRQ1NtwZ1?#Y zsRph0)icU{f05nuJtg9$p8GAwi z%+q<+%s_*Hv6}FS5dJt%gRFLsCi#*1@WO{9f4C<3=`KsWP5zkU)(+4O=p83G&o<)G zK>st{L$KI(sPH`=5rT(ZIuilr7&1uoxJJSrf3$9`f6?aUy5crx+pn1e%<+LUh6OCN zhEFYcdYt6A=9Dx-VOoWPslg97v>BvdObku!SDQnQqP0QI+KKx33fbxt^{gIsb?;Nv z!P}qwa!T6EDQPdKv6!w{c@1M`XoI-5S z#Fs77k9(iB7~$JUQW?lGM9si)ZKC?(*2i2qDxone`Jqd8ncFyV4CqcA15PB)ER(_X z;N}?6(}SQH9ekzMVhK{@x{j!}2kR_K)OhhQ&vWf|s6bZi3e2rx)~l z`IQbV4WqzX#$uT2ihr?PvQ@5f6;(D zwS=ooW#ihCIf8XyogvO$Y@B1*5_n94FWorkD!jv~pm)?)Cap8u- zhw!0Pr@=NMNr1I1hL2&5=sK_dSj<{fbwn}-m+F5~y`?KSdAF1o5rf4x70rhTop z#&BKM+nB?$#+ivReC5XC4Y9rL;qCgEi$_7u?}exK_X8$)8}DUP=vd?CF|b(1@$8 zs#<#sfAWY<9ciwf6lA%Efz(3n%3%-yFTz2fu=2GRe#uvT25Io^?=oXh;*tL z*{Dfiai2{Ep#6iezBdPGnB3TJ-Pq%eMD^~&`P+}%_xHweqiKU=ro5+dqZCquXc;l6 zEU6_e*0;$@3NI769!i@;G}HdpzwGwM1iK7Hqsm!0tS5qUacVjYf5T+_&oSlY0h~11 zA1faeX*5ue2&iYd(!1n|N2pa#RsL@a`f`m(cZ4GJN7Ur*Z`UC*3$td0FflnQxiwd5X&3gFw+Xl3#xpp3mEBFD=P?bywMrQVwSy1$?FhQhIZmxf#DlR$sk>Fihb+R^+%w7Ru{gmCWa?Q^EL^*y2}GwLP(P z2bmvk%02@Zzrru{49M`s#|g_Ie9_JyL; z+k)+c`0gqyA9_=j(}){+{Qhe5K8BGL+k(5CaPwzg>*^1`&iQc8`2^qOD*PDRTi?7} z<`yWr+EQ;gf6&!lR_*g5|r|fV%Ax>od9mt$sf7xwCSh zH?fY`40e|p%lyIr2gPqk$VL>hzdmfn-;^ZZ>>+uif5EcHJW@s@`0(;UwQ><|J#c4m8U=W4d5-Q+Vu6^=sV7AQLv1gG-q|Hqemp zQiH^Se~|&pz^ZUDjnjLiL;fe0ftC5;kRPujp2D(8Ys(pxM?A)gcwAh^3K?IOkH^+D zjR-2%0Au+4V<0gtMoMOoK~jv2(qGHX%&K^qr)!xJxL~N*?YZS|szmK_TiUGQ|DV)O z%5i68;IFC1VrtSA>)2=d^QW8^vqRx_HmGv4f6wZp{U(o%MPU&Uv58>sPcd->qzuK9 zLK8irzzJdCF{?iWhoQjHYC5)Sil?9p$`|uO)yK^JmQ%@$NB)o35tZZ7^9c zXNb=wD)$^S%EwfRl#Gu-Qn@o8>6DKn!4pdH1UMS#h-ix1r=01$KBtBWG}^RD(|0!! zf95#9^mwM(QN|uYFdQ9w85F?3Mrg`vr( zW@ouJTg?I}YFP}Qx6`^XCC&eF{c_pTf8k9PQtO!wF##G7u(EQUf^Y@gVGCB#VT@VT zRaWnLrtSLxBU{^gU|!JOqwFI14MQ1dAq(ud(L4r!1*AaPJzVvdG?Glt3x`m|j1u?& zzbmfZ#Jh8ihYO0|McP8LE!g5So)RBIj=pUV&X%314ypVpoEw$V$ONlnIP^AEe?(h% zDniQH6bw+ocEGG7FPCZ*HKrqGy@QxvVmlkg?Y2u)U5Meo86du?_@HAfStJbbS5V(5 zkH^cW$#6I8P0b?0UCVH1HHVIHUZj~Ho%%CqL+3GTXQz{`9v{@jBGW9T>ECx8JqoJs zvrt1(0>1p9lL?f+RzBR*uerjaf3qj9MIw)pb70wmatf$#`KrrtKvife@2kU-S1|8) zZkK6W(t>?k0^sT+*S!^ELXCbHL8DLUPPX!(x_kCXAv-Jd$+wyz&(e7N<-T~lVS?{e zvlo5|ssC|l#ik?1s`$lTOPuc~P5LUJnj9v#R{^kwu~d8cWqYue;9L`_;s!- zS%GZ`zU;DR`dAD-K2SS3f_M`Mzl1wmVkj+GG>NW!Kig`}ViHeJalSRM*OF_u+3QwB z@Db9Ssu$6FxH%&7R~F-)Ddv{9F{IDFUP*^NORZ6qivi6&ZA^<*{Hy^Ke|W!z0G=AlULrSy<&^A3-y{mh6mY~vaecR|qy0Q`h~}#0 z%S}xMRxCrCZ+86s_eHz?v)3|@^%hqL7tU+BZo8VGFdLQe0V6I~-N916J^~tch+PU1 zm1&8|&BIw#wg#+yij@RJQa+B@&hqXpP7lBG_7@ebD^j?&$ZUObe|7^_S1V2>Y{#jr z4cBIXC>|j1m?lBn{z*2;$p6rc#O$$px1zPd-=a0Z-y-ktk=t*z!hW*f540}%hQsyB zhXOC3`>YbzDjPy&FVtLksvWA?^>}igYIM7G(%?5l*XzsLMg>ly5)j))uMa0Q!6_or zr0tv@)QM=d(f(;lf0sESY`EJveLPj&6Fx7&ZN$c_$Nc11p0YnYw$(}J?B~YGSRKD64-0Ad~J-#$YJCnPvXF(0>3(ZS6 z$tp7qHeYyLUYS;GzUg`fD(bXC^Gz!>AM{w{Co0~)7QP&}fBsL{tK^*3aN=~kbt`HLy0;w|et<=sFzhdhN~nc5l|N zwJvl=3+u<*Qge#YtOs3;*0tK-0dU5q_<{(CcJq$SJ1xH8G}go^Opr6r?J*6$3?e<( z8YbcKT2%5me}!&#NXf7oFkP+S7$gHXB@FILWyqN4iq!3fzbuy(Opf7zD;HN_$5gpZr$<505CS^>;d z+o*kv>NZuZl>u{8mo#2P#ukm$yi z8{5R+NaAl)CfcZ==o>ZQW}~jbjXr}Q2UsFUaN%%c>0}feRh4c@^9^-(ajFv~E{Fro zfTq#Ze*p|JX!R$P-CO%JFlGpl=O3(Q>Zx76s%xe!4xad=4=OsQ?XM#bbzQUbt=+aS z6}wIwO|{XlAGgs5SxXyenkUiWb=u*niMAh90&2?;9&zhlpU#ZkCqX@D=R1+NI`Qd% z9%Mjz=Gu$A-HUupNYAb=+9_SMOPA(?P1>cx#xCW!Kvhq0 ze-nBFM3HC|kGr~}Ly_w>TZ_|Zu1m`Bq&O|qktI5^Oh=}3%qEAd(uuM-RxwKUhKt7x z9qI~RTi!PQ8zXagh)$7ZO$kPE9*cY@x@DnTWJRRE|bd2cs!3_$aIjqI~K37sP88nSU-Q43&Ul1U47?Iha6L&;W={SOEh0O*zS&sMAvHN zu3os(Ku!bQ3QtFty}T3`5a1bkf3Z&UV#6~cjS-ZenHd{0GuD5_#8{j`3%(Y6VS)>E zGz-8d44170xmws@I@m|c73lk&z-r0M_|5qjBbP2?Eg+D0Y$N^39D7*V!2=1zv5Ax-q0GPe5*eXwb=%GmQ$olnv zzsqR^;@4lRdFb^YeF4k0-Y|^n4fPv;(v|&UyB-%-j^67KjS~)Ye~-qExFYH4;#3%F zqLI@R(;*rXQ(5wG74?cAcU458ufKz| zD~LUCOmZiY=0r;T{b#RTVkth2iU<|fFs%QW@Wdfvdx~;gf6fUxYk(#ym*$B9jKST* zp3IF9(|!+ns38p3R4E~$p%%fh^s+ybK@?|d@_Z;g6dpWh6Qy6(ZfDV8vM@UBrK^wn zLd^kJ%+XuaQKax_j2=FnD2#zeVGPKN7!Se}WZR)i`X}isTKgLZRGwu--kQ z2|JvJbO{?K^`Nc1PnK=2xJ#RhUyb!$iFd4CYc-rFXZYVb*;LrZI!bqzdr}kTMRyyE zg+^=g?*FopofPj*j*J_U^>Vk>f64wGj-#F(4MXq7#Oxr#gA)eJLAd64!uEK=OSF`L zA5YjGe@{3$p70`n?VaNbR*ffYjVEf4Cpyk}!U^Gst_Rh>&wkJTyX&`^-@OA3aLtZL z-_~z#v#U4kJv3woIDLg0E&x#{S1!NPuJ?_+r!9R7cRSN zn#h)LdGC>xqbql~c75e;-0QBt9M5{Qo-Gijq^RGl$0NtXUh%U$!_(xk z-DT$QJbyFF5Sm1YJbWvJe66`OoHIvOImAkm}xGv42XoppII3gFL>x@d#jv_in$TjP}mR zhrWE!E(!Gpd#CaJljVC@!ghxH@>-k2v&~{ZJJ^8 zMMZDiHy%QrRUEGI>6;I^3uuFJmp5(7zu@|6%AR|2!FS4Cihu{mqTR~gihoCgUhQ-TF$KHY~1oe zA^0>~-cvP<)8?*F86-vZ)MAtm)3VR!OkWS->EF8R;EOr0wAbArQ}#5OI(Z;I#QYG-1?~nUjsXYeh9fYtrdZxEgs!z5MD|_>1DXig z+6jwQFiT!$Yz$Xgy#uwDfie0}Fsf3rQ(cZoHv3fQ6`kU?5WX;&bNKd*XnzO(>^`zL z_}<&`uEd|>2-r>DEa1=F5m*snI_3>bv2~5~D%0Ed?zrKIEI&wrK4i%9GaJzWX{W*h z63=4T#g&AAK&3cJmQ$nj*u06Zy=I7uO0UpZzYGhJFH(GFUkK8 zXe@qDw;=2aG?X&(5t+ef!+$>S@^^P=a1RY5X|8q$k#tD)gLhTberD-Oy-f@6!7>pl zs6*_FWQtNnJ9M+d*DrIIX*7Q&8~7~zf}vNbWLV$nepV=Y1)WNEMZ{u3Wl}szKdaD^ z&;Lz*q~j7OqR!P2g@lHmRkvZ-*6qTvZr7@ZLfx)?W4ljw+nwWU?|%#@AA(P7YkenG zDP=9F25_#0F zL~itr$MkJgB9A63ksDE4mB_vBj1;oq(NdtnmEJv5(nICILy8M}R!+hqN+7o2z^?j( zg5p1r{HO*BjfjU5eSazFR8SR;jd~Dq(_}>i;nVy0$%368@rZN|m^Ua0_P+%B3$4G0O;3!~^_(v?M*RgZz`BEaB)n9UXw~ z_nSjl{Z%0F-hu>aNM0B99W7P=OG@2os8;gc!$a0bKNpMWtACQc?im9r+D`@YHq6Sm zRmrvAFIV6CxtOK8>YMe_&gG2#O|C6d(M>1WXLhJhCS2@qY*B4e`b&j^FF8D}mO zyD8K*nxsF zu`j7uz#*3ZY3!0^-`m0`ud#mH;ZenMVekb#D)P*1{ePRA>R5BoG>VVYS+QUygIYZ( z#WU0@OX(14%;nHmsAv}V9AcEwK+OCZ3PEikVgt@hz-ybzPwKopVJdf`m}oe=Rc_4I zrp!sT+?MnqqX`>;Ud)B2cm<4ux>V;UeiY|I#Aa-voq?KnvPY?=Sf2mt#&CK$#1VAG zEmm3MW`BiQNmU#mjX7ky4I4j-)7GZqAPiijbEkOWeK_!|L5vEI)v&|uH!OZygw}w$ z7y3cfD!H=UrwN$yuIdazeJbH=YGx0Mh6ub?ysZ1)`Ep&k{u%RCZxM-H^T@6aEmxz5 zKw@p1t*Y;V_n#fjsUxoWD2LnNKwc&11f`ASz<(e@5^m(nCgEG-`+(Lqba3FTAPO^) ziZeEi#}n%HdF~4zIy0$Fwh|qum1tEf5K-tHa|}zUM!@V&=0VSJS;?#@2NjzPHW|HA zrB^gTud;I`(p5p?Sc`swS{7RoYxY*p9E;6}P}Pnz#Tzw2z7(<{sDxdUM-11GCy~#@ z0e_N1wC>2`Tb-zv2}$e9^)d(0M&$&DccGd@H9@1OI@^NbzNVP>Pn!ydclNX@C1^p~ z&=u7YNru&Y)0yO(bderq4F>nk8`WLTl>QQDYz}2ThE5LA{<_BCjI=#d;Wo28+juD^ zrz%&H_9~}1EQzowOzPyA#iHFMz|7-%vwu}z3x-yFWkJig?a_ENt+F836~OnHDy~mt z*$&vredh#B1L9f+7(g+qVQ~`XBV!fw!x^plDSrbw`e9xT0Up)BJNzL*s>}`hBWlmV1HD6 zZmLp`Doe{m{ntuD!wK>dNM4Xow;j2QPlx{`&X{HkbIz=XG zd1*LZCR+nH3{-xnObMGl#AP?dlXhj(#W;)}>!mT^2xlq%xyM?ky&?{!IS zCIecn%&3~F~@~6O`*^y3J7a>x^K*Qmw`pKLSg$~o+RjJ&S zqq2;*k5fCQ=-BmEMKB8$^SbD8Rk?1s9(i1DBw{2{IfMBe^5m74J{ul$&oeA0SXWny zNltWxNGk3Q~NB>LYT}O+~b%@f21%$|_Bz%6H+iuf#drFOw3Fvit!k*%6hO0k79G&01^B@7W3?|Xl|pLKfgF?8Dd9Dr(PK|;+k@rWUV*(e_-^~x7wB7QQ_B->}p5ZQ}b4Sy^#{R}EMM? z@jaQEWEdkwyTNBF^D$DBYqlQNQb9zaOp2+@D)wXVl+*oSk21d+oXAi5gBkS*cSz$4 z%nV2br8TWv>Oe6K`~9tPu0eKw{jGh(bnTVv9{z}_1|!1AIYx|Y*`bVdCFVQl@KHSm z29~H#=w=?BSbux(QL>ws&KJwZ6J!^f#_DofV1pcrZ)lqS7EN9K2~*bq^>}Wp`fHlH zreNxtD*M-#gJ;5`J$*b|7Y{Y~8TPJt4SQGAvUf$^-W9E3?^3DN*t;CQvBTR115+O}$D57_-ZG;H=HO zh(ZLGDu0cv{-{Y~(x1vyx6f1yd;_s&mjZ#s6{3KndEG2h6OD<5*RcgHOhE~f=$Z&~ zy}VXhUV-o#Wh;j^#)KCdW2a0<%in*MC5MjyBfOa)U72aG+Q-pA9uAzht0w z{SO(#DaMxD=LxsG_QP*_+5f$t*kU()JX#JT7)Y)Hu;0+GbS|5?o zx%z8&2mFMfilE+n5zb%yu0FDIL}vYJ?<5Ql*LVF~M36qliI*D4{hR$TTTWn+yVYq> z2r`qRz>s#IB{TG?GI1F0dHS5}lhaocXgw_t)qjm@G(r|V?hc*rMaOPrL=NLn zjK;k27&0&G!Z0%PF?OTNC&tix3xAnh_pX$|Gm~nBpO5|#M4|jWh_m6C5N={>#shJl z90Lx8&+QSFCR2nJY{;N95O1bxyQYzl0#eYLMX)-QrraxhpAc~ApTl2{mem3 zN^8n~AMcl|fqe1313l1P2qzB7UJek}B9Gr2K#Ay=`TVdD{j~iNV#~(~9DjY;T|pBe z@ia8DG|z;+y}@uWc~kw4kSc!tXFv{V-9MZL9*Gp&I;`pX&7Zq&=HLs{GN8bGl_E|vEihumjUoO7^uulx@Kv#U%aKb~tM*GTN0Afq= zTTS@gFYqCQWK&tZ<9mW&W%)I~1A;#cNkW`MCx}SW9Cf2f+Q`|<6X&Q?>fG!a^4#cF z(?|5I;}8f)r=CJDQ3_o(oDQ#RXvBD}Njg1S8@-$=0>VR9QRn&k`+sv$Yw08K(tE0` zG~^NP!QI7g<=;hV-qYQ>b3n1H4^sXZhD546S(io;xf0MB2Y|b~OjBKOp@Ltf=*+E5 z?o9KWoSaK_`wJ@9c;a30AJlHFUXaEikEAPuRjYJ2#in|N#;=?cJOekq)0smH8pzR* zCxdg{EureVH!Jqc&41i2A8=}@V8i`9zuY101&F7CrVdB-p3&_$Xq24~Qh@$-dllb+ z0{1xc-_9T=ku^6AT`MRjJUhzr&pJ^&=C>&{`>*1jov zn7jHAH{rPMT|(=S=-WTpU7E*f0_Ly!Yr+0`q6~*tYP57TD}RWt28dvPZm+@%%`l2> z@zfrrsfzX}0&b3`wS;L{MHZS&0KPiN-yYGwyAW=nX`x;i8BFoA{#C3XoRO_8s~!iX zh2qarB!#NtN9&vat#}5Jc42kcKR;xF9py81GZCGnNb!lJ$8+QdB@@ zwFdReUGa~^0AKrXelkZ{0>`ut=oTsi{-9mRN+a@vQ?nUiHNrYOj7Wj#klK-C+p}Qf zArYxkq%4wHd$i8DC~Ns2gf42F@teoac&Cx_W$^~8lYiLZa6#iC)4>w<;1AZL*gC5D>xbM-qBcxg8tsgM(wy?!UJ4=V~{_1+=o6(ZIo4fkZAs8E|Cx3Q|KX-QWqeC=QK-=h?fLU~M+c^Qj z5bHwTDRS`K)dacZ=mWze-dvX!R5e@C&h`>c^GiyeuWodj!W#fVoF}*9fCiRs3G)97 zi--~}m^Sd_pn>%a&G?ycqkx?))a2u2zoB^2cdUo%K#$m_@Efit?_bPc5z59W40b<+ z_J0z#L8H93j! z51YV|x3h-*_!z|}#f`;(G%I~SS83kyR!u@xh&X=_cAzyE=}Ea4!bz|4{eh-PzcV73 zgvF`QYS|x~v4>9WIl2v0p~7C=>C-Z6^nUuWWsgwj06EBu|U&q@oPd&9bQrr`!&dcVFun=7mkuHg7a!E9Gkbfgv z5=`E~>|gI1uoN|CMdJk#*@B3g1raq10=ML9fhEW0AC1N%#ObLqn=o>^%Yp zE84y0c!N&=BiK)8NAXETM{L0$M`yXMFdqZoHPyWtK`Dtr>H%ShSXadphJOkcRR#vB zmjE#*n5>H#YF*4!+1pK&7>?T|h7*Ima_wdUxQt;VAnet&MT8v>$wm9B_S28ODu*jGV=jX6eN zQtxh|_zxEBoT+yuW(#ACPs1oW%Pjy9Tc>35dDjDvC2p{`)_$IMBgYdDy57J<>$f>r z4aiuA{y}(w%owM$-4#{RXmNdd=2yZcrq9(%P9`->gt#w9mYJ&?L_GX8FKy5HxT1rmX3ITTf1#7}p-+X?5nLwHV1OlmAs01pjwLW_10@BlneYU^?$ zI9wMm8g?|%iowL$fd;75eq=4mQlbA@ECJPX$T_?KN11~>My7fj9>$QZF}7-|CF$}- z_9>;OiWT-igXC&ChtzIK&OiKG3%Im@(eK0Kd>`CfwcTxnGjDM;>>#qhh{ee;573nwo2{#eNQa%K zFmlk88w^_I2CYh{F4{!JXQFEYB}{s#eeI~1zLyW4Ox1I);&(=TM$@Aih7)ki4J3SL?U-i*kO-;+JD*A1|LlnAd*CMN<=p%;+0lds>L4l zx<&Nl&FQ($7gv8xYUN#So*Z|AaVO((C*yG^<8ep3jB2-~TJ(}Ft~D*^Vw@*AEe1^+ z>G00gGa@!LE?&p|Hu8Mp_giadbrm5uE|_aG`>o8Ye8GjDEg7}$NYzo2qAbQEVi>gL zOMjrrhj*klRkMpj8*uE0ids+_bI~UaWUrqXJz~IEfe>J!o&d3$O&s>FUvbPCw!XM~t4wP93%B+KWlLeki z`v+9DzfyIlm`+X;GI;Pn(=qt`OqY~N#(#EC=1Zg(oLC0U=<=D-J;c}9cyHoLOmxci;lhAHwELxi6=(GH8Do5@7U|R@?!+gcH&FdCjPAWVDbo;z<-ex z=DaneW1UY_Qa&kht|du0;BI?fS$7-JV}44}hU~Cio+zywEoEIfH-bQ_!$tgQmnJj$ zd26cbmAt)0WWv?o4%x?r$p};|*s*fZUI#l$XZ1LazYbPcezp_&4wG;RT%hM zal~1*vXj`VJczLkw4MDgqf4u1oye^kh|P-tBAK-<0Zh^_Dfa ztNwV(!c&{FzW1x}5z(W~(Wk!qK{=LH>&hGfPu~AmPOR7*D>fgm*nGTV^EFm1wdVm< z_xqC(tLDtmF+E#OZ3}kRcSDoTQ6#NkO;-Zp13R{?uxrKoke&fZcXE!&5r3i8G`}9k z(_!HN$NE5K;p*vuD!y0?S1$-907W7hD7mFr zGI93k`CE6%f{VN-rK@rUFbS;eV5a|)&Javb4ZeOJ812bb2G z=k}?3&ms#lPD5<0)9}INl7B~%v*^KIk7eFByCSn8Wp*K(N8X->`6Jnp2L-lWYu){r;53RdRXR;b;SoGp<(IfLiT=)sGta1RkGeuo9+-~ir*(%|dl ztKUxYXE}sgY zd?u2|zI_m8K!REJRkV7Bug90VBM<)}L}}7HcioZ|BGmxhqKX+-4Guw|bWB#!D25Jc zVWFKDSRRuQsAmR)K2qfP6ou+T+bm-q-L}`=u-6@-dcgPLHGjEAbr*8%UT%PBP{2$9 zKY9TC=+I?3&Fo>;#b}oX!;yX}bO=lAFsvrHc)*TBvrLr3BMzhL3ax-@p3$Sxt-tD) z>Q68#SH$XNx*Q?|%HT~Xmp^SuIQ|fP(jnp&;ov?`zFLV#Ra&pRy1pMj65@v5?{oTf=T@_qF;9*R_=MAF0stG>8O+P!1-WwNR-qPk(h1qh5HTcn<>`~l+YQ%Ws- zArrh?^vMc;a$7m1Zh57+VXPbfK4H9Mvtq8T?dh}FVSje<@S4UeT>I!V3s(WM?q zk&bCd(SIwX(^sR|AZQ4s@kcV8b7`dsEj=LuVUkHoMf}1j)glQ*_!^`mW(YFBJZ&^D z5J@6^wFjw%RLgQT3ptor$W9k>a8e67^b0xq|I>x6;9I0Hf)YsLKob*wcO^t-!XaX& z#P!PE!IF8N<}_uq7~yV$k9iEGJ0B3=hgTu&3g z@PDnx^gP0d9u0yG`o5lm)ogqZ^V=TXxSssJj_a`^%DSOV5rf_4h8?)st+Ex1%+d;e zko77fjW*m2{T+&5zwBJ7$Fo_~+ZGko3j5*<23W|uIn`3T^>zEbqtG$)W7!Hkdy;Kp zL?c}w!p^q>aNli0RbyD6mQ;5}fj=#e(0?E07E=n=qru;)=S?xtwFM@?M%WIQC9514&lza0&^pH4o6BCaeRwL~?)vDX)&!8BW~!|2T{Q6HQ7|#zm55zo zf#&GMU0_-Xk3#jEoW^%&OB&KxW;`0~(-2eEq>UQP<-j8?Z)SaD^`}C6K8W>N5`W05 z%=W8XZf`Ior6qW0JTy9@3~biY$oMSxpDXQXb;fgo84jKY6RO(=M7Y!>a%Flp5aFbU z0}B$<0AQ5ZDT+4$_e+6f>q5@%A?lQe($qY`qOEMXrj-?!tIJy^ye>++f(dqdm14ul zWx@%BSB;9xb8rQZH;_4D6R?0YmVZa7=2mQJc!ZNcJO)PwziQkhBS+(83wj&Qasgy9UaQ3IcCWsz>)r1z(;V2Y1&nw z7S$LiHp-b5>xj)<7Rxe9G!1Knx^(L_EDw&qJbz~z#>=9|bB)=VAhJC3S$`(bYXptT zN@?TXK!ov=py|(+k%IGuT0&j}-h^bR@Im1`i|9-GLwNYuab@wuO}eRsTHQOS=SI*> z5@n862!=_qU=W9-I5(f<5|3G+(H}`0$S^_l$K)-tDO0JYr;;RevGBGZ%O7Qbxc&{r&)d3tS?&>pl+*Z46o>DaiBdTQy5zKpG~a|zdBHt4g2T;50swm z3b!|>r(_|F|9?4+AlYp9L9S#=sxcJ^?kP2@Eu)E`N|-E(7{yU zG`d+8+pLbZk~L@oTc|n>6_K0z(f8n>VXh#QR|M?WZtGh=_BurkVB|xJ>Y#hMk1O6% z{I*tIE_P!}(!Ifnp0u9{D#8yO&L$7rak*+t3_8}@NkYgwej?0^SI2o}Ri_?8)u^~X zIm2Vl*o>`;Tz}IqeoZ5)^<%-0h4PG_ALVja{FqPUo^9|E10G9N6CgzZ69U1Ga;9u6 z^E*DSKIpU0J7d1xT18s^W`Wl)_}Ih5?`iEvB=(53n&_cH3H@)nRaZ zhs7knN27kX_!}0qfd##G>sr@t_1EsuYj<$1Bdin$m)(e`w9rXJkg;%vRmRd*h#coV zJfaYsr;bV4i}x-=G@+v44=mC116?eHuaM8%Q+zlX#@g`t`ZS89gA9w(D2}=q;gT|q zm(^xmGJm|e_)uaXtqP~P1y|8HoD$DTW~H$BXOG)>eoQ;vGZZ;R%O^3&NDH4O^`8Wq z#`32Gs7Y|7T4?t}^s@i7N%Qa7C2PaB(?~@GwV2|0M5Zz@AW^e-npb2r7k_hVulmxo|GOQNKfRe!ZJXySxI!x8 z;#uY*rRpS&9E5j_g5;$+R4AF2fos5isElwvJJK`up5nSHn3t6kGGxQhLh({6 zXn*Jq{j{JjbNW)~3zqFqJGFMmY2aK}SrwX4VLSp|*(*1$9C7?B%sX%9_psh^Zm<*b zR%V#J42hJbKto%Z6maP<)TCn6xX6D5nW`mlsfbYK=BE`wy4HZ{ut}%WbRh24)D#;f z9=V##I`=w#*dzjJ1`w;B(+IbST}5?oYJa)y`xf&*?1tTCcb#qk#nzftKbEj)hUoo~ z2!M6um!lDIOe`gdEa^ij*9QGaVXIFJyx$Zj)PC#(_Jar?NrT38V>BX=%1tmDb%@85 z>G3tVYd&bLd$C{r_}2+rCuMReIk7OjH*fH4b>4B%b5f>w0?{NBmu2><}&XBimGE%2jQiQ>sYgGqNALN$wR z^*Y+|>UE}~2lemW7cgTdK!3(getzg68G}}p=irQp=@h2Uvc&VWdZ@I*b6^#ogJLhM zY~>%zh-jy~de>WPx6tuaW7Gb;9|f6lPFMKexJh2J)6S97g6hI;$`taW9^yKyMG+-D5GbX;KqFy z4;bI2_NWUX{d+U0ypJ5xlI-0VR2>EZ6TY!_n<$N6+UIJ_hrp zuQXXe1tTTC&kT}5aesYBVG5vRdOFWlG?YL4(t%dA1}kfaU*0jOige$&wA_+1%NDi? zj0Cy&Dmcn@Og#U^XGFKU;eb#X)K`H7hl8uU`~HER3%39++)Q|MVs%9m@{O@AU+s;e zbDtH|+X0juU!nt#K^-EXu1q~$Z4o;)ZDLSPJwvg!cOIZwvVT=ord80YOy{eqvlTV* zg~Cx(-+TT+RcM7fdvKrqP(=eR;&j+8mV25;kg>9RN4xWMPVk_derB2OC&(yQfx1bh zThBb87SjP9I~Y!3vrEeUqBQbD=Q^AQu0zg>aBPpg!ZQ&B(t$71TRcM#x@w$Hi|Ex= zSbQ$B(+%P+*ncgUrA7+)K+?-ybmJ4}p}e zHrDKWbAJ?0)YaNi_wM^Wh-ZTY8~f~}u=SviC|vG1J1J~GA)L&7v=mFH*-0PKC!{JX zzUb6pTxvbaJq@7(wIDLwPoDJAK+Q9n>9{S}NIR^8t=4~L`R@y8OOj8{xW&Hf+ zky2YhY=~QneReaUYiK*P*e5L@%x~eIJbxhM?x_7T#j-sJFAOYuX-WHMsw*w6?;~PK z?e@=~6LdL05HrPxLU|YuBJfF{k!N8v6I`A4GW@I_I-TS3&2DM@IOZ+?ugX z@L=^VqR*%~8(labp%F44FuVdihCqnwf`7@b@UX(^ady@Pb}DwolW+u*L-9lFTz}6d zth0sEoTbQ610!6n-~I;2?Rt}XfG3z(#a-CrQ2h(0xGEQgu8t2u8m0RN8M29+iX}a|sCn&W z7A-LBtJZXwS)f#-6BG}t1~|)3wV+@J4HWDEVXq9Dozm0EfK?oOdD%xeH-E?8gYoX2 zKuhX_Qb$9);%wi?4>uE|XbLBIxfbw%Q|i<2!+o6Npq~?23gH<&&D&+xcYeS$+xyIX zQ|2}LE?NUES~=|}ncazH{#pfY!YHLPHU%E;7S+>w3VPg7rKbciuTxO%Jh8*#M>;#$R3c$36oC4YnLlJuW8UnFeeEpAqa{o=y z0UTuNH@yDtzYh5e&oJTi=V6#;dONv!FLl9%Fw zey04nf0Fk4HdkJm6&a`0CA%a>U#%croR?clW0kE%;GEens|cJ;5I8>pff=ln8G$oT z;H*vHY)s(H6F3_aIDcysIP(O~9)`dtg|oBHGjHE6kQlY)5+6bDx>lM z*D|gY<4VV;sI+~GN+(aQ=|%q9JI5ES8drL%<4W7(>S_rY;|Q9s9HEu|)z;m=qgD5> zH_<0$;7%tBLu#f6P9~}mIK$7Xsde#Rq26@Oc4+yEe`r8_5#w|yc) zWh29!59$t`cpViz9T7cY?qjtq9jxP_(r?=6l4ZZuYfVaQc$J5it?vmC%8HpQksV7| z4IegW@VH^&<7?)OU1ohPl&>oH#eO!Tw!0x3yBi`u8`0R^5VhS6k)MsIaW{}YYx^8d z%2qsq-A4EB9DiO{2s#$RA0w;ef&mO@L1W8pMyMyhZ}Sizz0ozJ$tf#7BSxv29Y{HfQQU3;vtt=O`27Pwxn%n zv*5;H9NgGikIAH=&7vAx>oGaT(3YI4>_|>zXp7p`O@AvW9gGV~x4IfliViC%-Rf#| z%uGJAvfQx|mr+n}{Ih@j^)W8O^KAW|<%;q0UHIRt_y4z6ug>*~``0$ipSn34nKS?X zx~=qnzOE=o18YkvMw3!8_EIrkEfu5VNX376W{d#(1o`lzq3 zlBWK~L&3Ak_NS+#I6;UzqKP}wi96EOcgQ_Q5Z80$$mI&*4TsJ3dxP)SIllrQpMgJ5 zpQlqQd<8zd;)pzmiGks>@cEf`MKE~nA9>#rtU58gOR%y>7-Y;n2 zE$=x`Uv_Jiv7HLKwu4=)@Aw^7cw&$%Ta20~v&D{fU;)7ryzdHa?DG2aw>zyw!rRnB z(SILyt+)cxPu<}<8r>$xDF$bC)!Emfr?1P(nm~i>(FWhGBc2@VYnF!nh((&^_9`9K zPa|3pLdFh_>aG4mc&PPD)cz%I|B|$SN!!14{4ek-N(cIYg6va+SNOjZ^?*L8Sn&aS z7JtLx$`$7E$<7Gl;Xq0Dd|*+X9X)q7#eeTr+O1uv^`tbJ$wIA|DtRnYAyz%9;DewR z63#tsyf7UYM67HCCJr~RX z5UD{JU62#G!ffC0`#9J<)C!)h7VnQ=O!!2!wNR9iM7N_pdqiUP13Id zk327LENUyGh@&p-8r0&T9efp>sz42n+05pw<;`?BJxWbmF*kitAn{0{!z0B|ieU5C z!~hRe;H(^SRDUV}!xc9q>QR1wk}YY~7Xk zGeYsS9}?XfX2QkF)wlmlcxCC{6@Pd&?yOE!cMn9zQ@#QVc{IIf;jquHH zYTc+mdF@@d^4(RhdrkcdRs1?DCw1@l{Ab98JNixSEQF-xRl=cc3(nleYJXFEetgfvw_7IHT+_6@RqH&79Nwx9oF|oL>9_&UwIo7!Toxu~4d9FZx_q~XgBZ@r-qDtz3-=cCbZy&90Gk!B!kpil1= z!&Ri8>qQv7!VNe1^t>KJw(BP^TG1Fl)_gQU3|y0gwH{bjv&Adp;eYAaRPg~mMZ%#4 z6(IN+>j~-Kp*Sc>3Qk9o|dPB!Pcv# zTKd7?%k^fIEz|9;SFeVI7qj6VUvEvvulB8?WA zB``m;yz=^?r`0P(Ihf}o_gJagHxV^yirL>)2m9R=stuG#3fhVWH~sKl_r26@Hwh;% zAUo=p62grE$)6x;3xKHZDtw0x1gG7(vghpCaTmo$d2vWj{ zA(Ts>x_G!8EPv%PM;PBWbkR>_gxqxDqQY~LrEDh+Z3trCCXIbc#-vFmNwX$3# zV9Kibh8*(~3APCUA8jjsg^N>!Erk1K_|RfUN_bHdE@NvY_wXL4C>Ohp5;M zPb38d0GuPO(H0fI>aglkl@(nk3|9#uv9z8>*NczsE`NiKtq-sM6oC+?JPk!_hBrQG z5fInmV}?&)cLKKN49&V&;n;YMS{W^?L&> z=V^V-L&cRSfEN&Nqa&NQH~m-x zGop3Wb!b$S%jGc`Z$m6)bl*su)V$L_FvIAMrGGQuX1ErogpL-dA`i$EzK|YD`FKXy z-&_6&0v1^oJE?c6p-kQ^*5M25T_cSQqu7AFpcDa06UB2ZLT2+3YSr)}%$0FVfstTt&RzG6YstOZExG%R106j(cI#bqZ*pYv((~0QYe7i#+ zlG_$!_0|Ie#5ToQY4o}k( z=Nmao!-1AZuLl zdd?>b&a}7Lbk#NsP@ka&P%z7Fu6{kMN}~e&hHXJb2^Xrw`;=%%-1&-+B+NNY`ENQEQ9L}{zA%OIqIG z=4Z5sH$x#40-vF9NSQ&1&F2+M9DjFw!8+umPzqss@N(J##zVxdp1?GNS$@ckA4=F6 zq)$j+W)5(Bi6L|K-LH;9z+S*o)5p2`SaP4L$c-9$rl`I0dXEzxM* zM5A>Rjn+*xS~n3&Y6!W;>9T0b&QYbcgCI9irloiy;)~19sDXylqE-Hj*niiuB+f`V z0HGq@uvLDY*)MvDPx%{wx&xo*ph*tArD9Pcu+Holb!WDCas3{au#h#fbs^lnPjQ<% zg<+C&livTVS_W+))VI z-6a;s0hIt*McLls)KtY8*nc%{*cIY?r-4)pTRK(6@@>KTD&{_mwipxMXO$yK@q^T?+bF~lD-Bp(5P*kkxH-=ud|Xr$^G##!wQ)j#!P58| zd9I8Wi3kVqkaZT1j3ieTPIIya$xwF7ZYh)0SKti_%a~UPCG+~b?0+O6EL#|8G?5iF zEc=+Ri%TuGM)uB+Qb=fp@sh_OEqv zn2x+fMYfc^Lb%&+7|v67vTf^t`NKO}f(UoQAbzpNk>&F*vV#c97b#F@n%mh~*;gAn&o_i#%YN9jbr1!H zXEIS(8{$|S%BXcNQ$5YdEj^8u9SD99)8I7GS3OIu<9$Tpmxc)JI^)|Yb<))H98_kz znytM(OZo`6zBPMSK#N)Jq|J_YsiV}8yU(X_5hGyQK&tdl%XNn|YJ44&SCrVXuV^Uy zQL}&7M3#A!>5&$XTT;6?p)gVMw+rdzbvT)&X_~1#;A%oQZ}BWUB&u&VGc+dtn90vC zwVw^jGvGU7oGBVplZ=}Z=O{8_1NsZ2BPJ9I^?*SUTR_`49k83m{mbPSXmWdZ0_F^( z(34xFC$~tCYmpw;B0a7}dR+4WWA&32i_CuxZLx*{YUw%VIv#oX3d{m9I~6xLK5ikr zM&YgIV0GP~d%#TnvOja>hT=?bt|~XS^xci{G(hdmb}51x!X!>r^Ic0Rr!)euQRe~> zDQ$vXIow_-ConyMpjmBWNYoSc`uM|PNE4EljDUxyuu_KKBU4`-kF-Y2V=3Gs?N@(; z3ED=MrU_h|UD*AKOY7?$$4)T}OS9UYWvJ>x-gOB?+&qJ^^~#v&ESCQ+6`#+#hccBpYRZ<2>sI|j5B>eJyQweg?$RTtsBk_H zW%-5mXWgMCP^3?j*9bPmF@ldtE3|(%vIe=&7FGhK?+<@bW3@nhO1+$;mPkx&eSpy8 z3R%6-DxH+$P zAHUW9x6o?RtdWS5fnpy0#x@W^C%Ll43n;5m#l{Fip(#QfCaV^g|D7cigiC*N+BaGK z)Rgg5T@r*R4Z|R`1w^}IOgJ4Na;r%}ac-P<3@=Wer=+mf8N?D#V+^Hqm#?tTwYl;FTsVhR%n? z=G=<$Fs)Lg5;omuRd7WZrYe69QWXcO%7IknK&rwaRdJB2I6xs%tt?^UAcZ*18*!SN zIGtkbnD7q7=@g>J&dd!<0twXTiuw^L1$9H=ve1>MyIiigCAOMVe7-5<>ZDs02h07M zI*;?F;tlmH3#cavJomN5+lXfR5(eBq)mT{q9H{=QY1=> zkNsDxFiLc{|PY%HYWmg6)!k!h_>BI?l1cpATpR#!o#&F@?U z8nxE0ew$Va$}IjO*f;1X0+}3)_->Ay2{(FHi=)?whR)scTL0=_;W*o4WQLu3)T5@Z zt3KVi16Ln88uf{^=e>}9{|+^me*M)j0(T6ATw@Lml!T+fiW+|g<0ywl_XsvAVAa-2 zRXge6?m9RCW+jk9OkI`Hqrq5T3G9ZD*W=ZEpAb$_?(t?ON1}pwjqb}n_)md#AIsS? zmeabSp5ou*(@po!Pbt~|c?z<_DNCv#7^NEu=QbK0*o=zKU8_sjh#piuI0AU4RU7n5xekmGMjm+uu(yM27`9 zV!}MiX%F_TRIV+qsq0goiim4gS z*ElP9iJmrRg(+@2UZO*s_Y`5I@!2PF=8jAJm3yX z^|*6is(*jtG@zyDtR=W5$p5*ku<{1AV?3N1HZSYT_-YAmUrQ!Vgr#dB!1~3hTb#?* z{ucyMmZhB}VeERG{V)C}56@UKw{*pAk#3Fz&lZ091K00@pj)-N94aQlI+!R3G*Ho5 znW}hU@xum-Znv>+#0zkDlHD9+&g3XRn}H@ zv$a%R({e@S)onSOgztA3!YM=Z+sYzeEH`M+?7Wt#ttpTl^B` zzFmK2%}_f++0)oiw2nxbu-mzS zT1tn{w!9E6vrL3=rwHM68K0i10k3?aVUDYQ*0a>F)8ZlZ!*TX)*JdnB#9cI&cds16*T>rzHI5Ryj*h^di>T|P8WHyV4+31T%L z1&V`3mkbU)i^Un6fL@{IdSLw!GPERSWeNj_28cA6_Z10sc|}m0ZNXbz)h%8b%0lR3 ztO|YKx9U%*MOWM!YGIAeNGou_cq@N;y%tl5z4fMDP*>4Z87G81E}2YJm<_dB3ro`+ zIyX35sPVFxHS8j*2eDWwT%Kz74BJ@5KX}B<{t=~ zsubZCRxmbve!$0T=dpVc={b#RTsx&aKK6-y^xTHX^ zm{Ied0n*q`ysdP-2>IA@clO0?Tq zWGn1Y!cNd(st9-h9+Me8q}8gDR)5p7a|l7ubTDl}Kux?!orY=7dST$agX2PxhpbQ_ z5%yWVAuvqm}%d!d~-LhA9=Z63$+B}jYuKelFD{xq%mpxUkB1Ehz%}$kO zU#VQRW$tV{6+dQ&ez~A8$nyF%r@Nmi&q()RjRQzXnuQfpyLeWv8uEXS@cM2YqeJl_ zbO@CI<(mxOWay&C{}ZRUhd=%sj_rA@{Cd&-^}5gx%M|9 zz6lSp*>fFMWk}s~StW_m|cMY7|uy6Py=lUImf{oqAN44s+|l@9ySz zcelRN>_V;lf=IAlnI9;ghd@`v+1|qpyl#F&7>3K5X~na!frgr6mJ;3hw13wY=x!{~ zU42(LVthuR>WU^qyS7Mo^_`Q~oFMuCq)?P6g*uguHtJA(JJMAYFIo;BtZR^ag@ zuU9^&HU_3dAU-1$Hlx|IKKjnsaGslA$Z={EMIlDr9Cpvdus`MW*+li*KNlO?sHhr; zs!+cO^^0)z7t!i3;?-XytG`HBf6-a}MTX$b6;_<5759H_q=o`ZSPv_!( z8TL*71|t(H(?Mfmfy;B$gli+BwMm~?X_@8`;K+}?J=JOynT@^GE6f!nGrGoJ=aEj( zTiI1QvHZ``xMkYQLL1MhV)r7m%r@Q8hmsWFqlkq@{1x{5xHioq6B}ug453SZwjcI2 zza1M~$K!v#?o*i5V8C=mS0xNILi?~uR5MRkL%u;`;anD$Gv7xiJ~ix^yMYxqDQEV& zYswIbIk5=?Io!-lzfs0w7uRce0m;?ZkgNtD8#4$=f0nQIq z>_h`$`Ulp;LvENe3sY{(q{~|C1V`iioL~SS>N$Twzdjcm%oGuYgKN=Q>+)KSA-R|Zv2YEUD zqAEMr?dJpf3SO$EaL3Lh=vpUpq5GiK0CGmeD zBCw)O_dI|t`R>fgo4L-Av7lR@5h&WH|HGtX@3BWKGT z*|Ez*dR0W?d_UuVx)%?kHqFMw@)VMuYuRHVa%5$ipq)NNE|_7~wX#mg+UX|L5*Ag> z_2xlCZ5AJDmONZ3+}g3Ur6)1T)U|&~qGPId*Pv>Sl_+l`kP>FaOw)8y^+TZdT`qvF z!TGZ6)?Z4)UIWAY-Z#ez!`$F-H$-iqn01I8+t+kiurh2;QQ(nsc6Ed(_d^WR$+<;#EZb>TI# z#oX#xF`ek?U_Scimd$@m-EJ%Q8ri*Q9}h0If@dPa!(p!+tX`x}k>n@fN7`f+D_ z*4a1L%jGm>X>r9o7D5ht>qM997fLU$R&DN{o2l2}1da23`wm^~%Su}Mvhf%Jbaod4t?*<0LD z%4@uL?uH|H6XB1uZv%W=6?hx&&2BhyM0N{amEsfLbdFThXGd4D29Ri2byiM${GiVD zdxP(tmv4%_Kn#+Pe0lo(x$Y$;OFETZ+0lxRhO96%DyQF7+!TVCsD>ji&z2|4%X6z4 zyga{JSG>>33hN*cSXh65rd(J2Xo&c)oJ9nMTQ6iVHO7XR%Tk9f)ol=Kk)hK&3JUyE96lsJ!9TXZyvRA^q-B6=c(Ai{2=A}1SH2m6Rpze7 zrHF5MGUAqmphnBkQ#d9iC!c#e2+LsQGmt^MclQlK$AudjxTSyK`XlnioPBZc)2^3K znSQ$ean~QgkJ*j*_|<9rG>7*Oc6if*y#Ho|Z+G8#tlV{JyV`G`=4>R zw;NCxma9jZ0Ed5LR1{M#*rQx0F7(>50Di$V8Rj65H z6a@pS&mq)pwIE9mSw=jBLN+19GA|U;mJriK!nnTKar4CXh`!$J#uCh#1QS^WQv}A} z*UDLuqNc-(4~kHlp#)R1E4+q!Ya&#=Oe4%`OO&;Lfx3UvP1B3(U%V;Na>`!Q<0ceS z%PR+Uj+0HmN5W&u;#2TT8MF}gOF7y6-}D_Y*%%YKD?~Z;I^=4F4dbZEJOpXNM>;5e zD)q~ad7a3gr*jN2LkH)Jb76V(1Cy^7RdDt!PB2m#&6sAm@TmE4UQ#{qthvE(Q$NAH zB&+5n9nXJ@pOZ;JE!xO3r=fp=un=cMH|PE$?6xuyGCm?mcx@`K-vfHjdU_WPy^CY% z-Gwf~SY`4Z0$@}?O=&Q5sCDW@g~rNKh$fm_4`_5Z>DSMdw!z}56C7E6IRQ@KOkH2j zK5x(w9*{=}LkTbKAH;qG`uNSXeog%7cPE^RiKTy|J6DcFuI$sj+G*60axDhdDWltm z)3UKf(K2^~;Ms^^l6g<$W9P=tV;ZnK_(L)eDHzZi57xXEq0s|w|G@X(Ke*+C%pz9KEF-Jo4r57^%zf2d0j9|Id zDJFl_=bclip$&3o)f!wx7q*sZQk^u9g>CbgVI8_L)}izM4mZX+bZx9d=iMFdVXzKQ z>L4{)luHM~6WRu=6`~+VVVu7rbr!CLJT0!)V~XO+nmB!=2;OFa2-J@ks2}eU)ViGX zZ|CA4s{I_Y+pk*3`*@-9L+L0g;H?-;^R{ZS3G}8 z<>2JN^u)2P+(4$$=cf|zXE?lt?&I?6+%FXy3gLr%+~La_TJHIPj34Xf5yY) z9UWWs{eK(d|K_>jR}bK~`cwS!ppV~}==+`0^quX#KU!l1e_!$FiCjQOInUX1-f1{z z(aAE{&H1AQ*7uKL6OWdtr(4K2FoIqK7Vw(fsGJ5civ zh>sV}S2P2J!@$r(5D?14>-bwHHa>^?D$AiULo?8ti7fT24cFnwUoSL%wi-#%5jyEc zmDYRrnjNdBDWK~%!c#ZjqnVas7@M*OTS!}>7sW93iecPR45fw0w~RB6mcJb`4>;py z*IDw=QtoQ>obP1Md=9=0ZaaTFn)B7{^B+lFy6mOrj&YuBq7_i1`ZZu_^XxoYWkS6} zyVin$sIq$8RetK#NFtOnestSA>ewJ%y~G(EheU*Rq9GA!`-$nP(x+9U#L}H}E6ryp zBah-}ZgP(*d9<>w@C(C&v?dss>7WnG*$iQ^wsZ8Pgv3MF3hbvi@ zHN87@uSCQ|kS}+StVVw;asnt0G#dW8B}R^ejbor0GsI9+N|_Q9XmujkZx0>kN6Isj zWzi?}P~4bjS|f(y=9Ix;R=rbn2X@Rljk^wN7(-+SmBQcOXQ~2j-Obec;(wSa+K$QT zc6TWwr7vxkP2>Z92qOA|rCmznm8i19g1h9sDnQQGvfJ){%GG}lGRsfe`YF{BD~E=B zy>%Rr-Yh>3yW_CaXn#;Fjb@mR*U}SpCllND$hGn1(2E|^eo>GJ!P&9&=%6Ib{4~??Z9;$-_ z=LDG|0pn{08bDYdkQ>w6v<7CN+Qk}Q^Wo~PY3RASo=|^Uzsy~xmF`tRz5=ZpsiJ_aJLt}Kbg{`^Y!ljoyInoTVe=K}=MWLjS$RyGatSGi_O zGZ!SJ*AIU}0Y(DZhlBc$=wM3ga%q0(G}j0ftgUSJ#g<~=L-41MQz*MBV;yQ4>&VWM zh`o$7{8of-W$>;zq^1>uvlqZ}hVEOV zTDdA7%e%rIxkA4H^90+F!5C_uIDyxQaOiH|>#l!62&QI_gE?heDxQeM9>avAk=Gql zSs4+OtgH-AgVO+LY>(rr$}xP{^axg#UPi7-Ey`&eN~0>g{$@3mVLiP&U^aCZmf3)c zg0BN;NPQixC>`1uVn2pZ(;a0Lp^YJ2H3pf^6O19897A~Q7{U{bA@pMiht7a>`Y>!T z{Sbd6K+a(^2z*#$9Gm`44J2pAjm=1)X;EBQh3InM<=k?4YW16^wS4m@b3NwX5wf1U zZlkw_exZIf)QaVz^C-%Dy+LaUZYVC0Yt5P*)qinc#+0?mD#}r@z20D8Ie@8W(0(i{ zr@o1ydQR1>UEwWG3$O!DLKf(~&f-aEw-kR3JscHZak_dQG&`iPIgeO_MFX0B9 zEP1Uvs*&ll&>Pe3!P&LwY-(>3Rq!dI-U7;&+FPnNtW?9EdE#XLUEgY$6Yq#I=(m4` z73WL%0mUU4DoIG=;;l}DNdHxIif`pe7U+~>RAm)5mDk+3j;U+cF%4PAl*E(r??5!HY#FcJ?)qlK>~C2!WmZ-D`T>X3ggd?%D;9qVgib!H zU$TVP3q;?qqpPd%YFV%m0|68$8Aisqjt$)<2@ltb8bK~^8oWa0sEn-rQ1E`JDBuyqn_Xh|8x>GyZyF~Ob2S-#LA|nR!F<3l= z#ttvprzJ)R%NY7s*Ts?!Ai00K&gAzp#H9hg39qhW`KI~ouCBvXpI!6WMjVVs%p7}6kv zgv}}%U&w@2{HjR!0rh_YHB;n>l;{Wv-?hvnQCV*C_?IjVJD%Qp8Xyfk`UmqJR}l8F zseT;FNIdjVhe6~)on6fdS^4JEMs>ldz?#4}_dbr_$W%D{W@Vb+U@{KZ(^rF1hsxm4 zA`WwhOLS_(2y=4?Io3cX8qZ9qj_N@1?gAoaoes{sdQtv9ZvTJ$VbgrW@x-KMjG%-N z75 zzLnpi!_Zd>R+FqBsYvS!RA`sRgc06EW;|+g>1K1wTi^*QHjySRTt;tW2PW(262;V* z8)m8w_A51#9>agACPT@ny}XPj88vDcHCn}}Zh}#jjg7BcjM{C<+z^|DNt{@Nno*Of zkUf5q#n3PF4s!sciJ1mw?)k@TEoqxA#`L2PQ>JN z>UWx8LJ*j|M{w7o`aAEIw(hn*uh|tZc0=Esar1VO5wd^IZv1;o4WxI{41%rWr9nauu?}| zndVvbJ9r^vGJgq4bo?KB9MWv5$63eaK=jwKH>F3T`Wl%}Dn1ro9GZQLXDb@&o`%R* ztm&W#o7?kYP`~pFalHc^vdnV~ekm1mTklc7N(emJ=C_hl=#)Z)`M5-17AwTkFN~1B zf{A~z$>G%C8TaYO082*RmzIax=Bc#BQ_kE^7ML+IPm^*J44Ep1R0vBan96sTNdm5^ z`T==L#;}Ahn}E3IiH1;tdcWWiIh(j!)VAHLFKDlNu!$&9pj zQsY{H*7On~Lfu)a^>8ll=Br>)^H*hnWNd#g4#GyoibwT=ysJMXJ-XTVh)3jYL7#<| z5ZS2*<@6G*ttvFdEod~Ar>6GQw0Wv!%}U=)QehT^qL$;&@Gg6Py5{qpr*8@8+L*4& z)-h)(WYPWb3EM1DM^DK?W<-ap-SOU&w(6;(CS#aL0$545_FC2_qh2zLM4Au z*{l{B5Fy(;v|kV;SvBy`XrA~nYnY>MCHr+#(VMUf+{X?!jK&UKQ9^>@AddtN2SNIcko!o z-2~aY%HEMxGzh6o2UMm5Ri@Qn0G+yYRcxB3I{ZahR%0=)!U~R;=+Q0cAlB9kjqyZ$ zjVD)PEFCNN^4nNR%COKmy~Tf%G$+`?5cy*YGH(bfO{H-p_ChooHk=x+zdZt(X!%bp zBWq6HFH#QG+o|glQ0IdADy-*KwfpLqV>)Qzw!h!rXZV(CALHVV*_`|?B$v#MhPoMb z)PIzzaX#i6EhAoarAN&Esj`2nXsCaozO>ojKv$z? z6-1BX@i01O6{NZf#_S)r**`p%{li15=BGNRv9W)&7W>Cz_V-81=vej-js4?>{bL2? zBYox=lA&};jr~Jqe|~EuO_lv8NSgaYMgVP{dm5tazr|xlq$-iu_|(0e?ekzio2zg_ zw3pGb!d;f*b!GVCrK*2xl0Bnj&(@ag*|#FuiJ~-piK3u$ST+iTAWj^|)K%dJNuYMs z79jMkzKe2w{OuR|al`KMqsZ>@Neg{-S#@Q~+B~{llk!CEJ zC`%ec=48km4C%m-dg(r`;g}m_yE0_t88T8(_=X`P&ydk1L%P)r>5gSc*Dz$a#gN_A zM$|DgdOeg}smxerEp}8RYGisK*)j5=1)<81NMC}+h}vx%QFHYZqJ)NG@dx>boX-w% zFd4qECZLm=*Xe(*VdgDiFv5LI%VmuRbsh6!Mc0IUU4Ef(#mioPBwJjnSLF32ONQ;N z{tNGUjkN)As=vO(&Hko+YLS|Ja^O4T@Re)#V{DSkuVEyix~DSg;{A~UmN+fP5fp#r zeDA*z9GHwCeMDi}`E4E7S=OwZ1$3a~wt&<cX?tBm;;no*kG z#I4?R+P&!oA0~Qmk zS53f1B&SN}WFnHEV+pw*KRT{3AGN46lj%#r)cI&^^v`_Sk#~3!8=i+L^LNsQsVyBh z>iML+*6DwQo6ZBF;^s#sTDT0YQm8Q99t!nfm%8lFe>Brd0<8$om-A0z+D_^TYfc-U za8O^)1A6A4#$3DHijEg6?p;MAm<+RqyvV1U{G6E~Yt;YL7 zu(pUisRslT2@VRwgOcf-_YT>%||0eY-ey1#VuzE1b! zEfaqfDA6>L#Xto5CZ}5Vb9}0DazveB*I-F357ivAGV&~%Mwt-6`e2I)4{BxOixJ(9 zpv_#PZz4|6dg4sJI+K z;NsPZh=b6>q&vbFYB{J6xtRp8W?|?HCqN8l>=Fxt6Q;!*!BD3P6MPW%b*%iXBwS8b z-^T)VS*?LFd{Bq3PYyNM{P5@t%&U@1=kVt_ECib?c(eUSG$R-$lpE%&!9EQaTTp-e z_)Ua9x%X9JT@>d6q<>qmu8uBK6iwnsDZvsT=637wA`ZH%HQl7qxw=%iC%Df|W$J7T z5c1VQ%~+Y*DTD)W3kHbG+!ipPU4A+bqwTW_0*V^-8L1^VX^EkfeDltA&4QJlFMhSKFWPTV3l3gdyyxU)GW6^ z3#Ld!0-=U6MMxlwfCU;AKW30hSLmDrDY8KI(S3uspIMGTd`46>*Q@WknXz-dF(OZ7N#Z?1E(vAsjV@s4wKu+R!YVr-p0ybJJ)@WJImye{Vc`t` zElRshpRUBmFP`fj%Xf*~9SL>a3+mH^8s|FHc9)mU{56$d)Ap~l1=kN5od1%%yI}sD zU;~E+Ijj^X=k;~{^tC>=LGypn*lTd~6maBM$T43u2$?bo1SEy)w%~h3+Q}0jFpHXy z<|&xC%3`Y;&fv6cTW}^`>NA-;qrc3c5c*||07y_25Z?``Y;CR&c;6At4}2>O4=n&4-_b0-b% zQ(+V%vqx_18Qd;zg!m@f?K#0#dD%I_g(cSGj^bQo<*spmw{`y}qAkeH{Z8&FkkkmP z7f~q_{dm9g3{W5`(a}eWxjPB&Z5vSrEtc`Jpn_*@rdI5Q z45C9?Eh#z(V-+)7v8WieQ|ilRRL}a^hzKZJ2SlWWH17AiOt)e!hP^A?+GI{M3t&Na z!He-jOpL!>;l)gILHN*o#khU6SVkA9WC3z8cpTQC0GPritWbaYkm=X5vJUxuP{HJd z19zX){sK%4x%go5=T3+~*4@o^9{$!{!DblLUJ=)Zu(e z%6}V4%1xG_BF9263Ky$%#N0=K#%Br|UlFk*RxtNi!Q5lb42j2?A+gU4i7hjPyfn@X ziC2TU6XLu9b5GX-bB_V$o{Xz1CSx#n59FR1kb78mE**cT>cMUj>j4*o- zQ^zz`yiLMx=Flp8kYmFP5fHtmE>S+NOEfO^s>yQ-LM z>K)n5lZpJ58>u@4kU(K+HE%F^^5xc1@p0Dc73qJ4crms}(H9^FUcolcH19`lIW?`M z6h{As9#c7NV=9MZOy$r=|Au2g<**H?9Qx?r@L|xDPYNeA^?OzF^c7M6&YYjb~1s(ljEK)@{feBA&Vmb!rZ0^z%g+7cD7 z0*G%+D|_vV=Zy!>;w+5O#*h<@(GHs!ZCH&#UrL076-(P)O6~qq4%jCjSIVv!Erjnf zGElVsnl}Nom^$z|9?I5%#i4k%4%%!TOtN)wk-zrN@dc~cx@}^}+H9SjjEO;`F|2=| zyK^4_{_koCNZ*M(WB}%b8Nrw*6iqE&lv`Gi&R^o9W*1JeV4z5F<9@5t zRHeK53S`xV@S~xo@N3B4{j!2*GH8+($MTyG0`=z1`ZR^!yLL&p+OPbHe(iD`K~W5? zO!6C5p7K zNe&5WGhMfd1~Z$^2KY>C&0<@x|MJz5(vHcnbo|wSuHV&n$t!T^u{&W)6Llu@dQ|MG zUJ-9GXg>CMqz3s@MOn_E16_Xzk*=yxJV4p4eB!QQPlbG3_Q<}Dhd%~-F4gJ&d3Nh> zwOg!pVRf48?0|vKQyC|Qe*SbOVz!O>kI1`K2l?McuB$j5RnLmKPaATEhU5Sxx?6`A zys*;h>RLqIpy%vFF=YI`X?_F-%B+4R?TMNmpRHAma;){W@=`mp7O;O@npU;VPOHrh zDLq~w?KY#;ZE_V-Hg16do|~{U03+45?bx zV&EzLYKABHEpi%^6MWh_!Kcj$K2uP&f0q~W>z%j70xQJRa@OW>*o?ZMspnqtAyT#Sv{vi^)6l!<| z>Sh-nZePf{JI3|Nf$P&XT%R1cKCnR-&$Tkq3v4teqEGG-eYypKPrJo`$ze?76Ly#D zr~!j4NsBB=LzaKUEHqoJ5<~%(|L2LxdUI55oPIIPwYSL=*jIJ65( ze__>J_;@0xmfb^D4+gt+<@(E*KAd?l->iP`FR^Sxc5K;(Ov^UJRuV2Ld!D>l{_25A z23UDL9B*%NaGhkJZH%=quLl)vy`wIeE{xy@VY`P5rVD@Vbf>)Z7>H8e2k)7P@BQ=V z1jwj4%RQEbC)Ar^S^FKvzo0)pYoFDdHETaW`!_O|pi>;k{UCSCo1cG``FoBjkC173 zgcxFms$LgVomvRuho8M+e$?(J)oNXtm$3KvUYL3^qklsETc z>d*I7*)u_vJ&QsWxIghRKVB~Zw+nuYz~F>X@e0{y_j zr#kqKAAE;{@A$!|I{4HEpO<~2<>LOy|vF7)_>)`N-SR4C7& z3`8}BwTJ=|)ihTl%BoZY7EnOhmTLA;)oIPbOXSVVe_3YXu%CsiCT0Q1=G$4cmRm5g zjBEv_;}w{R=;+uAWQp?BR$z)1h*A!B2NW1RU56=V4aRe>!&KK{S~7+=)pgjhb*T5| z!wr9BueBa~&3fz|vmSfx_1N?4vDaFUH#)x{k2GR`Wm4>~I2(4VYqIBOROhs}YEF9- zb1FPKF{f_zoc451dz@3895+CN=;52su)J_OImi0Bf06<{*6QpTF|&80-X6@nvQ2Y3 z}zN7Uv87Knh@X0zjM^g<9<{}u^r@U0EiiQ9Va9|*R!HdWs#o@{>Q+yoy9qEpb&}11 zenh)uiZs++`S+6j^KcMcI6s`mk)1xKrf&l@I%qXIXc`?fjSiYd2aEExZ*+i0t3iJ` zUCRFtRs(rJi9Jl-^t=h9ujiA((*sL&w7`-B4>Ou-8XKx~`J(oQ`fO~dSkG5@&c1wt zvG3t}4qIY%dcR__C^&yPJtGGKBiNqm+=sh82lz|;rRaxs`N^@^679?^uR<@ zvlJcb*2nSejIh1hlH=U)c6=DHQk6*qKTvau9_b3~1q+q~s*@G7%;kkF!g^aUg zR$-7cf5{|mUnMPiHDZ}b~y zsV&&BPN3`1!#UPLniqD;3#e0nvd26C_wnItdB}iy- zR;e)?gjf4XIijFh2C6$i{VuYxY93wNit}bPIYvW7G(Q>&XdO)lQO`P>96QB&%-s4i z9cs;rTtyC^Ll}Lk@QBUV!|i|iW^qL0#Q~QSlhQ8G4_q9PE{<3i2fcQ$VHsOp9FZ=L zNEb(>!LbFR^9mk8p*bFXS8R#6TV7Df!9#<+3snE>63#5$r)TDE!3_E#hu2GDQSJAM z)(+P@>=28npsR{m@&al3DyG7WL}o>@YwXXxNuok2FlEDd9Q33rch`RykxMDE4IePx zs`Y_2DNquyBrz;@Ys~mg^g#{&WXW#Bl1YmVlV;+QW48FDy~QVf;*!=DKj(RG*7II5 z!Fz?N+>x?fB5XHgtx4{WB)uLNBTsj^v`zT~3imvwdZ6B9q+)q_)up`ZHu9?Led3yx zwF6-TO-Y5&pB*(()F^+g&JQIt?Gd4^_*lss!drXLJW^_J->D8UxE)E}sI}tNDo=L@ zNqun8z{-v>$>=~CW0HlQ)S+UMsip8hzG}5+p5n2mc)LDWrsQ@FpeSIxLM48HHP3Pg z9yFR=#9H^yFkwLb{?riEn%?Giy8f0M$gDs{k{`ABSVJ9`<2`@C6|lG*5pC6HFkV`4 z#ZEAftTUuw<$mtrZA&z=Fz{0!=>F9wQcsKo0%;_<5-IT)$9ql@N3Q~2ZTZMYf8*QpcudIZvGSaaxBmEFls#r%_u9z$&ooXRzD9u9&nY90oi%6qjOH)8Pmes=o((!*91*D@^0qMvWkdD?UAZ{dTj zh#1izgPk*-KqD2L8Pi$ov0iy+1E_%lU7wKQN?!({Vna9|Hk7GsmbTAgdBw9hyHTC( zNAQs{ec68`y>QI=ZzW;Ms_Rw92URO}pj%YrZII~aA9tAt_=dUET;Jgfl!s)Q_eUPm zWr9WG7Ka24heQp7#FPAyP4EY5PzJYE*_!;(1Ap|&?Ao#m{^+*(qgCr0(v?XpZAZtW z%^&gP^HNq10odw;kuEAj;0uVO2PCfEI(J^A6mDol|tg`yS;G%hdZC_JS71O)^?hC9;l74(J zxXdv7G)YUT(UdceWDzX{(w zz@n&_0vW-1}EAES~;p<>Rp8F3YR># z{tY_S(MX92nrtaJIDkHBbvOe(8o)U5Sg6}mVF!HbhL1HHJ(&UzTbzml7p9`WGD^ z##aLUZQTDts~g7W2PaF*Q>Ek^9Z9(nxeFjG%CA;R>1n+d! z6V8sl+QnmcODo!e^V9_mZxv(3r8|GW6>F}sJ6v_@dw!LV9A@QXMR+VLD2rYxLUx3U zqWYfS;YD%?5^{H2J!SMDOZNSBFnO(f0orucH-7Xp;YiUu?)^q+rQ+~i&VJ^;Z=L#s z-OF-4aM%C*#?b1i@5cyXW==n%X;?+@l~2OTHJpV`Fl;0 z#`QgjEjv?g5ovWEm`IlO8A7$Qqd7QlACLMQi`Co~eX2&W|L_0)_kWtdBmB8oRZ|}c zwSa7rq-iJX_VWHEHW|E1tRjS>N~UXMO+w@&9?we|+Zu`2)}W!TTYuXkNYwC@5kLy_bU1CC)}&uYurz|pK`BtH@nxlpLVZz zx455~`0r=k&$(OO&%0l6Z*afp-YEaQ$-UX_dJF!%)xFKV-QDJHcfaI*+1=ru|6gAb z{@17fiu+af^j~xDaKG+;18;tR)7|O%yMD|4w)-8q;+^hy-S4?~xx3smpZRY09`|1N zKKFk20r~Iu-QDgF+y~tsx(~SzyFYS&?Cx_i^_L_vgIoFWe{H zr`)IAXWVDqz3wmFU%CI`?sI?bKIi_1|9xKm`&;(~_eJ+5_jm5g?iJyG-@E(WKe(^B ze{>JXr+;$)?Eb}l)g`Y8zvl4&|LMNwzV04$-;n>l=^k<`;VZ(Ig)a}U50A(@xINrC z!SB2NkwKZCpPA_pi8WdLeuc%gsGy*e~V7^M*aVJlB_2>XbcH z?!;w2&icxVsc%W1Q9C}L|P(}HY&uycL<(d8g%+6 zEddRRS%(ilXyW!GfoS5LVkdH96ZV0HMfnBC!mw|lRlHmu{X(37=rcP=FYC*d!NGYv zKIijt249W){XSONV?hP&ccv;R%{gL-4W~3~ktW2fmr?PAp+Y7xrmP`NM$+_kO8bfd z(T7(slNb6M`*op1+e^0GOU{IMkw0?$v=^S!wa17Vp&S7HfB|8}kQ9cIklL zk1M2qf#MiuYSFKQ3uEdl>P&qQc1b-5z=45KyG`WjDW-aVi9WK4z7}GNz*o@q%C&EMUr;%n(R2+<>2+uW2rj8VI1nn=8u=z8+E^b>p`Mnes(E%*O1I zgC0G+kRG{zsFql}Sn=vGWPT{=kz;5*j$~T-V_KK|G}d}1FSMdgOA}`4${VuSy(CNS z$fSsqee+5k%Ea1R<-y1c)t+F;%e89D_lqjNT3*wdgB-ezD- z!U@?rSqKl-e-#vOb8rYQ3Vk+c4TLdKvKCPuP)|^Q;1^BaESh}G`aP}C(nGJavbXmE zlxNC45f}&IFQ24CMmm6-h9bpTu@6<}+q#78xX==!LK)2E2In1#%R0j1Yo zeD|Aer{CIkl-!Y$r}2=mAWl>=M=H{SI9|A*=eqfD)8z8MKd`M50QM|vDEkj~r<}=~ zvU6@CQ*D9M+?KfPzn@5({g^?R*tqll%R`udShK}(<(26Yhb`v{zO9q7)B2uupUn?%%toS?2%uK zn$WYNJaq@#OCLKD3&0^UvQu~ExQyK@<|z2@Mgrj*CC$(x zI?2a$(M{+C$L*pb0v#*o`!D14$|hL!S3;r>%4re+O%Kro-&@4lw!a_r@lzjj>LWwv zST*$>51_!Q|I;_P`Yo>$=|A7%fCwCa5P1&hkOMN$0Vq+^a6o1p&@m2(JO}vFAd`w6 z5X!nO{b(({ZgRS;CX~!o|C{7_L_f_ zzA=mU#T{|~e`=XQGTZ2!U`|OGS$e|FJ2u`P&Y?7tlM|4B!pJrUlL@A!%-dw`OWX3*k!{Rg~@HV!QsB4SNSq2(=K z59*}&4NNYYuU80)#vAaF7V|mf_BllkOY5(nRn8S>_W#i?;wpp{bRhrV`1qhM7pv(l zc4D~CRa3Ub1(oa?FDa+aa!-PPpqz%n#H~23f9EM8F_D^R8C?v#rW; z=(t=_TK+0b(iTh3AaeX>K@CVsATBzx4-i;E8`?yMX}NJU+_+|PDTq^lty6_)3NzL# zH!@egYdhA!s~w`h9I)zT(nzNXif1%@Uz15W7M#wev9vICH{TV=j&>&Y@2|2HHv&2q z`W-~(_|9b$c>%|aRdtLH5iK26x^f@b&bJ!a&V$WeAp-Gp2DYOrf?jav_<}o;yE6_Q z@0=2#$$`>m$?fDkp*VUfCie}lOx0M5=1u1^QDphmRG=lm;xq7%-I~SvzwS3pyUou ziHOm|5ixwUi0Ckgb(0Dq8Hb-@`LywzVA{(No-2FxyTfyXfkym)0e-sEv_12PIm)%quTS@D!i#2BJ@BbFM({iI;C6YR z_5`z_?~|NEBDh6B)D?~qwK^AtsEbLlRSj0jO#dVwHS|~?-fPMTBm@2Bj-nnpIQ>fWrOdS>i`ukq?v#;0& zqH3NKOf^W4p1*}v&j|+Dn76y4jt`yd3IrfdZFf(S_K{P{4_orIr3y zu=Nofum2B!+yyr;HdT)^=m;hB0xYop{rr9Bs^51vzyCddkNG=S2z89C`TfgO3Dz%! zb5IxlPCv1>ZPEXd>IP?o@!8?Q{ulKVAEOOa3i}Y_{iyh#VgCz_GQ;$ERbTuf#RY%c zZe!N2@>h@B`Mhd7^=(dZxq{--6JGx}a{ZikGy<-F?*pP#pfLS=BY-~X86vKF2&M(P zRQ>Cp$EMbYl<5pJ+u4|H*j0Wf5HB#Hc+ZMEqzu+=HnGUR!@=z%Ukbc1(Uh@q8(Gsv zh&CpY?xOKVm^2%qhIwi(sePr1ja&tNRh9bnTM5krD)mh%D>_{do#P8uUs*PmrY(VrJHHv7H>S74JeT0FVy^=b0&olRa%?&B_jtHaGb2)Q# z6^HQHk@wpp?_a`j>t^Kr_Q?B_Bkx~-`1aFW3y7QRe`O1r$C&7e**w|1azc>|sIw&+QPZpFZIJC-;DSJD(pb1_wy}qPy6p{w&}5) zE?$=Q-^)ur6~HJALj}<@N;#o_`+g1mz9V1U!)`NibGMrPL@~ZUSgZzH^t?Wtf^a>{ zz0ZKC()y=2!BRuBp<3EumlBo#j@U*yZD)O$9H+5DWRF5|jV+<#$}z-Q?a-8T9d!_@ zpQOJ2?*iX`r;Lifb*!r`I-40DKK;|K9294AEhD&>n%~OGbs7)|UlJ96d_`@iF4-x& zjoBP2-Q1EnR%w;MNCPXvLQ8Om7Kz>Xs*g)xzFEKvcG-bwv;aODh=K`x+ks3xLPrM> ze0${MKMW8&HNcT+2RdE5{pSQb<=sGZPk<}&k+b|LDrXrN|H=Eu5IMR+XmoXpauXx= z1~xgWxl>R#ig!4~l}xLDb8A|@6qUEQ2Hh|VuRP<7@SU!DJP_+1|7Ms95c0!(o2Y#J z-txvb)8c+G*Ku78Et^F~7b#R>n3K&T8ewh%?tTo}1;RP@EZi~B)LLxg17z&cGWp9e zdhqOvem*bvIEk>?FuxhHn~!{cIRK#EbLG>!fr_bgxm>?}Hk}TC-rbf1Z_My1e9+tg zc}+sRa|Sez7ntQpK_$?2+ESe6vf*Gvld;$Taz!w~*k%;sUAW;UvvTUJM^*-&g?ysg z7oK97p~&37wALEh1Y^x*9#A=UfD}qOAG~M0K3#i#z8iXQ{iPcs^4YWH{e3q?D1#DR zF7H2O?+?oRkJ|fxJzgE3LyqiCZc}68yKBP4cb69&lP7>;1vNeT@8YlJaenKojCjXyYlC)lW7B#wyYh^{w1LQ)A& z`rqH_+9vSd@%zXP+*W?u3(-m8zS~~6uG$V(pL*^I#wzWH+2C)n!OvTR{`ZG(*|+$q zi54v~S1}s&>9QE@A+w7HH*}{nIj4~6TX1rb>3MgEn)lF%?rgDy*E5>`R$|T&I{%xz zZtG$dsn}e9^YT6~$1`Zc>a?d!Wj^glY>eQvJ7p2wpneK1Yx^5xMdsJ}mNWB?u}<@A zO+VB(H@3dN-c_+Bw`FDGbe2MHWW=xEGa~N72bBxzy}SAGwNC8nD`T(_~VAMz`q+M9C)C7Ec_*F)?NVh`QP_ z9tvja2i;Qb4gn^$|Eso(*1ra4-|f1q&$cKO3vEE$U!lJ9YxE%%mjcGGzDfC`KG(bt z#k)i!k>BD~MD|VG(WqjyHU#}&9#73Lwbisrlk@itZif%7s|B}0hECKWG!Y@KP0)3 z_=)kN;``->%&@h8yK5YxI6>a#8es5)_z}xaw3b zGErA^YHPW;E$+YFi=TEQA~dvR(~eKn48=%)@leu#+cDi~G~Sl9nP>-7{Z^--t+=u8 zOW{H32Znodhe5LQBxH@*&B{SN!d@E1=!d|{Y&vkfAw(VkkXb^UWV%7=jx01*3s|li zu7wH#EH$9j1GGYtXok>EVl9S1i^sP5>wtz2w$b2+YY)i>i>;U2Y3$a;#D^7!j0%x| zvTmfT8yV}y#=6mQSl6o|ERM07b&t7;_GdDqv2OeG1FJrdSvLafD$aQ0K2p}@4%};t z=#@eRbi`TcPjEuC77x5-Y~Xxz%V7$KX7On^j3-q)bKqB2o_t9;#~Uogdq z_k1<9U^te$=>LLm*ly+%n>&C01b6=Ycmun2eEd#L`FT6Z@pG+i8{M1Ve%AKm<~K8s z+0Q?-`Y3$MSpL4gIW(GV{%L=@Uop3L|8;)1x4A|OH;-F*?doIaPn~GDjjULIVw-Kg zne>0MH9C?7mp|)xSHH$TJ?_7HOuC=o+y9rne}R+ayvl>|dh60%-PJu)GdsIGni)ye zrI9tVceN{dEv+SiwWwdeyi%eocFxv z`kW2)={qL0`!`N#{@?Crqf>oXV}iynZ>Yr@{?ax+^7nr^`Fq>6$=_dJEB$5U`J-^< zdKU1YACCv$Rtxy~d!kl1zjf2~#v*`UUuO?Lr~)r%SRPJp3!1B;BKfX=4g*JC4Z!L7 z>Mb+sDgU*rg@DIc zpdTyxQRv6Ke&qU*+6;0&@5xNO=xmB=X_+7O&3Cs*d+^V*2@5`de*gbvo5WAD$)~s~ z-_mB|ycQ2$z4a0QtZ@^~^M>n$+UMaX!VPz2ZJ8CSy-2NQ)8|DVP`ns#juyeGqFaN< zOR6Gpw=lNw&8=YfZ&1Amo|3aZ|!fl7QIemS1i`ZyGeOOBW?m5x-RZ%{EGVDP}Nm5dv%IWF>Ytz)n>X^=!To#AGq?8+c~JtKAHr_W&b+)(#pl7bzmAD zdBG9Jo`y%_lf@;g`|n8@$5~8)>12?iT>gZpBS%NQV(RjLD9uKf6hok6(D@t6Ee;se zmxzM&VthVqF0sCvBX49k_;#y?L0k~6t6?BSkr{2`QMU>iRZB386Rb%Z0HTF~cTF?xmIX?0=UJQPxTq=-dfeBkc#lGX5m(K4n?L21Dq zhu(Fuyn3&@V@Oc!&%vjKsGb3zRPB zL|!IS=v`oV3}f zDeWwOG_@6Iu{u?4{D%55X6N(p9rs_?8Fe9_4$$+m= zgNvGx?|;oH2Nw@wK5{uw2miEnNc*#=HXP+|qqP4`jp)hLX@C72NvjiwCr4k{z2;xa z|0*dgH~dbG3kXaCueNWswn?ae8>wx)&A}~y(gejD9YFOCzgSw!mRqk2lRD&}!$ZXs zD0RwlEuEMWyg@XLf1>AXH@|W4PqrLc=;*(rjQNVzZx$fiYD4Dzk6ShoAw3IvP$Rnn zgVEXc|7wJX_6z0^0*I}9{~1vsCgdItM~3b-gtwV;9Q%3$ooWY{iBub~?9BgDQ<@fk zUj2VGEM@zb?x|nuWez2W)|*w7Gpofp_2A{3dhqg=7L+h|Riz0|-8ZxpxaUs%@{d}- z>}}7u7c14JSzVR?Wit4OEz13IcZSx_MeCP&t)X7fw(9T?YMtUy$H*3oivDx}%(zy= zzh7%Ee=plQgEn)XY@tZ*R~w_BEi1r(K%3|son5t=x(hFY?SaF?mx8y*M8~b^d1=dH zuF}1}#yju|BIeQ%OGyOS2Xy5_@&iE9)m0z=fUCai7oG3)V*Y5X-L#?!TC)$y6p(Q$b9?N7X=c8EnuFV5 z9%)o}a7xr&fLG7&b9eajG+?Gz2xy=cUl>ab1zB+;+pdimms<@>u7Gk4UF!;Ai|chgj_YaKj6Z4bax zACCrK-?Cv`IY~X6nl`Wdx^1X`AssxAF=jc_c_M+V&g*bCSGuw=67s+>gaEOFY=T89k$u2*mWB5VwCx8u#9q5yMy;{f;`H@Lm_ z$lO+I!nbZ`A(~Wgzd+sZmMylrElqB=u!QN_KhxJbP*clw=5a>~@POh_hy7cky9`=2luMnz-s|a1l@z0>_=AUupfUsJ`PuYPx*bC-?hMWrqQrQ)E`>@TK@Bq z<($t@Ytuwbo}KE>nDPg@S3#reU_&s2rY&#T0-Tm-% zT7YH~1JXU(N z*JnQsnf(;|>?c_Ak^Q8>dzSq))UuYC>m%<%2roh(;yqA+xO1*4`G2Tij{qy zJ#$-n7G_$V5_wrFuvBmve#rT~W3v~dyeZk#9AZJ#Z23QbKk2Bf<=;S)_^)JalK%-! z9r@2i>Xq0d-#?o0C;F?q)tj6d(63@=Ucvp7AD3sL(9hr|b1#6C{I6tiW0R_7S8kX{ z-r|$K5Dt!cO~dmnY9aE&QEv@wjOF^nk!|j9_~Gz2ckqW7QYY1O4CesU(K^Jth}Oms zeLT18QSupo0cHv^+&hE~Wpxl1K0ZT}7B<3XoD%P{MhB_|3R!+A0CX4!c?#A+UeEtg(;M7V zl)H$3A#kYJRloQAI@Uc)$9A#u?3T$$?6>r9=$(UY--%!Hau?}t79==pcf|eIL2zgGkkCh2NHH(SMhUiCqK2Mwz>6HR(9~Ik z=;3L&`N#0Yeuf0jAv5cCoBXOz1`#cPGC|yL0cw%EEjoR-te;ip+f5^Hd<&;}w>R?g ztH!7A#w=@m`fl2Lrr=cO@r*f-dzGH+xNJyWr8<_u~{ zELBMiIOlfmAbmCS7cfD)s=*jBoB8V;ci=8?-@)Mqd&qJgo{Th~VqjGw0ot!AQ)Pf6n;$5hsM><)Qb;h!4Avw>;KG;=U zh%j@M_o)Tw!CC6EUWgrYp<$pzLMuGyX2A$xpMKNx>FyeT`G>DjkoZ|G!Mo^H1yufEM634XI`=Z|&`agxJv7nG z@*uuLKHtZKn}q&q`IG1I2|N*jyt5?YYlA!G+blwX0RYdJ-dxCGCD%^5=6stic3mAl z$u{cvi6}m)4QHiIf{E zJd03xIWIxoGxeUopn5m5)TA4P0hz6S z^@m;c#XF2`9-%(8A}?6P`W=7CiY!j?zI^ipmRy zvFb^X3R5QPj)0OBPwdXDxe}B;hUh2qf8Ao|BGE0%c#*kJJL3)NqJV?RKjl#3zM8Ey zqZn#YPp|K$X0dy9nd#Q@aYbfF3*ahZa}elX8kZH!=?4NKcazb7=JtA?G>a4%=PLJ2o68Z6+=Y9hZGj(ifQ{}wH>`(SwP0SX&5_%zecc6y}&G0 zX{+s5T6WPX%WTSg6#4%Kn%w!ngC;LH4NYDEnjAJX>6jQy3MBRIBxU`y17%%M z%t3s*09AFC$wN>S>b8%>Nc{n*Hyf+?mr* zF68QB>hzSGs=(H*p%5vobumX7D0YTkd8HZo7hG|gr1IQW9MC3GiE1zhEgGn#!SuC% z)%_%mra;90R(*)BuMe@$mxtItSsmh%iRuu~DlRFykCe;XR)@F*)gdk^mhUN^wWWGU zw^gm7@2iLOx2X=%ZB>Wp`sxtfZK^}4Q?{-S!8#Edu^(kJ#QJqv*&kXlKmtPcbQe}k zsRXJ}px{D5svj%*QRv6KexP37>vqF`THGgEC$q9r)v(j8^edX#+2}VtBmMSj`W<-s zB|aqq#-bL^mtsyRz*ld3+U-u#u3FIvv$-svB&@4y5BV#8w4Tj#^I;XI|NXy#dZJlG>pxsI6qL6tm@VHKRTiKi1+d607 zR=aB6R&-Wwo->3`*gJFTcI<)~u3@?eZ+Ml~*VSka)Fw1bE*-sQ4eGZ1s6FpTjoW_I z-gagn!;B%+hZSnCpSt}sqtiTpGur%2E7V^1cK}E60q`E(bj;$mT)X~hYPR>$2UkDS zr@Q+7b4X-2*<-WCwAO6jIV8XuZ96lfNqCp~`@Y|QQEKomb;5(} z^aAy#dJZP-q9J;;A|H#E7Og^xy*E>Su-y6HnOfK6+9ME z@~nnZcFnk31DAU!fME;G9FE%|uFO{hVfYc-U0eeI>h9~>i6*eVpx4Dq;cVTO!@<6Yl|$vFQ}qp`sYja z2cic?GZt4b`YwHcqn+wwFQ9c`?14zK{GE}Ce$`JrAyWnmFnbEYOg;u+`Y^}55~kRD zMF(b~YrVT#fOkrW^i%W;%ESK1j}tK0@X9aBqA#lAGB2~G!A?UGQ=}NfDM{q!MNUCl zV;8qKICkhxgB33a3ORToy_VI+5ryh9)WPDy>RlfDgX9)}8@ch8>Txh|7T%#B4*K_n zS+RsROT~pcZyUbO@Brp`p0r2cCV838;!E|Hm&nHy7z{sfmf!ywOb)6Be}gu8q5OGh z4W`RLZ@peW4(i7Ny%qk8cl``*-H$tm)xZ5h0Mg;SXJ#nl4a<51Z0+y(0o+i?4Hm$_ z26NgV*Vhk!^kS-i#rhj|{^vd}H{(uC_?LO!V>Qe609#ox&m)G7%ph!p7k{FOB}uCj zh$ZP@X7YDng@9V}YoEohpAC`WFr6RA9^g(jyQ^%2e8sXVJ`@%+P%LJevunD=R7>S%xksQ>1_)Kc`XUP-X)J zp#)~6L3yCu%YVxrv3Ev!?Tq&!D9X=}WrW+Fgf^kJya?TzFUBI`46gvVB66qzW|wNf zA7@3R&v7~7Z5ZUQVv_Jo142EsCDLh@jB19FSPQ^Q&?LU?;HPI9=CsR)Iqho0Pw%oY zr`a}t{B*j{!SFy~zEeH;+ch%L&|oI2AFHo1QT*cprPApbB_4=<1OU0}Nnz8<8nv@~ zgHiQ(ux^BvANELfIm{==nr-*%p9<8o{5zj_+=cl!=$k~9#{BIKw9bIP^`PD=TeAAG zw>#aGdMh?1{T7Tj%hk`vv!Qx7Y6<_Y?Dw~Sgu@V$@k=$NoKIZQC(53!etV~GT795y z+9==9f>$;g-t!W@M|ev0-ro+CtLRPSDw$RmF~xsI5qLKpfn6Sfz2*pH5RM$>+FX?e zk>od^Cyd+DSXXh5x-CuYu*#2hRz6B8+(aP}k7acWJ)LDO4hZdX5V;-~;66R&K9O>N zpMi3pPyYb9k8}tT8#B;J=NWe*eBVI!ghqE*?(GD3GUzP!D9zKM;j`w zKH8J5*iqx~vP|+%ey^(@{b3d>SYK4$^2h%Rvrq5)>EOu2Z6lLstGV%LR$eCawhKC- z8n(O217G_EJa)gydosG4Nd<;~hyI$pxIlj)DuSK$I55BB7*qPG?&E4xyK6OjCOegql)pAG%- zjD^t&-Wv!@Ue~BLRMcTjlrpFGw*vnXoX^!CpkR!Qd9cp+6WEn~n!ku(o7Vb^L#0%1&bDGiLkMXm41 z*Q%3X^R2tic8JVprq!I))Y_^cb()G~eHm?8rveWjpEx3l`7YTgGH)X}lTd5dx& z23-i!ys(}kn@pP)wG!+E7m}7DCtkGxK|-hCDp`%4)dN^%B;sCwB?P|HY9Bd#t4nHV zEVot1Vh^gP0^T)brJ0>pCJXFi=R}#TkY%!VRtY3{E0eZU>yYi7tV3q^xiv%~Hf7Qx zE0adA&Ya2PbB3jl3k{O~T!W-P=jHJ^L( zY*0U^P1)Y6*-mdYolKph-DGO@Ljk}nBCEV)0b`}eVxK^KtiuT*9RmM}6q}t;OzAgP z4>@1bfoK?vY{VY9d;yzC!`IQZKno^JRlmPaq_$f$fjFywfeh8chlX*HK~0$>CJMi5 zy+KVo!taY(Afb*(%qiW)R#Sp$JZ*nqqz;f-)H%}f*$nHIQ$nPMSQW5YJwZKa_r#Gs zi^FZZS|R;n_FA0BTAKl;oN|#pK4zi%6UFr)@=U9cTTiHLs{@G69SEuR)F^mKR)^xM zzl->=BFjyGS(MX-jjpIchI8tJt2mvY$!v=-SD&2eCe_eiAj@mfWt>znV*_+r+5GN}u(W8gKk8 z)sgzG>PQRF_O~deb!DtR71PKorct{xR%D7PZMt)R!kmvok7KB7Bb~-A>9p5UrC4gO zN1I{~3RT5S*m!nJelUnO~>aT0c*mP@yrf9o~vM#?d;t40gR{uAS#PUKF2+7Zi3y+YjhR~{x zh^W$k63|3Ifq=G|uT_}ZDFm7#^J;<0D@ARiI|wv4Yh=$cwUu?%RuD}{s_nh7af$>j&54V}Xn0jlLjE2@M z3XEM17wW0R3wb!tp970TtTd%AzR8od*FIT)d$%x(x;|NZ?US`Pd9wCy@@*e$8f-dQ zd*^$y_Sz>a0!g-ZI9Ai#Tsv5Pt_hZJbvX8>xw&?*e5=Fp7Sr696D&{0gK2IQ<&ut( z{LhlXNZlgw7=IL2)}U9XKv2fkMA+%&pq+uHDCKg_y(8XQXN#7)P3r4lQhlAUwe)L$ z)wO?K?gkb&D7)%z=vq;_7IOd&4$7%SvO`+R>3X%dbemF6-F9SbwbgxRtOzA_DW@)gY*5Mxl8%-f zFglY#`tnWs@cu2Dx8xtruS#iMFa@Q5G<{G1Cg1k4rokpk>z^;B^(QH9N+*+1LNVA( zWLBHLqVUD|L$S+<>~sBj%>G27w*MWo&r|SpBho=^HzI7B2|HtVLP8r5i*!Ol^P2$? zTK)5wk-%o;|4)q16ft%*RhczQF!4W)CqL$NN_%Qso!Vlcp*BRn@r0eGyVXvAL!rHq z+|uppTEaRia@&O(xYx7tg0+=(doiwi4q{xFHIb(^b@^gTLVv=Q9{%MMUIVh1Jn72R z0+9^r2<*BpXQt|5f0-^wOfv~q$gm#ft7X2GV*3`OZWP;R5d{Ubx}KgKVd$Pzbp{%Z zI`#B)$?CoC>zN~mYhH~`0V`I2T=MmrfCY;GrwFI(X3RCAp7YIg6lgb73m-ekSTIln zRk7aWuI`Z<`qW8e3ZddW;RYAg)hjw0WcP&gMs|6~6GSbt!r)qHD_Rp3@<}(iFq?p_ z?}$zyXXmM~p6_J^DVJ~ehcNjQgY5n=%LYpfq`EeU2a6v05m3(ymPrtQ;*Sd~inPbj zz&&+*v_XyY*oM?-W}+rUkS3Vb`As2$^Q{oU*oO%2_924vXA2RG&oM+WX@>~Ltq?(x zu(;jZa!(y17_~wKBOf9dZ4)BMhEKH`KII!)#;uIA6(?wl9w|lR0waz6;|HxjeHe-k z(dUZ{;~NQ_cA7CP}eYveRU=X{Rd!93b7PoA{<);73dHJRb*9VC%tINZYsBu3H^M`nqRR$x0fd4nn5Y= z)a?yu9%dy3gEX+ngFf%I^RR1__t5W?A#PZ+ND9(prE*(s51x1}GkH^+5>dPB~!LT*#Nub{lj#YSC82FvE|TuQS-BFAk{ zph@t12)@|alrNRoRK>o|LTg22SFUVEJUeLonm23WWw82*pk>diJ^^cBRQ-tX;k>5T z6hYgczA^wJyeyQkgdM`p24hwsk_PTX^|=QkVuwc8xheGzo~R!G zo@k8HXVDmcz45<=zQv%JH!YJUnCb&P@!XZLf!N&QABYT*%q)-)AA0AM`*+C(W;z4mK(1z3EBJ>$k`5n=i z;@^LWZ(5XIk_M^|GTv1?r!T|x9ddJYs;{39_N`~K1eZQ6-oEJBk8!nV@>D zh!s0(|6x$gQi!`)=K$v#=PGK?RYb7E_FP3aR}`)mc#KtDytoEb2pCn(c)0450qe2` z%=cz&$^9^aRUh~vr{ZoTbcqWee8SQ-|KfwJo&&qFY?CEdzloJ637Yg5hXAe9K-zW z2bCRD_Kx;;JU_PD4LC?Y_%FWi9dg*I9opl6_C9GRfZDO5wpl1@%tDdZkD>-cA!?h2 zBCj7sXTeZ#ZT-ld3x)!xO?YddXtg?DcPcMgumLO})mQb$g|_~<(4_e;_#rH4nlFa1 z&`$AP@IzS86yJ#jBb@k!P$E?IE83FPUlf|8D9yq?@~C&%UvbJhm|V z$=D?ustl&f@NF}7I<3C-ai>V1|Mia&LVZ@h@@Z_DYG?H$-z{4#-&gH4)-y*rwo_wx zhgG0uPxuiWzy^4<2p_%sMY@^uGKmj=DbMQgAY4(HC_;*M$VB955*{MEdnO6WP8A;= z(zQ8Py6Vq=?Q^e>j*8ghsvr8k4}La0y2v9qzkY!Sc~FWX2gX3?@{T`yLunHNSt7L` z(07LmkQt~1hWws*`DcPL5OKxXYU2fD432A^V67AUp=-^ry4KRtueIY^CpYsIjnQ%IiY~N-aA14H-NpFJg*Y(SgT8 zuRk{%A&`cNk3sg@BW%U=ZC0F`VkU|ELM$@Mb4l`cu)g<~GR(yoWe zh^r6*2H`PZ5${!_unO@E#`IW!@PeFhg|rK9!#Nh2S0|i|&x6{H=z`z|55Z0Xe9qcb zt(>^2i{mKmhoQUhqF`!aCZC<2yI_9zuAMuEgRGZ!I|=j{QRk0RiUXN96@L%rcmNh^!g9rRSrCCQ+zU zVa>1c2ZHt3Cjo#Id|2@c@wF&Ch1N?(c$C^%!{ury1@WTQ<-$^#3Mt=I{2Nba7*kYT zi(L|MaO$ezl}z`of2vYMJY0bNt8G#>KF~}t>srZkWulVyScb8mE{IVs|Mku^MIBdN z2Dltoy@i&k&@8rplXF-$14@z7$%xm>Fp^N^Sv2P={EV(b*sPxN`RcMG)@&3~6B0g9 z1xLre6F=*49?93RdKbUC>ff_NQS;a;Xuc12U>bDhDdR>H8x#W$Y66M;TeJuVy7PKx zb_Q3y)u}=m=s@=$RjJrj#qsLN!2Swb69D5>wCy}i&eC9iRvBKbBuJXxW@fEZxatr2bqZe>%({AP;{cKNHD)q`Y*|9=ZF$I8U zLjb^mkJ;UK1Y(0mlIf)~VeEr(2r>X}_h;*l zRTM>Gx^Zfwc5J)bOfat6Wo8q0e=j;1jzZ&|M$A*03;cf&oLbx6_dt2|pU~iv;jeat z+~!^EY!la=x7oAw*+h9ZOcrfID-z~+wl8VDN;Udic7){eM9_4nb&C9q?`0Kc-y27v zh-L17?uipE+~-hJ^abnHL-$%Y*QR2j5{SCt<&j7MP`UHxm!a@nk-T3nk6pP_gsy63 zZ3K1UVp#2}<#m&LpQn7SNaQFkP%og0uXD=m!skQ*ML2z2H2JtfA16lhvO+mvWFTF zGuf{aOdHCdc8|7SS*@P*=&&j$^OTE&d<@3%##7R_l;;52J0cj8run}c2`s{^Ii7oM z(AOzB5DsL9LpT_l9spE8tG|d;KpA^l$J$Jj%nnm%gK8t+i?fJ72I%Y6l+|2*1Fy)J z=i-=&sH6`5N{7gXWv`8ClDtBKK<^Cvk%u#Y2IrY>0_o8VtcZIf0G9~TTi@sZ0$BR&U z5N+uJHa)^b^@T;OFNCtG55U8|o+EH_ziaL zLY9kBYXOYNw=!Z-wBbhzc*$2UecmCKFA^;m!N0CVJrrI%NH0 z)jd(2dOBDyqT|{w^zFj3({49)qUeYuuWkKZc2A`D-~<`xUpbUX-1 zmPMe2ts`0z!;LD)pT$yc$kbR;Px8F%j}JhQdHkn-`8sS9D@ueINx;v;f8m_!p1;p& z4Wxl7rT9K?aRu^~5v-zGT`2sBO1jMU-y_k=Eg7qB(?3MP`f~xxE@gi-aOsAnR3^U9 z%W9QPb^pzcjFp9`L6%b%U}E!R)3>w2&NyF3yZx|{F~bUb<<64MnOELQW5fV% zAen_r7tmx$fzo5zjjj&we?-Gq$R9|D2(*9{iy^02cUXdhiW#$ZE6ugqC)UDapPRgW zhgq}8M*h`FwC%H- zg<8=0+wR%AMD;^$e~AK?!O&2~>uD%U)sTO4(OW&RdbQOU`%o~>PnOYQ{%qymTJbj2 zQn&2(e*J4jKj!r#*AIDL^;W`)hVTeqCr5xn!P7NybE#dbPCa<)e#d`90uJ&d39J3r z1qY;MSREMCaTh{yl^0a+1>%;h@Bwz7j$ApQdxkbaG*00Lf48C}W|yI%dPbs2m>=Xd zSv1xJ7z})=VL$GVf8cL>+*fWpZu6rBs|OGO0Uc2L6ltF#?Ng+EinLFW_9@anMb&pX z4Gz~n6(QYhp;pZd>(Y&6`%(S?g?G5YN|q9wms4G79(?lN--K>UAAM*ZX9(v989-}M z!H7QylszFPe{cUdf4!Yd%dnz4?#OEcsEGg0*|Ec;?*L|KiS&+g!$O{K{B%4b<+qa; zN##H_(;ApQd9lk`Bd6_XoLIeK-W?c3lHV}h_J-+BY(`s1I=o~J-feMv$mDlxqmW(d zY}+N}?y%yV{!BEI6FiLwubkV1m|e`a}TXooS9W4f3j9o>kwJwO z3KmC0%*GH2n(DnAlzpqa!dL-(yi(Kk_oKd($nr`_sfm+!qD7s-yXvmt-s-5p(r2Wk zVovgqE}7P^k--UH#&ZSua%NK5V+bhRUcKFHvjUT z5-{=E7+V&XA(&@li-H2;h6cuhZf<3%Hi9+wDQ~cHbALRV(YWM00S!`*`lDE>sFVG=9F5R3( z(!-qp0fm#~*>kKiCu^G@m;MdPUAV??f4h$_BBQj}T?I$ifTVMDZG?oa5P3|(H`dBf zlg}AqTc9FEuO6k|8tP4mN)nlBARm1yder=g6QfR$VxXiyEOrpmZ`sESqY6SFsiFDz zF}#Br&2$<#Foi;kRD%a#9{c&vkT0hB+hcAmZmYPpt-^_I6;EuduuWfHqH!wGe{frc znsgj`DA&_CDsvdwrURGs!ZZ!LojB}9m4ihG%kqp#!mm}kmcHlLixQ`nor>U*c%ef7ipZCMgPUU>Kej=L|_ zQ|qu6c&TqyFrH9ZGZ}Mg(*tmtf7ER5ellus8bqw7dM-7cMfq|}1ttQ&*T+)YQew2P z0p1H;rmw=nlpd51I`yf54i%|wz*X92y?R)$@XYJQDI?olD#K&SUJKbYq}Meb%1GTs zn4>N|`KbIhhPFgsM-M2SgYjtk3@blj1P33W8%Bw}37LvHe@)uWD=#X5 z@X!-_2v7UUj=r+4`j~6F1tXL?)kWKq!(?ZT9JU+t1CR)Nq{wsVfk9>VCVDVQk;)S4 z9!wG>ct4kYC=$XnSaUJR|2S0F=QF#F|0*z;!ZY%r3C+rHvA>$wzwL)Ug@^Xek2mxt zp8ZtdCkqszz(MuBK>kRHfBfNnj<#`w({0>LcU152u-j_h-KKeu`@BoxVyPJ1IE2?K z)=ksHj_G8rwE^BjrfZXC8a)>JC5pD$xjr1iK)QlWAYHwBHrov5Dkh>dE3_Sd@kWxa zGM2tFma904I0!Gks|?oYXX-15+42_Vo}k>&nO@`BSnuk#Nha2}f9bB4mr+8lsi2=< zwSWmVw$2Nqpxy_ai5Eb4f=xqZ=F`n}_siP{3>V}=Z8>?GQ|$~VPps2mC3j+FZm~{! zJaMcA2s?NY1yAZ4F&0C0jh;=D=^8x}`zy*s-@!G?v`OrBjg(Pind%yu>KfKw=Phn@ z4eF|sKNf_c&s5h4f1w9^UE}|dGdOAO&E&LaaI(!A{C?!DPw5_s&$dUVNVTi)hrRF` zt-Lfuv9B#;7N3UvP_M5Va`vHUg--bgs42iFhMb`j?gI}d*%C9AbLL0spUFf}_=n_(38JOrIJa~)fGH65>bZj(T1%p=T8EmxdKn9yb zk%-P`8GL!wsRfXp-v;r7?t-{I?XjxAx|EUbg4%4~Q!V(S?T&rBQTIUP z_rMGlvorIhe{)brBUMK;RY&`(j<#g3ZHAmp?)=__NRYMPmGNDfQknv2X(>|F-)wgL zom!10XqgFcZ09_-6Ft%UV0^hHR}1q1-dc_VfTqW_`qyvu?^lr2o3;AaZ}+dSAWGW5 zzD`14``4FS+d6sTOLlLudHf}gu9?;=wl#VLYV?@Vf90Oi<^IbFsVJIUL!s1`+`QdG zJtV)Mhb44IlX2l6qkHO$!YC^fdD zYZTEu*z>n}^I%%Tt>H-A0=G6@%WaXD+oGD;lkK2$Z$iC6M&N58McqE!+P->|^EM$7 z+h`6#f0to^EYu_^V;c_D=8>x3YzvRQPWb$JN?J}?>~(zp4s}!h+B;l$=|<E~Q|1Tut>ecIIiZYpx=Fc7t z(ey=D1e1s01(wKgK{3o%1`N%-fT;|_TWBGCec)nimVG9ESN482eL*3y+U5H^3C<-5k&g&YOnxk(;r%FEF@zItuU=i&zn-TbU!fm|rB}h#!OimVIhk7K zh6LmM^3kQTg3>D`1tTM z5dic6&v)Qg;F4V|e<$Fc{6{0S6=u3i)^5Z=6_H+~UqZcua;N%b zSwP@3QK?))Ua-ryU8oka0czRCY8(S9#_VCkW>uy>K+yzn?ohcmjul{VB}H_jRzit= zl}itg8LlI^t<8AR40Jb*m(D@YRoVZSzs(sI%s_pX>Iy=vC>@re`YmO-_%UB8e-Z-S zLW#PC67>fqDqJPikJ2BMcz;l$4mQpOIA9LxLHd53E8q(S3CyZll%>g44ndwvU^SiE zE-I!DYPVADR;qnTwJ)iX4#SG}6dLG7<-#SXLf2w;lc#nXX`}6FOEm*iIS6h>C`n0^0 z4ao&r6eyKs0U3(|?ahj!Iu)*SSIe;WF{q+??9Bi{Tc=t7rH0>0V!T*Y;4uFngHvuq z7$izvSt6@SrWdHRgnK>ss&o=5Hk!9J2L}W6h`m7{#1$ZBb!9d9YDSNbf9PtVq^oT9 zCHnC)<-MuDTZUj zsJ!abLx{hS<59k9CX}pSfh;$2CuFPQXWE-scz?cZlYDP@ zUGNW)Wki3Fy!1pli|5A3JQqSaNhJeU24%Vr+>vS4M}f?)ew=A+e}dREmm%N9vfZjF zDsH0;k~==T&b`^`a^~-J3fPDGL-o`GwtnJfFs15?*qCp2%9mbZ_y5Z{v!Lzh@~F5y z=EM#_f5=jj|1BZ~$-j%?+CtY_*FI1eTe#_6EFc$d*m9?Sxf3b^No&z}HjBRVOI-AQ z!r(B`#VpeLk7`DyE0AEYJ6_{-dpzw4Pd5sC)lgIo z84Cg=yHgT;jRqn|qeOE$l@{Bi$ZVzR-V)ssHntyzX{!C#xq1CqsYa$gfC7ODrlqTF z>-RMvi~!mqf4J4TI+N#3wQ@N6vp ziAlbI(qHAy)9{6zTlqqNg=g|P@r6G4LfYaB6E~lQF9=C)S({mGy1_Xu4VFZKtGF